aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/test_core.py47
-rw-r--r--test/test_init.py12
2 files changed, 47 insertions, 12 deletions
diff --git a/test/test_core.py b/test/test_core.py
new file mode 100644
index 0000000..b472e59
--- /dev/null
+++ b/test/test_core.py
@@ -0,0 +1,47 @@
+from gdpr_obfuscator import Obfuscator
+import pytest
+from moto import mock_aws
+import boto3
+import csv
+import random
+
+
+def setup_s3(s3_client, bucket: str, key: str, content: str):
+ s3_client.create_bucket(
+ Bucket=bucket,
+ CreateBucketConfiguration={"LocationConstraint": "eu-west-2"},
+ )
+ s3_client.put_object(Bucket=bucket, Key=key, Body=content)
+
+
+@pytest.fixture(autouse=True)
+def s3_client():
+ with mock_aws():
+ yield boto3.client("s3", "eu-west-2")
+
+
+obfuscator = Obfuscator()
+
+
+def test_main_integration():
+ with mock_aws():
+ s3 = boto3.client("s3", region_name="eu-west-2")
+ bucket = "test-bucket"
+ key = "data/mock.csv"
+
+ with open("mock_data.csv", "r") as f:
+ csv_content = f.read()
+
+ with open("mock_data.csv", "r") as f:
+ reader = list(csv.DictReader(f))
+ rand_row = random.randint(0, len(reader) - 1)
+ rand_name = reader[rand_row]["name"]
+
+ setup_s3(s3, bucket, key, csv_content)
+
+ path = f"s3://{bucket}/{key}"
+
+ result = obfuscator.process_s3(path, ["name"])
+ result_str = result.decode("utf-8")
+
+ assert rand_name not in result_str
diff --git a/test/test_init.py b/test/test_init.py
deleted file mode 100644
index 0915f13..0000000
--- a/test/test_init.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from gdpr_obfuscator import Obfuscator
-import moto
-
-obfuscator = Obfuscator()
-
-
-def test_main_integration():
- test_source = "s3://test-bucket/data.csv"
- result = obfuscator.process_s3(test_source, ["name"])
- result_str = result.decode("utf-8")
- assert "John" not in result_str
- assert "***" in result_str
git.ajschof.me — hosted by ajschofield — powered by cgit