diff --git a/requirements.txt b/requirements.txt index 301aafc..d6299dc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ pillow pyzbar qrcode protobuf +pytest \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_gauth_reencoder.py b/tests/test_gauth_reencoder.py new file mode 100644 index 0000000..b1a78ff --- /dev/null +++ b/tests/test_gauth_reencoder.py @@ -0,0 +1,28 @@ +import pytest +from gauth_reencoder import decode_totp +from gauth_reencoder import generate_new_url + +@pytest.mark.parametrize("url, account, issuer, secret, algorithm, digits", [ + ("otpauth://totp/DEF?algorithm=&digits=&issuer=ABC&secret=jidowio390u20", "DEF", "ABC", "jidowio390u20", "", ""), + ("otpauth://totp/Label?secret=jidowio390u20&issuer=Issuer", "Label", "Issuer", "jidowio390u20", "", ""), +]) +def test_decode_totp(url: str, account: str, issuer: str, secret: str, algorithm: str, digits: str): + decoded = decode_totp(url) + assert decoded["account"] == account + assert decoded["issuer"] == issuer + assert decoded["secret"] == secret + assert decoded["algorithm"] == algorithm + assert decoded["digits"] == digits + +@pytest.mark.parametrize("url, account, issuer, secret, algorithm, digits", [ + ("otpauth://totp/DEF?algorithm=&digits=&issuer=ABC&secret=jidowio390u20", "DEF", "ABC", "jidowio390u20", "", ""), +]) +def test_generate_new_url(url: str, account: str, issuer: str, secret: str, algorithm: str, digits: str): + decoded = dict() + decoded["account"] = account + decoded["issuer"] = issuer + decoded["secret"] = secret + decoded["algorithm"] = algorithm + decoded["digits"] = digits + new_url = generate_new_url(decoded) + assert new_url == url \ No newline at end of file