aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJ08nY2024-02-02 18:33:51 +0100
committerJ08nY2024-02-02 18:33:51 +0100
commit69e21289a45f3d5f8cc9150aac84b496e89b97b4 (patch)
tree0f7a937e9d368cd203c6cd432aa3540ee0db6ff0
parent328ca13e97fb2bc3c49ddcd0e5ec1b45300b8127 (diff)
downloadsec-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.yaml14
-rw-r--r--src/sec_certs/sample/cc_certificate_id.py2
-rw-r--r--tests/cc/test_cc_misc.py6
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"