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'])
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'])
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()
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)
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)