test: simplify list obfuscator tests

This commit is contained in:
Iain Learmonth 2024-12-20 14:08:18 +00:00
parent a406a7974b
commit 5275a2a882
2 changed files with 44 additions and 76 deletions

View file

@ -1,44 +1,26 @@
import json
import unittest
import pytest
from app.terraform.list import obfuscator
class TestObfuscatingEncoder(unittest.TestCase):
def test_obfuscating_string(self):
data = "hello"
obfs = obfuscator(data)
print(f"Obfuscated string: {obfs}")
j = json.dumps(obfs).replace("!AAA!", "\\u")
loaded = json.loads(j)
self.assertEqual(data, loaded)
@pytest.mark.parametrize("input_", ["hello", {"hello": "world"}, ["hello", "world"]])
def test_obfuscator_simple(input_):
obfuscated = obfuscator(input_)
output = json.dumps(obfuscated)
loaded = json.loads(output.replace("!AAA!", "\\u"))
assert loaded == input_
def test_obfuscating_simple_dict(self):
data = {"hello": "world"}
obfs = obfuscator(data)
print(f"Obfuscated string: {obfs}")
j = json.dumps(obfs).replace("!AAA!", "\\u")
self.assertNotIn("hello", obfs)
self.assertNotIn("world", obfs)
loaded = json.loads(j)
self.assertEqual(data, loaded)
def test_obfuscating_simple_list(self):
data = ["hello", "world"]
obfs = obfuscator(data)
print(f"Obfuscated string: {obfs}")
j = json.dumps(obfs).replace("!AAA!", "\\u")
self.assertNotIn("hello", obfs)
self.assertNotIn("world", obfs)
loaded = json.loads(j)
self.assertEqual(data, loaded)
def test_obfuscating_for_real(self):
data = json.load(open("tests/list/mirrorSites.json"))
obfs = obfuscator(data)
j = json.dumps(obfs).replace("!AAA!", "\\u")
print(f"Obfuscated string: {obfs}")
for a in range(17, 27):
self.assertNotIn(chr(a), j)
loaded = json.loads(j)
self.assertEqual(data, loaded)
def test_obfuscator_for_real():
input_ = json.load(open("tests/list/mirrorSites.json"))
obfuscated = obfuscator(input_)
output = json.dumps(obfuscated)
allowed_characters = ["!", "A", ",", " ", "{", "}", "[", "]", ":", '"', chr(13)]
allowed_characters.extend([chr(x) for x in range(ord("0"), ord("9") + 1)])
allowed_characters.extend([chr(x) for x in range(ord("a"), ord("f") + 1)])
for c in output:
assert c in allowed_characters
loaded = json.loads(output.replace("!AAA!", "\\u"))
assert loaded == input_