def test_equality(self):
        config = ExampleConfig(changed_by=self.user, string_field='first')
        config.save()

        self.assertTrue(
            ExampleConfig.equal_to_current({"string_field": "first"}))
        self.assertTrue(
            ExampleConfig.equal_to_current({
                "string_field": "first",
                "enabled": False
            }))
        self.assertTrue(
            ExampleConfig.equal_to_current({
                "string_field": "first",
                "int_field": 10
            }))

        self.assertFalse(
            ExampleConfig.equal_to_current({
                "string_field": "first",
                "enabled": True
            }))
        self.assertFalse(
            ExampleConfig.equal_to_current({
                "string_field": "first",
                "int_field": 20
            }))
        self.assertFalse(
            ExampleConfig.equal_to_current({"string_field": "second"}))

        self.assertFalse(ExampleConfig.equal_to_current({}))
    def test_equality_custom_fields_to_ignore(self):
        config = ExampleConfig(changed_by=self.user, string_field='first')
        config.save()

        # id, change_date, and changed_by will all be different for a newly created entry
        self.assertTrue(
            ExampleConfig.equal_to_current({"string_field": "first"}))
        self.assertFalse(
            ExampleConfig.equal_to_current({"string_field": "first"},
                                           fields_to_ignore=("change_date",
                                                             "changed_by")))
        self.assertFalse(
            ExampleConfig.equal_to_current({"string_field": "first"},
                                           fields_to_ignore=("id",
                                                             "changed_by")))
        self.assertFalse(
            ExampleConfig.equal_to_current({"string_field": "first"},
                                           fields_to_ignore=("change_date",
                                                             "id")))

        # Test the ability to ignore a different field ("int_field").
        self.assertFalse(
            ExampleConfig.equal_to_current({
                "string_field": "first",
                "int_field": 20
            }))
        self.assertTrue(
            ExampleConfig.equal_to_current(
                {
                    "string_field": "first",
                    "int_field": 20
                },
                fields_to_ignore=("id", "change_date", "changed_by",
                                  "int_field")))