START: ptest-runner 2025-06-13T12:46 PASS: tests/test__pyahocorasick.py:TestTrie.test_add_can_get PASS: tests/test__pyahocorasick.py:TestTrie.test_add_existing_WordShouldReplaceAssociatedValue PASS: tests/test__pyahocorasick.py:TestTrie.test_exists_ShouldDetectAddedWords PASS: tests/test__pyahocorasick.py:TestTrie.test_exists_ShouldReturnFailOnUnknownWord PASS: tests/test__pyahocorasick.py:TestTrie.test_get_UnknowWordWithDefaultValueShouldReturnDefault PASS: tests/test__pyahocorasick.py:TestTrie.test_get_UnknowWordWithoutDefaultValueShouldRaiseException PASS: tests/test__pyahocorasick.py:TestTrie.test_is_prefix_ShouldDetecAllPrefixesIncludingWord PASS: tests/test__pyahocorasick.py:TestTrie.test_items_ShouldReturnAllItemsAlreadyAddedToTheTrie PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_should_can_return_non_matches_optionally PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_should_not_return_non_matches_by_default PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_simple PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_vs_tokenize PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_with_unmatched_simple PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_with_unmatched_simple2 PASS: tests/test__pyahocorasick.py:TestTrie.test_iter_with_unmatched_simple3 PASS: tests/test__pyahocorasick.py:TestTrie.test_keys_ShouldReturnAllKeysAlreadyAddedToTheTrie PASS: tests/test__pyahocorasick.py:TestTrie.test_tokenize_with_unmatched_and_space PASS: tests/test__pyahocorasick.py:TestTrie.test_values_ShouldReturnAllValuesAlreadyAddedToTheTrie PASS: tests/test_license_expression.py:LicenseSymbolTest.test_LicenseSymbol PASS: tests/test_license_expression.py:LicensingTest.test_Licensing_create PASS: tests/test_license_expression.py:LicensingTokenizeWithoutSymbolsTest.test_tokenize_plain1 PASS: tests/test_license_expression.py:LicensingTokenizeWithoutSymbolsTest.test_tokenize_plain2 PASS: tests/test_license_expression.py:LicensingTokenizeWithoutSymbolsTest.test_tokenize_plain3 PASS: tests/test_license_expression.py:LicensingTokenizeWithoutSymbolsTest.test_tokenize_plain4 PASS: tests/test_license_expression.py:LicensingTokenizeWithoutSymbolsTest.test_tokenize_plain5 PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_1_no_symbols PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_1_with_symbols PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_3 PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_unknown_as_trailing_single_attached_character PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_with_trailing_unknown PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_with_unknown_symbol_containing_known_symbol_contained PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_with_unknown_symbol_containing_known_symbol_leading PASS: tests/test_license_expression.py:LicensingTokenizeWithSymbolsTest.test_tokenize_with_unknown_symbol_containing_known_symbol_trailing PASS: tests/test_license_expression.py:LicensingParseTest.test_Licensing_can_parse_expressions_with_symbols_that_contain_a_colon PASS: tests/test_license_expression.py:LicensingParseTest.test_Licensing_can_parse_valid_expressions_with_symbols_that_contain_and_with_or PASS: tests/test_license_expression.py:LicensingParseTest.test_Licensing_can_parse_valid_expressions_with_symbols_that_contain_spaces PASS: tests/test_license_expression.py:LicensingParseTest.test_Licensing_can_simple_tokenize_valid_expressions_with_symbols_that_contain_and_with_or PASS: tests/test_license_expression.py:LicensingParseTest.test_Licensing_can_tokenize_valid_expressions_with_symbols_that_contain_and_with_or PASS: tests/test_license_expression.py:LicensingParseTest.test_contains_works_with_plain_symbol PASS: tests/test_license_expression.py:LicensingParseTest.test_create_from_python PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_WITH PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_WITH_AND PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_WITH_OR PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_can_be_simplified_1 PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_can_be_simplified_2 PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_cannot_be_simplified PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_multiple_occurrences PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_expressions_single_license PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_licensexpressions_can_be_simplified_3 PASS: tests/test_license_expression.py:LicensingParseTest.test_dedup_licensexpressions_works_with_subexpressions PASS: tests/test_license_expression.py:LicensingParseTest.test_end_to_end PASS: tests/test_license_expression.py:LicensingParseTest.test_license_expression_is_equivalent PASS: tests/test_license_expression.py:LicensingParseTest.test_license_expression_license_keys PASS: tests/test_license_expression.py:LicensingParseTest.test_parse PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_can_parse PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_complex PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_complex2 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_does_not_raise_error_for_empty_expression PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_errors_catch_invalid_expression_with_bare_and PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_errors_catch_invalid_expression_with_empty_parens PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_errors_catch_invalid_expression_with_or_and_no_other PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_errors_catch_invalid_nesting PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_errors_catch_invalid_non_unicode_byte_strings_on_python3 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_errors_does_not_raise_error_on_plain_non_unicode_raw_string PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_in_strict_mode_for_solo_symbol PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_drops_single_trailing_or PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_drops_single_trailing_or2 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_raise_exception PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_raise_exception3 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_raise_exception4 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_raise_exception5 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_raise_exception6 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_with_repeated_trailing_or_raise_exception PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_with_single_leading_or_raise_exception PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_with_single_trailing_and_raise_exception PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_with_trailing_or PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_invalid_expression_with_trailing_or_and_valid_start_does_not_raise_exception PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_not_invalid_expression_rais_not_exception PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_not_invalid_expression_raise_no_exception2 PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_raise_ExpressionError_when_validating PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_raise_ExpressionError_when_validating_strict_with_unknown PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_raise_ParseError PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_raise_ParseError_when_strict_no_validate PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_raise_ParseError_when_validating_strict PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_simplify_and_contain_and_equal PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_simplify_no_sort PASS: tests/test_license_expression.py:LicensingParseTest.test_parse_with_repeated_or_later_does_not_raise_parse_error PASS: tests/test_license_expression.py:LicensingParseTest.test_pretty PASS: tests/test_license_expression.py:LicensingParseTest.test_render_complex PASS: tests/test_license_expression.py:LicensingParseTest.test_render_with PASS: tests/test_license_expression.py:LicensingParseTest.test_simplify_and_contains PASS: tests/test_license_expression.py:LicensingParseTest.test_simplify_and_equivalent_and_contains PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_Licensing_with_overlapping_symbols_with_keywords_does_not_raise_Exception PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression1 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression3 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression4 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression5 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression6 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression7 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression8 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression8_twice PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression_with_alias PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_license_expression_with_trailing_space_plus PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_parse_of_side_by_side_symbols_raise_exception PASS: tests/test_license_expression.py:LicensingParseWithSymbolsSimpleTest.test_validate_symbols PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_parse_raise_ParseError_when_validating_strict_with_exception_symbols_in_incorrect_spot PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_parse_raise_ParseError_when_validating_strict_with_non_exception_symbols PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_with_known_symbol_string_contained_in_known_symbol_does_not_crash_or PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_with_known_symbol_string_contained_in_known_symbol_does_not_crash_with PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_with_unknown_symbol_string_contained_in_known_symbol_does_not_crash_and PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_with_unknown_symbol_string_contained_in_known_symbol_does_not_crash_or PASS: tests/test_license_expression.py:LicensingParseWithSymbolsTest.test_with_unknown_symbol_string_contained_in_known_symbol_does_not_crash_with PASS: tests/test_license_expression.py:LicensingSymbolsReplacement.test_advanced_substitution PASS: tests/test_license_expression.py:LicensingSymbolsReplacement.test_multiple_substitutions PASS: tests/test_license_expression.py:LicensingSymbolsReplacement.test_multiple_substitutions_complex PASS: tests/test_license_expression.py:LicensingSymbolsReplacement.test_simple_substitution PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_advanced_tokenizer_iter_with_overlapping_key_with_symbols_and_trailing_unknown PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_advanced_tokenizer_iter_with_overlapping_key_with_symbols_and_trailing_unknown2 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_advanced_tokenizer_tokenize_with_overlapping_key_with_symbols_and_trailing_unknown PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_expression_with_WITH PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_expression_with_WITH_and_unknown_symbol PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_expression_with_trailing_unknown_should_raise_exception PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_expression_with_trailing_unknown_should_raise_exception2 PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_trailing_char_does_not_raise_exception_without_validate PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_trailing_char_raise_exception_with_validate PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_parse_with_overlapping_key_without_symbols PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_tokenize_with_overlapping_key_with_symbols_and_trailing_unknown PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_unknown_keys PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_unknown_keys_with_trailing_char PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_unknown_keys_with_trailing_char_2_with_validate PASS: tests/test_license_expression.py:LicensingParseWithSymbolsAdvancedTest.test_unknown_keys_with_trailing_char_2_without_validate PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_get_license_symbols PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_get_license_symbols2 PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_get_license_symbols3 PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_get_license_symbols4 PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_license_symbols PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_primary_license_symbol_and_primary_license_key PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_render_as_readable_does_not_wrap_in_parens_if_no_with PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_render_as_readable_does_not_wrap_in_parens_single_with PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_render_as_readable_wraps_in_parens_with_and_other_subexpressions PASS: tests/test_license_expression.py:LicensingSymbolsTest.test_render_plain PASS: tests/test_license_expression.py:SplitAndTokenizeTest.test_simple_tokenizer PASS: tests/test_license_expression.py:SplitAndTokenizeTest.test_tokenize_can_handle_expressions_with_symbols_that_contain_a_colon PASS: tests/test_license_expression.py:SplitAndTokenizeTest.test_tokenize_can_handle_expressions_with_tabs_and_new_lines PASS: tests/test_license_expression.py:SplitAndTokenizeTest.test_tokenize_simple_can_handle_expressions_with_symbols_that_contain_a_colon PASS: tests/test_license_expression.py:SplitAndTokenizeTest.test_tokenize_simple_can_handle_expressions_with_tabs_and_new_lines PASS: tests/test_license_expression.py:SplitAndTokenizeTest.test_tokenize_step_by_step_does_not_munge_trailing_symbols PASS: tests/test_license_expression.py:LicensingExpression.test_all_symbol_classes_can_compare_and_sort PASS: tests/test_license_expression.py:LicensingExpression.test_is_equivalent_with_different_Licensing_and_compound_expression PASS: tests/test_license_expression.py:LicensingExpression.test_is_equivalent_with_different_Licensing_and_compound_expression2 PASS: tests/test_license_expression.py:LicensingExpression.test_is_equivalent_with_different_Licensing_and_simple_expression PASS: tests/test_license_expression.py:LicensingExpression.test_is_equivalent_with_same_Licensing PASS: tests/test_license_expression.py:LicensingExpression.test_is_equivalent_with_same_Licensing2 PASS: tests/test_license_expression.py:LicensingExpression.test_is_equivalent_with_symbols_and_complex_expression PASS: tests/test_license_expression.py:MockLicensesTest.test_and_and_or_is_invalid PASS: tests/test_license_expression.py:MockLicensesTest.test_licensing_can_use_mocklicense_tuple PASS: tests/test_license_expression.py:MockLicensesTest.test_or_or_is_invalid PASS: tests/test_license_expression.py:MockLicensesTest.test_tokenize_or_or PASS: tests/test_license_expression.py:LicensingValidateTest.test_validate_exception PASS: tests/test_license_expression.py:LicensingValidateTest.test_validate_simple PASS: tests/test_license_expression.py:LicensingValidateTest.test_validation_bad_syntax PASS: tests/test_license_expression.py:LicensingValidateTest.test_validation_exception_as_regular_key PASS: tests/test_license_expression.py:LicensingValidateTest.test_validation_exception_with_choice PASS: tests/test_license_expression.py:LicensingValidateTest.test_validation_invalid_license_exception PASS: tests/test_license_expression.py:LicensingValidateTest.test_validation_invalid_license_exception_strict_false PASS: tests/test_license_expression.py:LicensingValidateTest.test_validation_invalid_license_key PASS: tests/test_license_expression.py:UtilTest.test_build_licensing PASS: tests/test_license_expression.py:UtilTest.test_build_spdx_licensing PASS: tests/test_license_expression.py:UtilTest.test_get_license_key_info PASS: tests/test_license_expression.py:UtilTest.test_get_license_key_info_vendored PASS: tests/test_license_expression.py:CombineExpressionTest.test_combine_expressions_with_duplicated_elements PASS: tests/test_license_expression.py:CombineExpressionTest.test_combine_expressions_with_empty_input PASS: tests/test_license_expression.py:CombineExpressionTest.test_combine_expressions_with_or_relationship PASS: tests/test_license_expression.py:CombineExpressionTest.test_combine_expressions_with_regular PASS: tests/test_skeleton_codestyle.py:BaseTests.test_skeleton_codestyle ============================================================================ Testsuite summary # TOTAL: 175 # PASS: 175 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 DURATION: 23