Ejemplo n.º 1
0
 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,
         },
     )
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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,
         },
     )
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
    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")
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    def test_validate__correct(self):
        country = UKFactory()

        data = {"iso2_code": country.iso2_code}
        serializer = CountrySessionSerializer(data=data)

        self.assertTrue(serializer.is_valid())
Ejemplo n.º 12
0
    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")
Ejemplo n.º 13
0
    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())
Ejemplo n.º 14
0
    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)