def test_wrong_checksum(): mrz = "7077974792GBR9505209M1704224<<<<<<<<<<<<<<00" assert Passport.check_sum(mrz[0:10] + mrz[13:20] + mrz[21:43]) != mrz[43] mrz = "7077974792GBR9505209M1404224<<<<<<<<<<<<<<00" assert Passport.check_sum(mrz[0:10] + mrz[13:20] + mrz[21:43]) != mrz[43] mrz = "7077974792GBR9505209M1404224<<<<<<<<<<<<<<08" assert Passport.check_sum(mrz[0:10] + mrz[13:20] + mrz[21:43]) != mrz[43]
def test_compare_5(passport_object_from_scratch): # Compare passport from class benchmark = Passport.compare(passport_object_from_scratch, passport_object_from_scratch) for key in benchmark.keys(): if "__acc__" in key: assert benchmark[key] is True
def test_compare_6(passport_object_from_scratch): # Compare passport from class with empty given_names passport_object_from_scratch.given_names = [] benchmark = Passport.compare(passport_object_from_scratch, passport_object_from_scratch) for key in benchmark.keys(): if "__acc__" in key: assert benchmark[key] is True elif "__pre__" in key: assert benchmark[key] in [True, None]
def passport_object_from_scratch(): return Passport( country="FR", id_number="sqd12354", birth_date="1989-10-19", expiry_date="2027-12-01", issuance_date="2017-11-31", birth_place="Paris", gender="M", surname="Doe", mrz1="P<GBRPUDARSAN<<HENERT<<<<<<<<<<<<<<<<<<<<<<<", mrz2="7077979792GBR9505209M1704224<<<<<<<<<<<<<<00", given_names=["John", "Jane"], mrz= "P<GBRPUDARSAN<<HENERT<<<<<<<<<<<<<<<<<<<<<<<7077979792GBR9505209M1704224<<<<<<<<<<<<<<00", full_name="John Doe")
def test_compare_3(passport_object, passport_object_all_na): # Compare full object and empty object benchmark = Passport.compare(passport_object, passport_object_all_na) for value in benchmark.values(): assert value is False
def test_compare_1(passport_object): # Compare same object must return all True benchmark = Passport.compare(passport_object, passport_object) for value in benchmark.values(): assert value is True
def test_checksum_with_personal_number_alpha(): mrz = "XDB0661884ESP9502138F1808122RE20050024133894" assert Passport.check_sum(mrz[28:42]) == mrz[42]
def test_checksum(): mrz = "7077979792GBR9505209M1704224<<<<<<<<<<<<<<00" assert Passport.check_sum(mrz[0:10] + mrz[13:20] + mrz[21:43]) == mrz[43]
def passport_object(): json_repsonse = json.load(open("./tests/data/passport/v1/passport.json")) return Passport(json_repsonse["predictions"][0])
def test_empty_object_works(): passport = Passport() assert passport.full_name.value is None