diff options
| author | J08nY | 2024-02-02 18:33:51 +0100 |
|---|---|---|
| committer | J08nY | 2024-02-02 18:33:51 +0100 |
| commit | 69e21289a45f3d5f8cc9150aac84b496e89b97b4 (patch) | |
| tree | 0f7a937e9d368cd203c6cd432aa3540ee0db6ff0 | |
| parent | 328ca13e97fb2bc3c49ddcd0e5ec1b45300b8127 (diff) | |
| download | sec-certs-69e21289a45f3d5f8cc9150aac84b496e89b97b4.tar.gz sec-certs-69e21289a45f3d5f8cc9150aac84b496e89b97b4.tar.zst sec-certs-69e21289a45f3d5f8cc9150aac84b496e89b97b4.zip | |
Improve NL cert_id rules.
| -rw-r--r-- | src/sec_certs/rules.yaml | 14 | ||||
| -rw-r--r-- | src/sec_certs/sample/cc_certificate_id.py | 2 | ||||
| -rw-r--r-- | tests/cc/test_cc_misc.py | 6 |
3 files changed, 13 insertions, 9 deletions
diff --git a/src/sec_certs/rules.yaml b/src/sec_certs/rules.yaml index 3cce1ab8..b0d421f1 100644 --- a/src/sec_certs/rules.yaml +++ b/src/sec_certs/rules.yaml @@ -21,14 +21,12 @@ cc_cert_id: - "Certification Report [0-9]+/[0-9]+" # French or Australia! Solved because we limit ourselves to scheme when doing heuristics. - "Rapport de certification [0-9]+/[0-9]+" # French NL: - - "NSCIB-CC-[0-9]{4}.+?" # Netherlands - - "NSCIB-CC-[0-9]{4}[0-9]*-CR" # Netherlands - - "NSCIB-CC-[0-9][0-9]-[0-9]+?-CR[0-9]+?" # Netherlands - - "NSCIB-CC-[0-9][0-9]-[0-9]+(-CR[0-9]+)*" # Netherlands (old number NSCIB-CC-05-6609 or NSCIB-CC-05-6609-CR) - - "NSCIB-CC-[0-9]+-CR[0-9]*" # Netherlands (new number NSCIB-CC-111441-CR NSCIB-CC-111441-CR1) - - "NSCIB-CC-[0-9]+-MA[0-9]*" # Netherlands (new number NSCIB-CC-222073-MA NSCIB-CC-200716-MA2) - - "NSCIB-CC-[0-9][0-9]-[0-9]+" # Netherlands (old number NSCIB-CC-05-6609) - - "NSCIB-CC-[0-9][0-9]-[0-9]+-CR[0-9]+" # Netherlands (NSCIB-CC-year2digits-number-CR) + - "(?:NSCIB-|CC-|NSCIB-CC-)(?P<core>((?P<year>[0-9]{2})-)?(?:-?[0-9]+)+)(?:-?(?P<doc>(?:CR|MA|MR)[0-9]*))?" + # Examples: + # NSCIB-CC-22-0428888-CR2 (with year=22 and CR2) + # NSCIB-CC-228723-CR (no year) + # CC-16-31801-CR4 (no NSCIB) + # NSCIB-CC-98209 (no year, no CR) "NO": - "SERTIT-[0-9]+" # Norway US: diff --git a/src/sec_certs/sample/cc_certificate_id.py b/src/sec_certs/sample/cc_certificate_id.py index 254c8e05..74cba680 100644 --- a/src/sec_certs/sample/cc_certificate_id.py +++ b/src/sec_certs/sample/cc_certificate_id.py @@ -126,7 +126,7 @@ class CertificateId: new_cert_id = self.clean if new_cert_id.startswith("CC-"): new_cert_id = f"NSCIB-{new_cert_id}" - if not new_cert_id.endswith("-CR"): + if not re.match(".*-(CR|MA|MR)[0-9]*$", new_cert_id): new_cert_id = f"{new_cert_id}-CR" return new_cert_id diff --git a/tests/cc/test_cc_misc.py b/tests/cc/test_cc_misc.py index b0932482..ae9a83aa 100644 --- a/tests/cc/test_cc_misc.py +++ b/tests/cc/test_cc_misc.py @@ -45,3 +45,9 @@ def test_canonicalize_jp(): def test_canonicalize_no(): assert canonicalize("SERTIT-12", "NO") == "SERTIT-012" + + +def test_canonicalize_nl(): + assert canonicalize("NSCIB-CC-22-0428888-CR2", "NL") == "NSCIB-CC-22-0428888-CR2" + assert canonicalize("NSCIB-CC-22-0428888", "NL") == "NSCIB-CC-22-0428888-CR" + assert canonicalize("CC-22-0428888", "NL") == "NSCIB-CC-22-0428888-CR" |
