def test_get_active_from_session(self): country = UKFactory() country.active = True country.save() request = self.factory.get("/api/country/session/") request.session = {"shipping_country": country.iso2_code} response = CountrySessionAPIView.as_view()(request) self.assertEqual(response.status_code, 200) self.assertEqual( response.data, { "iso2_code": country.iso2_code, "iso3_code": country.iso3_code, "name": country.name, "printable_name": country.printable_name, "numcode": country.numcode, "continent": { "id": country.continent.id, "code": country.continent.code, "name": country.continent.name, }, "admin_area": country.admin_area, "eu": country.eu, }, )
def test_set_country_in_session(self): country = USFactory() active_country = UKFactory() active_country.active = True active_country.save() data = {"iso2_code": active_country.iso2_code} request = self.factory.post("/api/country/session/", data=data) request.session = {"country_code": country.iso2_code} response = CountrySessionAPIView.as_view()(request) self.assertEqual(response.status_code, 200) test_data = { "iso2_code": active_country.iso2_code, "iso3_code": active_country.iso3_code, "name": active_country.name, "printable_name": active_country.printable_name, "numcode": active_country.numcode, "continent": { "id": active_country.continent.id, "code": active_country.continent.code, "name": active_country.continent.name, }, "admin_area": active_country.admin_area, "eu": active_country.eu, } self.assertEqual(response.data, test_data)
def test_active_countries(self): Country.objects.all().update(active=False) active_country = UKFactory() active_country.active = True active_country.save() request = self.factory.get("/api/country/") response = CountryListAPIView.as_view()(request) self.assertEqual(response.status_code, 200) test_data = [{ "iso2_code": active_country.iso2_code, "iso3_code": active_country.iso3_code, "name": active_country.name, "printable_name": active_country.printable_name, "numcode": active_country.numcode, "continent": { "id": active_country.continent.id, "code": active_country.continent.code, "name": active_country.continent.name, }, "admin_area": active_country.admin_area, "eu": active_country.eu, }] self.assertEqual(response.data, test_data)
def test_active_countries(self): Country.objects.all().update(active=False) active_country = UKFactory() active_country.active = True active_country.save() request = self.factory.get("/api/country/") response = CountryListAPIView.as_view()(request) self.assertEqual(response.status_code, 200) test_data = [ { "iso2_code": active_country.iso2_code, "iso3_code": active_country.iso3_code, "name": active_country.name, "printable_name": active_country.printable_name, "numcode": active_country.numcode, "continent": { "id": active_country.continent.id, "code": active_country.continent.code, "name": active_country.continent.name, }, "admin_area": active_country.admin_area, "eu": active_country.eu, } ] self.assertEqual(response.data, test_data)
def test_read_fields(self): country = UKFactory() country.active = True country.save() serializer = CountrySerializer(country) self.assertEqual( serializer.data["iso2_code"].encode("utf-8"), country.iso2_code.encode("utf-8"), ) self.assertEqual( serializer.data["iso3_code"].encode("utf-8"), country.iso3_code.encode("utf-8"), ) self.assertEqual(serializer.data["name"], country.name) self.assertEqual(serializer.data["printable_name"], country.printable_name) self.assertEqual(serializer.data["numcode"], country.numcode) self.assertEqual( serializer.data["continent"], { "id": country.continent.id, "code": country.continent.code, "name": country.continent.name, }, ) self.assertEqual(serializer.data["admin_area"], country.admin_area) self.assertEqual(serializer.data["eu"], country.eu)
def test_geoip__country_matches_active_country(self, mock_get_real_ip, mock_geoip): mock_get_real_ip.return_value = "88.97.34.8" uk = UKFactory() uk.active = True uk.save() class MockGeoIP(object): def country(self, ip): return {"country_name": "United Kingdom", "country_code": "GB"} mock_geoip.return_value = MockGeoIP() request = self.request_factory.get("/") request.session = {} self.assertEqual(country_for_request(request), "GB")
def test_country_code_in_session(self): country = UKFactory() request = self.request_factory.get("/") request.user = UserFactory() request.session = {"shipping_country": country.iso2_code} self.assertEqual(country_for_request(request), country.iso2_code)
def test_validate__correct(self): country = UKFactory() data = {"iso2_code": country.iso2_code} serializer = CountrySessionSerializer(data=data) self.assertTrue(serializer.is_valid())
def countries(self, create, extracted, **kwargs): if not create: # Simple build, do nothing. return if extracted: # A list of countries were passed in, use them for country in extracted: self.countries.add(country) else: countries = ["United Kingdom", "Guernsey", "Isle of Man", "Jersey"] self.countries.set( Country.objects.filter(printable_name__in=countries)) if len(self.countries.all()) == 0: self.countries.add(UKFactory())
def test_read_fields(self): country = UKFactory() serializer = CountrySessionSerializer(country) self.assertEqual(serializer.data["iso2_code"], country.iso2_code) self.assertEqual(len(list(serializer.data.keys())), 1)