Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/CDCgov/RecordLinker into fe…
Browse files Browse the repository at this point in the history
…ature/161-API-endpoint-for-merging-person-clusters
  • Loading branch information
m-goggins committed Feb 10, 2025
2 parents 75c85b4 + 1507bea commit ee2c867
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/recordlinker/schemas/pii.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ def feature_iter(self, feature: Feature) -> typing.Iterator[str]:
if name.family:
yield name.family
elif attribute == FeatureAttribute.RACE:
if self.race:
if self.race and self.race not in [Race.UNKNOWN, Race.ASKED_UNKNOWN]:
yield str(self.race)
elif attribute == FeatureAttribute.TELECOM:
for telecom in self.telecom:
Expand Down
16 changes: 15 additions & 1 deletion tests/unit/schemas/test_pii.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@ def test_parse_race(self):
assert record.race == pii.Race.BLACK
record = pii.PIIRecord(race="native hawaiian or other pacific islander")
assert record.race == pii.Race.HAWAIIAN
record = pii.PIIRecord(race="asked unknown")
assert record.race == pii.Race.ASKED_UNKNOWN
record = pii.PIIRecord(race="asked but unknown")
assert record.race == pii.Race.ASKED_UNKNOWN
record = pii.PIIRecord(race="unknown")
Expand Down Expand Up @@ -242,7 +244,7 @@ def test_feature_iter(self):
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.GIVEN_NAME))) == ["John", "L", "Jane"]
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.FIRST_NAME))) == ["John", "Jane"]
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.LAST_NAME))) == ["Doe", "Smith"]
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == ["UNKNOWN"]
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == []
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.TELECOM))) == [
"555-123-4567",
"(555) 987-6543",
Expand All @@ -257,6 +259,18 @@ def test_feature_iter(self):
# IDENTIFIER with suffix
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.IDENTIFIER, suffix="MR"))) == ["MR::123456"]
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.IDENTIFIER, suffix="SS"))) == ["SS::123-45-6789"]

# Other fields work okay, few more checks on difference race yield values
record = pii.PIIRecord(race="asked unknown")
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == []
record = pii.PIIRecord(race="asked but unknown")
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == []
record = pii.PIIRecord(race="asian")
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == ["ASIAN"]
record = pii.PIIRecord(race="african american")
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == ["BLACK"]
record = pii.PIIRecord(race="white")
assert list(record.feature_iter(pii.Feature(attribute=pii.FeatureAttribute.RACE))) == ["WHITE"]


def test_blocking_keys_invalid(self):
Expand Down

0 comments on commit ee2c867

Please sign in to comment.