diff options
Diffstat (limited to 'unittest/test_bindings.py')
-rw-r--r-- | unittest/test_bindings.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/unittest/test_bindings.py b/unittest/test_bindings.py index 6e87c65..ac77140 100644 --- a/unittest/test_bindings.py +++ b/unittest/test_bindings.py @@ -4,10 +4,12 @@ from enum import Enum RFC_SECRET = '12345678901234567890' + class DefaultPasswords(Enum): ADMIN = '12345678' USER = '123456' + class DeviceErrorCode(Enum): STATUS_OK = 0 NOT_PROGRAMMED = 3 @@ -16,6 +18,7 @@ class DeviceErrorCode(Enum): ffi = cffi.FFI() + @pytest.fixture(scope="module") def C(request): fp = '../NK_C_API.h' @@ -32,31 +35,41 @@ def C(request): ffi.cdef(declaration) C = ffi.dlopen("../build/libnitrokey.so") + C.NK_set_debug(False) C.NK_login('12345678', '123123123') # C.NK_set_debug(True) def fin(): + print ('\nFinishing connection to device') C.NK_logout() + print ('Finished') request.addfinalizer(fin) return C -def test_admin_PIN_change(C): +def test_enable_password_safe(C): + assert C.NK_enable_password_safe('wrong_password') == DeviceErrorCode.WRONG_PASSWORD + assert C.NK_enable_password_safe(DefaultPasswords.USER) == DeviceErrorCode.STATUS_OK + + +def test_password_safe_slot_status(C): C.NK_set_debug(True) + assert C.NK_get_password_safe_slot_status() == DeviceErrorCode.STATUS_OK + C.NK_set_debug(False) + + +def test_admin_PIN_change(C): assert C.NK_change_admin_PIN('wrong_password', '123123123') == DeviceErrorCode.WRONG_PASSWORD assert C.NK_change_admin_PIN(DefaultPasswords.ADMIN, '123123123') == DeviceErrorCode.STATUS_OK assert C.NK_change_admin_PIN('123123123', DefaultPasswords.ADMIN) == DeviceErrorCode.STATUS_OK - C.NK_set_debug(False) def test_user_PIN_change(C): - C.NK_set_debug(True) assert C.NK_change_user_PIN('wrong_password', '123123123') == DeviceErrorCode.WRONG_PASSWORD assert C.NK_change_user_PIN(DefaultPasswords.USER, '123123123') == DeviceErrorCode.STATUS_OK assert C.NK_change_user_PIN('123123123', DefaultPasswords.USER) == DeviceErrorCode.STATUS_OK - C.NK_set_debug(False) def test_HOTP_RFC(C): |