def test_disable_concurrency_global(): instance1 = SimpleConcurrentModel(username=next(nextname)) instance2 = AutoIncConcurrentModel(username=next(nextname)) instance1.save() instance2.save() refetch(instance1).save() refetch(instance2).save() with disable_concurrency(): instance1.save() instance2.save() copy2 = refetch(instance2) refetch(instance2).save() with pytest.raises(RecordModifiedError): copy2.save()
def test_fqn(): with pytest.raises(ValueError): fqn('str') assert fqn(SimpleConcurrentModel) == 'demo.models.SimpleConcurrentModel' assert fqn(SimpleConcurrentModel()) == 'demo.models.SimpleConcurrentModel' assert fqn(concurrency.fields) == 'concurrency.fields'
def test_middleware(): handler = mock.Mock(status_code=409) type( handler.return_value).status_code = mock.PropertyMock(return_value=409) with override_settings(CONCURRENCY_HANDLER409=handler): request = _get_request('needsquoting#') r = ConcurrencyMiddleware().process_exception( request, RecordModifiedError(target=SimpleConcurrentModel())) assert r.status_code == 409
def test_issue_54(): m = SimpleConcurrentModel(version=0) m.save() SimpleConcurrentModel.objects.update(version=0) m1 = SimpleConcurrentModel.objects.get(pk=m.pk) m2 = SimpleConcurrentModel.objects.get(pk=m.pk) assert m1.version == m2.version == 0 m1.save() m2.save() with override_settings(CONCURRENCY_VERSION_FIELD_REQUIRED=True): m = SimpleConcurrentModel(version=0) m.save() SimpleConcurrentModel.objects.update(version=0) m1 = SimpleConcurrentModel.objects.get(pk=m.pk) m2 = SimpleConcurrentModel.objects.get(pk=m.pk) assert m1.version == m2.version == 0 m1.save() with pytest.raises(RecordModifiedError): m2.save()
def test1(): instance = SimpleConcurrentModel(username=next(nextname)) instance.save() copy = refetch(instance) copy.save() instance.save()
def test_disable_concurrency_settings(settings): with override_settings(CONCURRENCY_ENABLED=False): instance1 = SimpleConcurrentModel(username=next(nextname)) instance1.save() refetch(instance1).save()