def test_has_valid_visa(): p1 = {"passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": {"city": "Bala", "region": "ON", "country": "KAN"}, "visa": {"code": "BER4r-WDN39", "date": "2015-02-24"}, "entry_reason": "returning", "from": {"city": "Wumpus", "region": "Headdeskia", "country": "JIK"}} assert has_valid_visa(p1) is True p2 = {"passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": {"city": "Bala", "region": "ON", "country": "KAN"}, "entry_reason": "returning", "from": {"city": "Wumpus", "region": "Headdeskia", "country": "JIK"}} assert has_valid_visa(p2) is False p3 = {"passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": {"city": "Bala", "region": "ON", "country": "KAN"}, "visa": {"code": "BER4rWDN39", "date": "2015-02-24"}, "entry_reason": "returning", "from": {"city": "Wumpus", "region": "Headdeskia", "country": "JIK"}} assert has_valid_visa(p3) is False p4 = {"passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": {"city": "Bala", "region": "ON", "country": "KAN"}, "visa": {"code": "BER4r-WDN39", "date": "2010-02-24"}, "entry_reason": "returning", "from": {"city": "Wumpus", "region": "Headdeskia", "country": "JIK"}} assert has_valid_visa(p4) is False
def test_decide_visitors_invalid_visa_via_country_with_medical_advisory_file(): """ Ensure that the file contains travellers that are visitors. Visitors travelled through or from a country with a medical advisory. All visitors are from a country that requires a visitor_visa, but these travellers do not have valid visas. """ with open("test_decide_visitors_invalid_visa_via_country_with_medical_advisory.json", "r") as citizen_file: citizen_content = citizen_file.read() citizen_json = json.loads(citizen_content) assert valid_file_contents(citizen_json) for person in citizen_json: country_code = person["home"]["country"] assert country_code != "KAN" assert COUNTRIES[country_code]['visitor_visa_required'] == "1" invalid_visa = True if has_valid_visa(person): invalid_visa = False assert invalid_visa traveled_via_medical_advisory_country = False location_fields_to_check = LOCATION_FIELDS[1:] # Excludes home location field for item in location_fields_to_check: if item in person: country_code = person[item]['country'] if COUNTRIES[country_code]['medical_advisory'] != "": traveled_via_medical_advisory_country = True assert traveled_via_medical_advisory_country
def test_decide_visitors_invalid_visa_via_country_with_medical_advisory_file(): """ Ensure that the file contains travellers that are visitors. Visitors travelled through or from a country with a medical advisory. All visitors are from a country that requires a visitor_visa, but these travellers do not have valid visas. """ with open( "test_decide_visitors_invalid_visa_via_country_with_medical_advisory.json", "r") as citizen_file: citizen_content = citizen_file.read() citizen_json = json.loads(citizen_content) assert valid_file_contents(citizen_json) for person in citizen_json: country_code = person["home"]["country"] assert country_code != "KAN" assert COUNTRIES[country_code]['visitor_visa_required'] == "1" invalid_visa = True if has_valid_visa(person): invalid_visa = False assert invalid_visa traveled_via_medical_advisory_country = False location_fields_to_check = LOCATION_FIELDS[ 1:] # Excludes home location field for item in location_fields_to_check: if item in person: country_code = person[item]['country'] if COUNTRIES[country_code]['medical_advisory'] != "": traveled_via_medical_advisory_country = True assert traveled_via_medical_advisory_country
def test_decide_visitors_require_visas_valid_visas_file(): """ Ensure that the file contains travellers that have are visitors, from locations that require visas, and they have valid visas. No visitors travelled through or from a country with a medical advisory. """ with open("test_decide_visitors_require_visas_valid_visas.json", "r") as citizen_file: citizen_content = citizen_file.read() citizen_json = json.loads(citizen_content) assert valid_file_contents(citizen_json) for person in citizen_json: country_code = person["home"]["country"] assert country_code != "KAN" assert COUNTRIES[country_code]['visitor_visa_required'] == "1" valid = False assert "visa" in person if has_valid_visa(person): valid = True assert valid for item in LOCATION_FIELDS: if item in person: country_code_check_medical_advisory = person[item]['country'] assert COUNTRIES[country_code_check_medical_advisory][ 'medical_advisory'] == ""
def test_decide_visitors_require_visas_invalid_visas_file(): """ Ensure that the file contains travellers that are visitors, from locations that require visas, and they do not have valid visas. No visitors travelled through or from a country with a medical advisory. """ with open("test_decide_visitors_require_visas_invalid_visas.json", "r") as citizen_file: citizen_content = citizen_file.read() citizen_json = json.loads(citizen_content) assert valid_file_contents(citizen_json) for person in citizen_json: country_code = person["home"]["country"] assert country_code != "KAN" assert COUNTRIES[country_code]['visitor_visa_required'] == "1" invalid_visa = True if has_valid_visa(person): invalid_visa = False assert invalid_visa for item in LOCATION_FIELDS: if item in person: country_code_check_medical_advisory = person[item]['country'] assert COUNTRIES[country_code_check_medical_advisory]['medical_advisory'] == ""
def test_has_valid_visa(): p1 = { "passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": { "city": "Bala", "region": "ON", "country": "KAN" }, "visa": { "code": "BER4r-WDN39", "date": "2015-02-24" }, "entry_reason": "returning", "from": { "city": "Wumpus", "region": "Headdeskia", "country": "JIK" } } assert has_valid_visa(p1) is True p2 = { "passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": { "city": "Bala", "region": "ON", "country": "KAN" }, "entry_reason": "returning", "from": { "city": "Wumpus", "region": "Headdeskia", "country": "JIK" } } assert has_valid_visa(p2) is False p3 = { "passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": { "city": "Bala", "region": "ON", "country": "KAN" }, "visa": { "code": "BER4rWDN39", "date": "2015-02-24" }, "entry_reason": "returning", "from": { "city": "Wumpus", "region": "Headdeskia", "country": "JIK" } } assert has_valid_visa(p3) is False p4 = { "passport": "6P294-42HR2-95PSF-93NFF-2T5WF", "first_name": "JACK", "last_name": "DOE", "birth_date": "1938-12-21", "home": { "city": "Bala", "region": "ON", "country": "KAN" }, "visa": { "code": "BER4r-WDN39", "date": "2010-02-24" }, "entry_reason": "returning", "from": { "city": "Wumpus", "region": "Headdeskia", "country": "JIK" } } assert has_valid_visa(p4) is False