Пример #1
0
    def test_fields(self):
        """ Test fields for serializer. """
        # Given
        location = mommy.make("Location",
                              district__city__location=self.location,
                              district__location=self.location)
        district = location.district
        city = district.city
        country = city.country
        expected_data = get_default_fields(location)
        expected_data.update({
            "address": location.address,
            "district": {
                "id": district.id,
                "name": district.name,
                "city": {
                    "id": city.id,
                    "name": city.name,
                    "country": {
                        "id": country.id,
                        "name": country.name
                    }
                }
            }
        })

        # When
        serializer = LocationNestedSerializer(location)

        # Then
        self.assertEqual(loads(dumps(serializer.data)), expected_data)
Пример #2
0
    def test_get_detail_nested(self):
        """ Test GET detail nested returns nested data. """
        # Given
        order = mommy.make("Order")
        purchase = mommy.make("Purchase",
                              price=10, order=order, location=self.location)
        expected_data = get_default_fields(purchase)
        expected_data.update({
            "price": "10.000", "currency": "USD",
            "item": {"id": purchase.item.id, "name": purchase.item.name,
                     "unit": None, "volume": None, "weight": None,
                     "brand": {"id": purchase.item.brand.id,
                               "name": purchase.item.brand.name}},
            "order": {"id": order.id, "date": order.date.isoformat(),
                      "store": {"id": order.store.id,
                                "name": order.store.name}},
            "location": "Address, District, City, Country"})
        url = reverse("{}-detail".format(self.endpoint_name),
                      args=[purchase.id])

        # When
        response = self.client.get(url, data={"nested": True})

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json(), expected_data)
Пример #3
0
    def test_get_detail_nested(self):
        """ Test GET detail nested returns nested data. """
        # Given
        location = mommy.make("Location",
                              district__city__location=self.point,
                              district__location=self.point)
        district = location.district
        city = district.city
        country = city.country
        expected_data = get_default_fields(location)
        expected_data.update({
            "address": location.address,
            "district": {"id": district.id,
                         "name": district.name,
                         "city": {"id": city.id,
                                  "name": city.name,
                                  "country": {"id": country.id,
                                              "name": country.name}}}})
        url = reverse("{}-detail".format(self.endpoint_name),
                      args=[location.id])

        # When
        response = self.client.get(url, data={"nested": True})

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json(), expected_data)
Пример #4
0
    def test_get_default_fields(self):
        """ Test successful call to function. """
        # Given
        class DummyClass(object):
            """ Dummy class to create empty object. """
            pass
        obj = DummyClass()
        setattr(obj, "id", 1)
        setattr(obj, "created", timezone.now())
        setattr(obj, "created_by", 2)
        setattr(obj, "modified", timezone.now())
        setattr(obj, "modified_by", 3)

        expected_data = {
            "id": obj.id,
            "created": obj.created.isoformat().replace("+00:00", "Z"),
            "created_by": obj.created_by,
            "modified": obj.modified.isoformat().replace("+00:00", "Z"),
            "modified_by": obj.modified_by}

        # When
        choices = utils.get_default_fields(obj)

        # Then
        self.assertEqual(choices, expected_data)
Пример #5
0
    def test_fields(self):
        """ Test fields for serializer. """
        # Given
        brand = mommy.make("Brand")
        expected_data = get_default_fields(brand)
        expected_data.update({"name": brand.name})

        # When
        serializer = StoreSerializer(brand)

        # Then
        self.assertEqual(loads(dumps(serializer.data)), expected_data)
Пример #6
0
    def test_fields(self):
        """ Test fields for serializer. """
        # Given
        order = mommy.make("Order")
        expected_data = get_default_fields(order)
        expected_data.update({
            "date": order.date.isoformat(),
            "store": order.store.id
        })

        # When
        serializer = OrderSerializer(order)

        # Then
        self.assertEqual(loads(dumps(serializer.data)), expected_data)
Пример #7
0
    def test_get_list(self):
        """ Test GET list/all expected results when data available. """
        # Given
        store = mommy.make("Store")
        expected_data = get_default_fields(store)
        expected_data.update({"name": store.name})
        url = reverse("{}-list".format(self.endpoint_name))

        # When
        response = self.client.get(url)
        data = response.json()["results"]

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(data), 1)
        self.assertEqual(data[0], expected_data)
Пример #8
0
    def test_fields_data(self):
        """ Test fields for serializer. """
        # Given
        location = mommy.make("Location",
                              district__city__location=self.location,
                              district__location=self.location)
        expected_data = get_default_fields(location)
        expected_data.update({
            "address": location.address,
            "district": location.district.id
        })

        # When
        serializer = LocationSerializer(location)

        # Then
        self.assertEqual(serializer.data, expected_data)
