def test_get_model_dict(): flavor_one = Flavor(name="name1", label="label1") actual = serializer._get_model_dict(flavor_one) expected = {"pk": None, "name": "name1", "label": "label1", "parent": None} assert expected == actual
def test_get_model_dict_many_to_many_is_referenced(): taste = Taste(name="Bitter") taste.save() flavor_one = Flavor(name="name1", label="label1") flavor_one.save() flavor_one.taste_set.add(taste) actual = serializer._get_model_dict(flavor_one) expected = { "pk": 1, "name": "name1", "label": "label1", "parent": None, "decimal_value": None, "float_value": None, "uuid": str(flavor_one.uuid), "date": None, "datetime": None, "time": None, "duration": None, "taste_set": [taste.pk], "origins": [], } assert expected == actual
def test_get_model_dict_many_to_many_references_model(): taste = Taste(name="Bitter") taste.save() flavor_one = Flavor(name="name1", label="label1") flavor_one.save() flavor_one.taste_set.add(taste) actual = serializer._get_model_dict(taste) expected = {"name": taste.name, "flavor": [flavor_one.pk], "pk": taste.pk} assert expected == actual
def test_get_model_dict(): flavor_one = Flavor(name="name1", label="label1") actual = serializer._get_model_dict(flavor_one) expected = { "pk": None, "name": "name1", "label": "label1", "parent": None, "decimal_value": None, "float_value": None, "uuid": str(flavor_one.uuid), "date": None, "datetime": None, "time": None, "duration": None, } assert expected == actual
def test_get_model_dict_many_to_many_is_referenced_prefetched( django_assert_num_queries, ): flavor_one = Flavor(name="name1", label="label1") flavor_one.save() taste1 = Taste(name="Bitter") taste1.save() taste2 = Taste(name="Bitter2") taste2.save() taste3 = Taste(name="Bitter3") taste3.save() flavor_one.taste_set.add(taste1) flavor_one.taste_set.add(taste2) flavor_one.taste_set.add(taste3) expected = { "pk": 1, "name": "name1", "label": "label1", "parent": None, "decimal_value": None, "float_value": None, "uuid": str(flavor_one.uuid), "date": None, "datetime": None, "time": None, "duration": None, "taste_set": [taste1.pk, taste2.pk, taste3.pk], "origins": [], } flavor_one = (Flavor.objects.prefetch_related("taste_set").filter( id=flavor_one.id).first()) # prefetch_related should reduce the database calls with django_assert_num_queries(1): actual = serializer._get_model_dict(flavor_one) assert expected == actual