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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)