示例#1
0
 def test_sweeping(self):
     tm = TestModel()
     tm.boolean = False
     tm.characters = 'testing'
     self.assertEqual(_changes(tm, _to_dict(tm)), {
         'boolean': True,
         'characters': ''
     })
     tm.save()
     self.assertEqual(_changes(tm, _to_dict(tm)), {})
示例#2
0
 def test_sweeping(self):
     tm = TestModel()
     tm.boolean = False
     tm.characters = 'testing'
     self.assertEqual(tm.get_dirty_fields(), {
         'boolean': True,
         'characters': ''
     })
     tm.save()
     self.assertEqual(tm.get_dirty_fields(), {})
示例#3
0
    def test_dirty_fields(self):
        tm = TestModel()
        # initial state shouldn't be dirty
        self.assertEqual(tm.get_dirty_fields(), {})

        # changing values should flag them as dirty
        tm.boolean = False
        tm.characters = 'testing'
        self.assertEqual(tm.get_dirty_fields(), {
            'boolean': True,
            'characters': ''
        })

        # resetting them to original values should unflag
        tm.boolean = True
        self.assertEqual(tm.get_dirty_fields(), {'characters': ''})
示例#4
0
    def test_is_dirty(self):
        tm = TestModel()
        self.assertTrue(tm.is_dirty())

        tm.save()
        self.assertFalse(tm.is_dirty())

        m = TestModelWithForeignKey()
        self.assertTrue(m.is_dirty())

        m.save()
        self.assertFalse(m.is_dirty())

        m.fkey = tm
        self.assertTrue(m.is_dirty())

        m.save()
        self.assertFalse(m.is_dirty())

        m = TestModelWithForeignKey.objects.create(
            fkey=TestModel.objects.create(), )
        self.assertFalse(m.is_dirty())
        m.fkey.boolean = not m.fkey.boolean
        self.assertFalse(m.is_dirty())