Пример #9
0
    def test_get_detail_nested(self):
        """ Test GET detail nested returns nested data. """
        # Given
        order = mommy.make("Order")
        expected_data = get_default_fields(order)
        expected_data.update({"date": order.date.isoformat(),
                              "store": {"id": order.store.id,
                                        "name": order.store.name}})
        url = reverse("{}-detail".format(self.endpoint_name),
                      args=[order.id])

        # When
        response = self.client.get(url, data={"nested": True})

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json(), expected_data)
Пример #10
0
    def test_fields_data(self):
        """ Test fields for serializer. """
        # Given
        purchase = mommy.make("Purchase", price=10, location=self.location)
        expected_data = get_default_fields(purchase)
        expected_data.update({
            "price": "10.000",
            "currency": "USD",
            "item": purchase.item.id,
            "order": None,
            "location": self.location.id
        })

        # When
        serializer = PurchaseSerializer(purchase)

        # Then
        self.assertEqual(serializer.data, expected_data)
Пример #11
0
    def test_get_list(self):
        """ Test GET list/all expected results when data available. """
        # Given
        location = mommy.make("Location",
                              district__city__location=self.point,
                              district__location=self.point)
        expected_data = get_default_fields(location)
        expected_data.update({"address": location.address,
                              "district": location.district.id})
        url = reverse("{}-list".format(self.endpoint_name))

        # When
        response = self.client.get(url)
        data = response.json()["results"]

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(data), 1)
        self.assertEqual(data[0], expected_data)
Пример #12
0
    def test_fields(self):
        """ Test fields for serializer. """
        # Given
        order = mommy.make("Order")
        purchase = mommy.make(
            "Purchase",
            price=10,
            item__volume=Volume(l=1),  # noqa
            order=order,
            location=self.location)
        purchase.item.refresh_from_db()  # To trigger MeasurementField updates
        expected_data = get_default_fields(purchase)
        expected_data.update({
            "price": "10.000",
            "currency": "USD",
            "item": {
                "id": purchase.item.id,
                "name": purchase.item.name,
                "unit": "cubic_meter",
                "volume": 0.001,
                "weight": None,
                "brand": {
                    "id": purchase.item.brand.id,
                    "name": purchase.item.brand.name
                }
            },
            "order": {
                "id": order.id,
                "date": order.date.isoformat(),
                "store": {
                    "id": order.store.id,
                    "name": order.store.name
                }
            },
            "location": "Address, District, City, Country"
        })

        # When
        serializer = PurchaseNestedSerializer(purchase)

        # Then
        self.assertEqual(loads(dumps(serializer.data)), expected_data)
Пример #13
0
    def test_get_list(self):
        """ Test GET list/all expected results when data available. """
        # Given
        purchase = mommy.make("Purchase", price=10, location=self.location)
        expected_data = get_default_fields(purchase)
        expected_data.update({"price": "10.000",
                              "currency": "USD",
                              "item": purchase.item.id,
                              "order": None,
                              "location": self.location.id})
        url = reverse("{}-list".format(self.endpoint_name))

        # When
        response = self.client.get(url)
        data = response.json()["results"]

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(data), 1)
        self.assertEqual(data[0], expected_data)
Пример #14
0
    def test_get_detail_nested(self):
        """ Test GET detail nested returns nested data. """
        # Given
        item = mommy.make("Item")
        expected_data = get_default_fields(item)
        expected_data.update({
            "name": item.name,
            "unit": None,
            "volume": None,
            "weight": None,
            "brand": {"id": item.brand.id, "name": item.brand.name}})
        url = reverse("{}-detail".format(self.endpoint_name),
                      args=[item.id])

        # When
        response = self.client.get(url, data={"nested": True})

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.json(), expected_data)
Пример #15
0
    def test_get_list(self):
        """ Test GET list/all expected results when data available. """
        # Given
        item = mommy.make("Item")
        expected_data = get_default_fields(item)
        expected_data.update({"name": item.name,
                              "unit": None,
                              "volume": None,
                              "weight": None,
                              "brand": item.brand.id})
        url = reverse("{}-list".format(self.endpoint_name))

        # When
        response = self.client.get(url)
        data = response.json()["results"]

        # Then
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(data), 1)
        self.assertEqual(data[0], expected_data)
Пример #16
0
    def test_fields_data(self):
        """ Test fields for serializer. """
        # Given
        item = mommy.make(
            "Item",
            volume=Volume(l=1),  # noqa
            weight=Weight(g=1))
        item.refresh_from_db()  # To trigger MeasurementField updates
        expected_data = get_default_fields(item)
        expected_data.update({
            "name": item.name,
            "brand": item.brand.id,
            "unit": self.default_volume_unit,
            "volume": 0.001,
            "weight": 1.0
        })

        # When
        serializer = ItemSerializer(item)

        # Then
        self.assertEqual(loads(dumps(serializer.data)), expected_data)
Пример #17
0
    def test_fields(self):
        """ Test fields for serializer. """
        # Given
        item = mommy.make("Item", volume=Volume(l=1))  # noqa
        item.refresh_from_db()  # To trigger MeasurementField updates
        expected_data = get_default_fields(item)
        expected_data.update({
            "name": item.name,
            "unit": "cubic_meter",
            "volume": 0.001,
            "weight": None,
            "brand": {
                "id": item.brand.id,
                "name": item.brand.name
            }
        })

        # When
        serializer = ItemNestedSerializer(item)

        # Then
        self.assertEqual(loads(dumps(serializer.data)), expected_data)