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'
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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 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()
Exemplo n.º 6
0
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()
 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()