aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--obfuscator/obfuscate.py8
-rw-r--r--test/test_obfuscator.py63
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
git.ajschof.me — hosted by ajschofield — powered by cgit