Esempio n. 1
0
    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"])
Esempio n. 2
0
    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"])
Esempio n. 3
0
    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"])