cmsmanage/doorcontrol/hid/tests/test_Credential.py
Adam Goldsmith 64d8d1fcfb
All checks were successful
Ruff / ruff (push) Successful in 1m53s
Test / test (push) Successful in 4m50s
Allow assigning arbitrary NFC card numbers to members on HID doors
2024-12-03 11:54:07 -05:00

31 lines
1.2 KiB
Python

from unittest import TestCase
from hypothesis import given
from hypothesis import strategies as st
from doorcontrol.hid.Credential import Credential
class CredentialTestCase(TestCase):
@given(facility_code=st.integers(0, 0xFF), card_number=st.integers(0, 0xFFFF))
def test_code_round_trip(self, facility_code: int, card_number: int):
cred = Credential.from_code(facility_code, card_number)
self.assertEqual(cred.facility_code, facility_code)
self.assertEqual(cred.card_number, card_number)
@given(facility_code=st.integers(0, 0xFF), card_number=st.integers(0, 0xFFFF))
def test_to_hex_round_trip(self, facility_code: int, card_number: int):
cred = Credential.from_code(facility_code, card_number)
hex_cred = Credential.from_26bit_hex(cred.hex)
self.assertEqual(cred, hex_cred)
def test_example_numbers(self):
examples = [
(100, 12345, "02C86073"),
]
for facility_code, card_number, hex_number in examples:
code_cred = Credential.from_code(facility_code, card_number)
hex_cred = Credential.from_26bit_hex(hex_number)
self.assertEqual(code_cred, hex_cred)