def test_bulk_compare(self): c1 = self.c1 e3 = self.e3 new_objs = self.new_objs ret = bulk_compare(old_models=Employee.objects.filter(company=c1), new_models=new_objs, key_fields=("name",)) self.assertEqual([new_objs[2], new_objs[3]], ret["added"]) self.assertEqual([e3], list(ret["removed"])) self.assertEqual([new_objs[0]], ret["updated"]) self.assertEqual({new_objs[0]: {"age": (40, 41)}}, ret["updated_details"]) self.assertEqual([new_objs[1]], ret["unchanged"])
def test_bulk_compare_with_ignore_fields(self): c1 = self.c1 e3 = self.e3 new_objs = self.new_objs ret = bulk_compare( old_models=Employee.objects.filter(company=c1).order_by("name"), new_models=new_objs, key_fields=("name", ), ignore_fields=("age", ), ) self.assertEqual([new_objs[2], new_objs[3]], ret["added"]) self.assertEqual([e3], list(ret["removed"])) self.assertEqual([], ret["updated"]) self.assertEqual({}, ret["updated_details"]) self.assertEqual([new_objs[0], new_objs[1]], ret["unchanged"])
def test_nonstandard_pk(self): self.setupEmployeeDiffPk() c1 = self.c1 e3 = self.e3 new_objs = self.new_objs ret = bulk_compare( old_models=EmployeeDifferentPk.objects.filter(company=c1).order_by("name"), new_models=new_objs, key_fields=("name",), ignore_fields=("company_id",), ) self.assertEqual([new_objs[2], new_objs[3]], ret["added"]) self.assertEqual([e3], list(ret["removed"])) self.assertEqual([new_objs[0]], ret["updated"]) self.assertEqual({new_objs[0]: {"age": (40, 41)}}, ret["updated_details"]) self.assertEqual([new_objs[1]], ret["unchanged"])