Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions presidio-analyzer/presidio_analyzer/conf/default_recognizers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,13 @@ recognizers:
enabled: false
country_code: us

- name: AbaRoutingRecognizer
supported_languages:
- en
type: predefined
enabled: false
country_code: us

- name: NhsRecognizer
supported_languages:
- en
Expand Down Expand Up @@ -139,6 +146,13 @@ recognizers:
enabled: false
country_code: sg

- name: SgUenRecognizer
supported_languages:
- en
type: predefined
enabled: false
country_code: sg

- name: AuAbnRecognizer
supported_languages:
- en
Expand Down Expand Up @@ -279,6 +293,13 @@ recognizers:
type: predefined
country_code: pl

- name: FiPersonalIdentityCodeRecognizer
supported_languages:
- fi
type: predefined
enabled: false
country_code: fi

- name: KrBrnRecognizer
supported_languages:
- ko
Expand Down
37 changes: 37 additions & 0 deletions presidio-analyzer/tests/test_recognizer_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from pathlib import Path

import pytest
import yaml
import regex as re
from presidio_analyzer import (
AnalyzerEngine,
Expand All @@ -11,6 +12,7 @@
PatternRecognizer,
RecognizerRegistry,
)
from presidio_analyzer.recognizer_registry import RecognizerRegistryProvider
from presidio_analyzer.predefined_recognizers import SpacyRecognizer, UsSsnRecognizer


Expand Down Expand Up @@ -696,3 +698,38 @@ def test_load_predefined_recognizers_validates_countries_input():
# ---------------------------------------------------------------------------
# YAML ``country_code`` cross-validation
# ---------------------------------------------------------------------------


# ---------------------------------------------------------------------------
# Newly registered pattern recognizers are enable-safe
# ---------------------------------------------------------------------------


def test_when_newly_registered_yaml_recognizers_enabled_then_they_load(tmp_path):
"""AbaRouting, FiPersonalIdentityCode and SgUen were exported in code but
missing from ``default_recognizers.yaml``; their entries ship
``enabled: false``, so this flips them on and asserts they instantiate."""
conf_path = (
Path(__file__).parent.parent
/ "presidio_analyzer"
/ "conf"
/ "default_recognizers.yaml"
)
conf = yaml.safe_load(conf_path.read_text())
targets = {
"AbaRoutingRecognizer",
"FiPersonalIdentityCodeRecognizer",
"SgUenRecognizer",
}
conf["supported_languages"] = ["en", "fi"]
for recognizer_conf in conf["recognizers"]:
if recognizer_conf["name"] in targets:
recognizer_conf["enabled"] = True
enabled_conf = tmp_path / "enabled.yaml"
enabled_conf.write_text(yaml.safe_dump(conf))

registry = RecognizerRegistryProvider(
conf_file=str(enabled_conf)
).create_recognizer_registry()

assert targets <= _recognizer_class_names(registry)