diff options
| -rw-r--r-- | obfuscator/obfuscate.py | 8 | ||||
| -rw-r--r-- | test/test_obfuscator.py | 63 |
2 files changed, 56 insertions, 15 deletions
diff --git a/obfuscator/obfuscate.py b/obfuscator/obfuscate.py index c9c116c..ac0bd21 100644 --- a/obfuscator/obfuscate.py +++ b/obfuscator/obfuscate.py @@ -3,13 +3,15 @@ from obfuscator.logger import get_logger logger = get_logger("Obfuscator") -def obfuscate(data: List[Dict[str, str]], pii_fields: List[str]) -> List[Dict[str,str]]: + +def obfuscate( + data: List[Dict[str, str]], pii_fields: List[str] +) -> List[Dict[str, str]]: if not data: logger.info("No valid data was provided to obfuscate") return [] - + return [ {k: ("***" if k in pii_fields else v) for k, v in record.items()} for record in data ] -
\ No newline at end of file diff --git a/test/test_obfuscator.py b/test/test_obfuscator.py index cfc88e5..c77b6b4 100644 --- a/test/test_obfuscator.py +++ b/test/test_obfuscator.py @@ -1,47 +1,86 @@ from obfuscator.obfuscate import obfuscate + def test_obfuscate_data_with_valid_pii_fields(): data = [ - {"student_id": "1234", "name": "John Smith", "course": "Software", "email_address": "j.smith@email.com"}, - {"student_id": "5678", "name": "Jane Doe", "course": "Data Science", "email_address": "j.doe@email.com"} + { + "student_id": "1234", + "name": "John Smith", + "course": "Software", + "email_address": "j.smith@email.com", + }, + { + "student_id": "5678", + "name": "Jane Doe", + "course": "Data Science", + "email_address": "j.doe@email.com", + }, ] pii_fields = ["name", "email_address"] expected = [ - {"student_id": "1234", "name": "***", "course": "Software", "email_address": "***"}, - {"student_id": "5678", "name": "***", "course": "Data Science", "email_address": "***"} + { + "student_id": "1234", + "name": "***", + "course": "Software", + "email_address": "***", + }, + { + "student_id": "5678", + "name": "***", + "course": "Data Science", + "email_address": "***", + }, ] - + result = obfuscate(data, pii_fields) assert result == expected + def test_obfuscate_data_with_missing_pii_field(): data = [ {"student_id": "1234", "name": "John Smith", "course": "Software"}, - {"student_id": "5678", "name": "Jane Doe", "course": "Data Science", "email_address": "j.doe@email.com"} + { + "student_id": "5678", + "name": "Jane Doe", + "course": "Data Science", + "email_address": "j.doe@email.com", + }, ] pii_fields = ["name", "email_address"] expected = [ {"student_id": "1234", "name": "***", "course": "Software"}, - {"student_id": "5678", "name": "***", "course": "Data Science", "email_address": "***"} + { + "student_id": "5678", + "name": "***", + "course": "Data Science", + "email_address": "***", + }, ] - + result = obfuscate(data, pii_fields) assert result == expected + def test_obfuscate_data_with_no_data(): data = [] pii_fields = ["name", "email_address"] expected = [] - + result = obfuscate(data, pii_fields) assert result == expected + def test_obfuscate_data_with_empty_pii_fields(): data = [ - {"student_id": "1234", "name": "John Smith", "course": "Software", "email_address": "j.smith@email.com"} + { + "student_id": "1234", + "name": "John Smith", + "course": "Software", + "email_address": "j.smith@email.com", + } ] pii_fields = [] expected = data.copy() - + result = obfuscate(data, pii_fields) - assert result == expected
\ No newline at end of file + assert result == expected |
