예제 #1
0
    def test_model_mocker_event_added_from_manager(self):
        objects = {}

        def car_added(obj):
            objects['added'] = obj

        with ModelMocker(Car) as mocker:
            mocker.objects.on('added', car_added)
            objects['car'] = Car.objects.create(speed=300)

        self.assertIsInstance(objects['added'], Car)
        self.assertEqual(objects['added'], objects['car'])
예제 #2
0
    def test_model_mocker_event_updated_from_instance(self):
        objects = {}

        def car_updated(obj):
            objects['updated'] = obj

        with ModelMocker(Car) as mocker:
            mocker.objects.on('updated', car_updated)
            objects['car'] = Car.objects.create(speed=300)
            objects['car'].save()

        self.assertIsInstance(objects['updated'], Car)
        self.assertEqual(objects['updated'], objects['car'])
예제 #3
0
    def test_model_mocker_does_not_interfere_with_non_mocked_models(self):
        original_objects = CarVariation.objects

        with ModelMocker(Manufacturer) as make_mocker:
            self.assertEqual(Manufacturer.objects, make_mocker.objects)

            with ModelMocker(Car, outer=False) as car_mocker:
                self.assertEqual(Car.objects, car_mocker.objects)
                self.assertEqual(CarVariation.objects, original_objects)

                with self.assertRaises(NotSupportedError):
                    CarVariation.objects.create(color='blue')

                with self.assertRaises(NotSupportedError):
                    CarVariation(color='blue').save()

                with self.assertRaises(NotSupportedError):
                    CarVariation(id=1, color='blue').save()

                with self.assertRaises(NotSupportedError):
                    CarVariation(pk=1).delete()

                with self.assertRaises(NotSupportedError):
                    CarVariation.objects.all().delete()
예제 #4
0
    def test_model_mocker_instance_save(self):
        with ModelMocker(Car):
            # New instance gets inserted
            obj = Car(speed=4)
            obj.save()
            self.assertEqual(Car.objects.get(pk=obj.id), obj)

            # Existing instance gets updated
            obj = Car(id=obj.id, speed=5)
            obj.save()
            self.assertEqual(Car.objects.get(pk=obj.id).speed, obj.speed)

            # Trying to update an instance that doesn't exists creates it
            obj = Car(id=123, speed=5)
            obj.save()
            self.assertEqual(Car.objects.get(pk=obj.id), obj)
예제 #5
0
 def test_model_mocker_objects_create(self):
     with ModelMocker(Car):
         obj = Car.objects.create(speed=10)
         self.assertEqual(Car.objects.get(pk=obj.id), obj)