From c427e01cbeccea49c014a0e27fd916b729bf6338 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 29 Aug 2024 02:49:49 +0530 Subject: [PATCH] Fix test failures and address feedback Signed-off-by: Ayan Sinha Mahapatra --- src/licensedcode/data/rules/cclrc_1.RULE | 10 +++++ src/licensedcode/data/rules/cclrc_2.RULE | 7 ++++ src/licensedcode/data/rules/mit_1182.RULE | 1 + src/licensedcode/data/rules/mit_334.RULE | 2 +- src/licensedcode/data/rules/mit_337.RULE | 2 +- src/licensedcode/data/rules/mit_392.RULE | 2 +- src/licensedcode/data/rules/mit_396.RULE | 2 +- src/licensedcode/data/rules/mit_397.RULE | 6 +-- src/licensedcode/models.py | 16 +++----- src/licensedcode/required_phrases.py | 7 +--- src/licensedcode/tokenize.py | 19 ++++------ .../data/common/manifests-expected.yaml | 30 +++++++++++++-- .../yaml/package-and-licenses-expected.yaml | 22 ++++++++--- ...tional_license_combined_test.expected.json | 10 +++++ ...ional_license_directory_test.expected.json | 4 ++ ...ditional_license_plugin_test.expected.json | 2 + .../CCLRC/cdunifpp_check.c.yml | 2 +- ...e-reference-works-with-clues.expected.json | 38 +++++++++++++++++++ ...-matched-text-with-reference.expected.json | 8 ++++ .../scan-with-reference.expected.json | 8 ++++ .../clues/woodstox.expected.json | 6 +++ .../license-expression/scan.expected.json | 4 ++ .../spdx-expressions.expected.json | 4 ++ tests/licensedcode/test_models.py | 3 -- 24 files changed, 167 insertions(+), 48 deletions(-) create mode 100644 src/licensedcode/data/rules/cclrc_1.RULE create mode 100644 src/licensedcode/data/rules/cclrc_2.RULE diff --git a/src/licensedcode/data/rules/cclrc_1.RULE b/src/licensedcode/data/rules/cclrc_1.RULE new file mode 100644 index 00000000000..946ef31c9c8 --- /dev/null +++ b/src/licensedcode/data/rules/cclrc_1.RULE @@ -0,0 +1,10 @@ +--- +license_expression: cclrc +is_license_notice: yes +referenced_filenames: + - External_License/CCLRC_CDAT_License.txt +--- + +* This software may be distributed under the terms of the + * {{CCLRC Licence}} for CCLRC Software + * /External_License/CCLRC_CDAT_License.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/cclrc_2.RULE b/src/licensedcode/data/rules/cclrc_2.RULE new file mode 100644 index 00000000000..ed360a2c098 --- /dev/null +++ b/src/licensedcode/data/rules/cclrc_2.RULE @@ -0,0 +1,7 @@ +--- +license_expression: cclrc +is_license_notice: yes +--- + +* This software may be distributed under the terms of the + * {{CCLRC Licence}} for CCLRC Software \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1182.RULE b/src/licensedcode/data/rules/mit_1182.RULE index df2bde05485..dd1ca6e9ca4 100644 --- a/src/licensedcode/data/rules/mit_1182.RULE +++ b/src/licensedcode/data/rules/mit_1182.RULE @@ -1,6 +1,7 @@ --- license_expression: mit is_license_reference: yes +is_required_phrase: yes relevance: 100 --- diff --git a/src/licensedcode/data/rules/mit_334.RULE b/src/licensedcode/data/rules/mit_334.RULE index 390316fcb13..23d3bad87d0 100644 --- a/src/licensedcode/data/rules/mit_334.RULE +++ b/src/licensedcode/data/rules/mit_334.RULE @@ -6,5 +6,5 @@ referenced_filenames: - LICENSE --- -This software is released under the MIT software license. +This software is released under the {{MIT software license}}. This license, including disclaimer, is available in the 'LICENSE' file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_337.RULE b/src/licensedcode/data/rules/mit_337.RULE index d1a902255ae..e3249d273ef 100644 --- a/src/licensedcode/data/rules/mit_337.RULE +++ b/src/licensedcode/data/rules/mit_337.RULE @@ -6,5 +6,5 @@ ignorable_urls: - http://www.opensource.org/licenses/mit-license.php --- -This is the http://www.opensource.org/licenses/mit-license.php MIT Software License +This is the http://www.opensource.org/licenses/mit-license.php {{MIT Software License}} which is OSI-certified, and GPL-compatible. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_392.RULE b/src/licensedcode/data/rules/mit_392.RULE index bbfcd57def0..3a3ec354e0c 100644 --- a/src/licensedcode/data/rules/mit_392.RULE +++ b/src/licensedcode/data/rules/mit_392.RULE @@ -8,5 +8,5 @@ ignorable_urls: - http://www.opensource.org/licenses/mit-license.php --- -"Distributed under the MIT software license, see the accompanying file COPYING or +"Distributed under the {{MIT software license}}, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_396.RULE b/src/licensedcode/data/rules/mit_396.RULE index b4b8c0c8803..82a0008f295 100644 --- a/src/licensedcode/data/rules/mit_396.RULE +++ b/src/licensedcode/data/rules/mit_396.RULE @@ -6,5 +6,5 @@ referenced_filenames: - COPYING --- -// Distributed under the MIT software license, see the accompanying +// Distributed under the {{MIT software license}}, see the accompanying // file COPYING \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_397.RULE b/src/licensedcode/data/rules/mit_397.RULE index cbaf9d2ea40..2e78ea0e5e9 100644 --- a/src/licensedcode/data/rules/mit_397.RULE +++ b/src/licensedcode/data/rules/mit_397.RULE @@ -5,8 +5,8 @@ relevance: 100 referenced_filenames: - COPYING ignorable_urls: - - http://www.opensource.org/licenses/mit-license.php + - https://www.opensource.org/licenses/mit-license.php --- -// Distributed under the MIT software license, see the accompanying -// file COPYING or shttp://www.opensource.org/{{licenses/mit}}-license.php. \ No newline at end of file +// Distributed under the {{MIT software license}}, see the accompanying +// file COPYING or https://www.opensource.org/licenses/mit-license.php. \ No newline at end of file diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 4f663c8d5a0..6668cb49b30 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -1832,10 +1832,6 @@ def license_flags(self): for license_flag_name in self.license_flag_names } - @property - def license_flag_values(self): - return self.license_flags.values() - def validate(self, licensing=None, thorough=False): """ Validate this rule using the provided ``licensing`` Licensing and yield @@ -1844,8 +1840,7 @@ def validate(self, licensing=None, thorough=False): is_false_positive = self.is_false_positive has_license_flags = any(self.license_flag_values) - has_no_license_flags = len([l for l in self.license_flag_values if l]) == 0 - has_many_license_flags = len([l for l in self.license_flag_values if l]) > 1 + license_flags_count = sum(self.license_flags.values()) license_expression = self.license_expression @@ -1888,11 +1883,8 @@ def validate(self, licensing=None, thorough=False): if not (0 <= self.relevance <= 100): yield 'Invalid rule relevance. Should be between 0 and 100.' - - if has_no_license_flags: - yield 'Invalid rule no is_license_* flags present.' - if has_many_license_flags: + if license_flags_count: yield 'Invalid rule is_license_* flags. Only one allowed.' if not has_license_flags: @@ -2295,6 +2287,8 @@ def dump(self, rules_data_dir, **kwargs): rule_file = self.rule_file(rules_data_dir=rules_data_dir) metadata = self.to_dict() + # This can be used to pass objects to dump on the rule file with + # other rule metadata, like debugging collection of required phrases if kwargs: metadata.update(kwargs) content = self.text @@ -2328,7 +2322,7 @@ def load(self, rule_file, with_checks=True): raise e known_attributes = set(attr.fields_dict(self.__class__)) - # This is an attirbute used to debug marking required phrases, and is not needed + # This is an attribute used to debug marking required phrases, and is not needed if "sources" in data: data.pop("sources") data_file_attributes = set(data) diff --git a/src/licensedcode/required_phrases.py b/src/licensedcode/required_phrases.py index 1ffa23106dc..4411190350b 100644 --- a/src/licensedcode/required_phrases.py +++ b/src/licensedcode/required_phrases.py @@ -52,11 +52,6 @@ def get_required_phrase_spans(text): >>> x = get_required_phrase_spans(text) >>> assert x == [Span(4, 6)], x - >>> text = 'This is enclosed in {{double curly braces}}' - >>> # 0 1 2 3 4 5 6 - >>> x = get_required_phrase_spans(text) - >>> assert x == ['double', 'curly', 'braces'], x - >>> text = 'This is {{enclosed}} a {{double curly braces}} or not' >>> # 0 1 2 SW 3 4 5 6 7 >>> x = get_required_phrase_spans(text) @@ -114,7 +109,7 @@ def get_required_phrase_texts(text): >>> text = 'This is enclosed in {{double curly braces}}' >>> # 0 1 2 3 4 5 6 >>> x = get_required_phrase_texts(text=text) - >>> assert x == ['double', 'curly', 'braces'], x + >>> assert x == ['double curly braces'], x """ return [ required_phrase.text diff --git a/src/licensedcode/tokenize.py b/src/licensedcode/tokenize.py index 0b0016c0254..9624a87546b 100644 --- a/src/licensedcode/tokenize.py +++ b/src/licensedcode/tokenize.py @@ -181,25 +181,21 @@ def get_non_overlapping_spans(old_required_phrase_spans, new_required_phrase_spa return new_required_phrase_spans for new_span in new_required_phrase_spans: - if not any( + if any( old_span.overlap(new_span) != 0 for old_span in old_required_phrase_spans ): - yield new_span + continue + + yield new_span def combine_tokens(token_tuples): """ Returns a string `combined_text` combining token tuples from the list `token_tuples`, which are token tuples created by the tokenizer functions. - """ - combined_text = '' - - for token_tuple in token_tuples: - _value, token = token_tuple - combined_text += token - - return combined_text + """ + return ''.join(token for _, token in token_tuples) def add_required_phrase_markers(text, required_phrase_span): @@ -208,11 +204,10 @@ def add_required_phrase_markers(text, required_phrase_span): markers to the `text` around the tokens which the span represents, while being mindful of whitespace and stopwords. """ - tokens_tuples_without_markers = list(matched_query_text_tokenizer(text)) tokens_tuples_with_markers = [] token_index = 0 - for token_tuple in tokens_tuples_without_markers: + for token_tuple in matched_query_text_tokenizer(text): is_word, token = token_tuple diff --git a/tests/formattedcode/data/common/manifests-expected.yaml b/tests/formattedcode/data/common/manifests-expected.yaml index 74f74b17eee..2f124c5e77e 100644 --- a/tests/formattedcode/data/common/manifests-expected.yaml +++ b/tests/formattedcode/data/common/manifests-expected.yaml @@ -29,9 +29,9 @@ headers: system_environment: operating_system: linux cpu_architecture: 64 - platform: Linux-5.15.0-116-generic-x86_64-with-glibc2.35 - platform_version: '#126-Ubuntu SMP Mon Jul 1 10:14:24 UTC 2024' - python_version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + platform: Linux-5.15.0-119-generic-x86_64-with-glibc2.35 + platform_version: '#129-Ubuntu SMP Fri Aug 2 19:25:20 UTC 2024' + python_version: 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] spdx_license_list_version: '3.24' files_count: 4 summary: @@ -1601,6 +1601,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1626,6 +1628,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1651,6 +1655,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1677,6 +1683,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1703,6 +1711,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1728,6 +1738,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1765,6 +1777,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1790,6 +1804,8 @@ license_rule_references: is_license_tag: no is_license_intro: yes is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1818,6 +1834,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: yes + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1843,6 +1861,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1868,6 +1888,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -1893,6 +1915,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no diff --git a/tests/formattedcode/data/yaml/package-and-licenses-expected.yaml b/tests/formattedcode/data/yaml/package-and-licenses-expected.yaml index cbd678d9827..a4905588698 100644 --- a/tests/formattedcode/data/yaml/package-and-licenses-expected.yaml +++ b/tests/formattedcode/data/yaml/package-and-licenses-expected.yaml @@ -21,7 +21,7 @@ headers: for any legal advice. ScanCode is a free software code scanning tool from nexB Inc. and others. Visit https://github.com/nexB/scancode-toolkit/ for support and download. - output_format_version: 3.1.0 + output_format_version: 3.2.0 message: errors: [] warnings: [] @@ -29,10 +29,10 @@ headers: system_environment: operating_system: linux cpu_architecture: 64 - platform: Linux-5.15.0-112-generic-x86_64-with-glibc2.35 - platform_version: '#122-Ubuntu SMP Thu May 23 07:48:21 UTC 2024' - python_version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] - spdx_license_list_version: '3.23' + platform: Linux-5.15.0-119-generic-x86_64-with-glibc2.35 + platform_version: '#129-Ubuntu SMP Fri Aug 2 19:25:20 UTC 2024' + python_version: 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] + spdx_license_list_version: '3.24' files_count: 4 summary: declared_license_expression: apache-2.0 @@ -626,6 +626,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: yes @@ -854,6 +856,8 @@ license_rule_references: is_license_tag: yes is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -879,6 +883,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no @@ -904,6 +910,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: yes is_builtin: yes is_from_license: no @@ -929,6 +937,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: yes @@ -972,6 +982,8 @@ license_rule_references: is_license_tag: no is_license_intro: no is_license_clue: no + is_required_phrase: no + skip_collecting_required_phrases: no is_continuous: no is_builtin: yes is_from_license: no diff --git a/tests/licensedcode/data/additional_licenses/additional_license_combined_test.expected.json b/tests/licensedcode/data/additional_licenses/additional_license_combined_test.expected.json index 6f95f593464..0bd59f026aa 100644 --- a/tests/licensedcode/data/additional_licenses/additional_license_combined_test.expected.json +++ b/tests/licensedcode/data/additional_licenses/additional_license_combined_test.expected.json @@ -270,6 +270,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -297,6 +299,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, @@ -324,6 +328,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, @@ -351,6 +357,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, @@ -378,6 +386,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, diff --git a/tests/licensedcode/data/additional_licenses/additional_license_directory_test.expected.json b/tests/licensedcode/data/additional_licenses/additional_license_directory_test.expected.json index 2958a7cba25..d73aca90f75 100644 --- a/tests/licensedcode/data/additional_licenses/additional_license_directory_test.expected.json +++ b/tests/licensedcode/data/additional_licenses/additional_license_directory_test.expected.json @@ -117,6 +117,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, @@ -144,6 +146,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, diff --git a/tests/licensedcode/data/additional_licenses/additional_license_plugin_test.expected.json b/tests/licensedcode/data/additional_licenses/additional_license_plugin_test.expected.json index b61818ca0bd..5f635570acf 100644 --- a/tests/licensedcode/data/additional_licenses/additional_license_plugin_test.expected.json +++ b/tests/licensedcode/data/additional_licenses/additional_license_plugin_test.expected.json @@ -70,6 +70,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": false, "is_from_license": true, diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/CCLRC/cdunifpp_check.c.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/CCLRC/cdunifpp_check.c.yml index c9c5e2f5b54..5a450d1f40c 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/CCLRC/cdunifpp_check.c.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/CCLRC/cdunifpp_check.c.yml @@ -1,2 +1,2 @@ license_expressions: - - mit + - cclrc diff --git a/tests/licensedcode/data/licenses_reference_reporting/license-reference-works-with-clues.expected.json b/tests/licensedcode/data/licenses_reference_reporting/license-reference-works-with-clues.expected.json index 3ef04356bed..d247ab8329c 100644 --- a/tests/licensedcode/data/licenses_reference_reporting/license-reference-works-with-clues.expected.json +++ b/tests/licensedcode/data/licenses_reference_reporting/license-reference-works-with-clues.expected.json @@ -1094,6 +1094,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1121,6 +1123,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1148,6 +1152,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1175,6 +1181,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": true, @@ -1202,6 +1210,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1229,6 +1239,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1256,6 +1268,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1283,6 +1297,8 @@ "is_license_tag": false, "is_license_intro": true, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1310,6 +1326,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1337,6 +1355,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1366,6 +1386,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1403,6 +1425,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1430,6 +1454,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": true, @@ -1457,6 +1483,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1495,6 +1523,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1524,6 +1554,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -1551,6 +1583,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": true, @@ -1588,6 +1622,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": true, @@ -1619,6 +1655,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, diff --git a/tests/licensedcode/data/licenses_reference_reporting/scan-matched-text-with-reference.expected.json b/tests/licensedcode/data/licenses_reference_reporting/scan-matched-text-with-reference.expected.json index a0db977ccb6..f12fa5334de 100644 --- a/tests/licensedcode/data/licenses_reference_reporting/scan-matched-text-with-reference.expected.json +++ b/tests/licensedcode/data/licenses_reference_reporting/scan-matched-text-with-reference.expected.json @@ -370,6 +370,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -401,6 +403,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": true, "is_builtin": true, "is_from_license": false, @@ -428,6 +432,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -455,6 +461,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, diff --git a/tests/licensedcode/data/licenses_reference_reporting/scan-with-reference.expected.json b/tests/licensedcode/data/licenses_reference_reporting/scan-with-reference.expected.json index a9fb8e949ff..7adcde1df6e 100644 --- a/tests/licensedcode/data/licenses_reference_reporting/scan-with-reference.expected.json +++ b/tests/licensedcode/data/licenses_reference_reporting/scan-with-reference.expected.json @@ -360,6 +360,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -391,6 +393,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": true, "is_builtin": true, "is_from_license": false, @@ -418,6 +422,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -445,6 +451,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, diff --git a/tests/licensedcode/data/plugin_license/clues/woodstox.expected.json b/tests/licensedcode/data/plugin_license/clues/woodstox.expected.json index d58558a07a3..4a9a6b20205 100644 --- a/tests/licensedcode/data/plugin_license/clues/woodstox.expected.json +++ b/tests/licensedcode/data/plugin_license/clues/woodstox.expected.json @@ -143,6 +143,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -172,6 +174,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -203,6 +207,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": true, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, diff --git a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json index 56a7e854810..7accbbf00dd 100644 --- a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json @@ -239,6 +239,8 @@ "is_license_tag": false, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": true, @@ -272,6 +274,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, diff --git a/tests/licensedcode/data/plugin_license/license-expression/spdx-expressions.expected.json b/tests/licensedcode/data/plugin_license/license-expression/spdx-expressions.expected.json index e501546e7f5..c346c0d1843 100644 --- a/tests/licensedcode/data/plugin_license/license-expression/spdx-expressions.expected.json +++ b/tests/licensedcode/data/plugin_license/license-expression/spdx-expressions.expected.json @@ -140,6 +140,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, @@ -167,6 +169,8 @@ "is_license_tag": true, "is_license_intro": false, "is_license_clue": false, + "is_required_phrase": false, + "skip_collecting_required_phrases": false, "is_continuous": false, "is_builtin": true, "is_from_license": false, diff --git a/tests/licensedcode/test_models.py b/tests/licensedcode/test_models.py index 69e971650e6..aab5cc62fc5 100644 --- a/tests/licensedcode/test_models.py +++ b/tests/licensedcode/test_models.py @@ -228,7 +228,6 @@ def test_rules_have_only_one_flag_of_bool_type(self): r.is_license_intro, r.is_license_clue, r.is_false_positive, - r.is_required_phrases, ] number_of_flags_set = 0 for rule_flag in rule_flags: @@ -577,9 +576,7 @@ def test_Rule__validate_with_invalid_language(self): validations.extend(rule.validate()) expected = [ 'Unknown language: foobar', - 'Invalid rule is_license_* flags. Only one allowed.', 'At least one is_license_* flag is needed.', - 'Invalid rule is_license_* flags. Only one allowed.', 'At least one is_license_* flag is needed.', ] assert validations == expected