diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_core.py | 47 | ||||
| -rw-r--r-- | test/test_init.py | 12 |
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 |
