diff --git a/.gitignore b/.gitignore index 485dee6..ee05595 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +__pycache__ diff --git a/src/pseudo_nkode_api.py b/nkode_api.py similarity index 99% rename from src/pseudo_nkode_api.py rename to nkode_api.py index a2ebbc8..14260d6 100644 --- a/src/pseudo_nkode_api.py +++ b/nkode_api.py @@ -9,7 +9,7 @@ from src.user_interface import UserInterface from src.customer_interface import CustomerInterface -class PseudoNKodeAPI(BaseModel): +class NKodeAPI(BaseModel): customers: dict[UUID, CustomerDBModel] = {} sessions: dict[UUID, SessionCacheModel] = {} diff --git a/test/test_nkode_api.py b/test/test_nkode_api.py new file mode 100644 index 0000000..f553f75 --- /dev/null +++ b/test/test_nkode_api.py @@ -0,0 +1,47 @@ +import pytest +from nkode_api import NKodeAPI + + +@pytest.fixture() +def nkode_api() -> NKodeAPI: + return NKodeAPI() + + +@pytest.mark.parametrize("numb_keys,attrs_per_key,user_passcode", [ + (10, 7, [3, 10, 27, 68]), +]) +def test_create_new_user_and_renew_keys(nkode_api, numb_keys, attrs_per_key, user_passcode): + username = "test_username" + customer = nkode_api.create_new_customer(numb_keys, attrs_per_key) + session_id, set_interface = nkode_api.generate_index_interface(customer.customer_id) + + key_selection = lambda interface: [interface.index(attr) // attrs_per_key for attr in user_passcode] + set_key_selection = key_selection(set_interface) + + confirm_interface = nkode_api.set_nkode(username, customer.customer_id, set_key_selection, session_id) + confirm_key_selection = key_selection(confirm_interface) + response = nkode_api.confirm_nkode( + username, + customer.customer_id, + confirm_key_selection, + session_id + ) + assert ("success" == response) + + login_interface = nkode_api.get_login_index_interface(username, customer.customer_id) + login_key_selection = key_selection(login_interface) + successful_login = nkode_api.login(customer.customer_id, username, login_key_selection) + assert successful_login + + successful_renew = nkode_api.renew_keys(customer.customer_id) + assert successful_renew + + login_interface = nkode_api.get_login_index_interface(username, customer.customer_id) + login_key_selection = key_selection(login_interface) + successful_login = nkode_api.login(customer.customer_id, username, login_key_selection) + assert successful_login + + login_interface = nkode_api.get_login_index_interface(username, customer.customer_id) + login_key_selection = key_selection(login_interface) + successful_login = nkode_api.login(customer.customer_id, username, login_key_selection) + assert successful_login diff --git a/test/test_pseudo_nkode_api.py b/test/test_pseudo_nkode_api.py deleted file mode 100644 index 147bae2..0000000 --- a/test/test_pseudo_nkode_api.py +++ /dev/null @@ -1,47 +0,0 @@ -import pytest -from src.pseudo_nkode_api import PseudoNKodeAPI - - -@pytest.fixture() -def pseudo_nkode_api() -> PseudoNKodeAPI: - return PseudoNKodeAPI() - - -@pytest.mark.parametrize("numb_keys,attrs_per_key,user_passcode", [ - (10, 7, [3, 10, 27, 68]), -]) -def test_create_new_user_and_renew_keys(pseudo_nkode_api, numb_keys, attrs_per_key, user_passcode): - username = "test_username" - customer = pseudo_nkode_api.create_new_customer(numb_keys, attrs_per_key) - session_id, set_interface = pseudo_nkode_api.generate_index_interface(customer.customer_id) - - key_selection = lambda interface: [interface.index(attr) // attrs_per_key for attr in user_passcode] - set_key_selection = key_selection(set_interface) - - confirm_interface = pseudo_nkode_api.set_nkode(username, customer.customer_id, set_key_selection, session_id) - confirm_key_selection = key_selection(confirm_interface) - response = pseudo_nkode_api.confirm_nkode( - username, - customer.customer_id, - confirm_key_selection, - session_id - ) - assert ("success" == response) - - login_interface = pseudo_nkode_api.get_login_index_interface(username, customer.customer_id) - login_key_selection = key_selection(login_interface) - successful_login = pseudo_nkode_api.login(customer.customer_id, username, login_key_selection) - assert successful_login - - successful_renew = pseudo_nkode_api.renew_keys(customer.customer_id) - assert successful_renew - - login_interface = pseudo_nkode_api.get_login_index_interface(username, customer.customer_id) - login_key_selection = key_selection(login_interface) - successful_login = pseudo_nkode_api.login(customer.customer_id, username, login_key_selection) - assert successful_login - - login_interface = pseudo_nkode_api.get_login_index_interface(username, customer.customer_id) - login_key_selection = key_selection(login_interface) - successful_login = pseudo_nkode_api.login(customer.customer_id, username, login_key_selection) - assert successful_login