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_concurrency_disable_increment_as_decorator():
    instance1 = AutoIncConcurrentModel(username=next(nextname))

    @concurrency_disable_increment(instance1)
    def test():
        assert instance1.version == 0
        instance1.save()
        assert instance1.version == 1
        instance1.save()
        instance1.save()
        assert instance1.version == 1

    test()
    instance1.save()
    assert instance1.version == 2
def test_concurrency_disable_increment_as_decorator():
    instance1 = AutoIncConcurrentModel(username=next(nextname))

    @concurrency_disable_increment(instance1)
    def test():
        assert instance1.version == 0
        instance1.save()
        assert instance1.version == 1
        instance1.save()
        instance1.save()
        assert instance1.version == 1

    test()
    instance1.save()
    assert instance1.version == 2
def test_concurrency_disable_increment():
    instance1 = AutoIncConcurrentModel(username=next(nextname))
    assert instance1.version == 0
    instance1.save()
    assert instance1.version == 1
    with concurrency_disable_increment(instance1):
        instance1.save()
        instance1.save()
        assert instance1.version == 1
    instance1.save()
    assert instance1.version == 2
def test_concurrency_disable_increment():
    instance1 = AutoIncConcurrentModel(username=next(nextname))
    assert instance1.version == 0
    instance1.save()
    assert instance1.version == 1
    with concurrency_disable_increment(instance1):
        instance1.save()
        instance1.save()
        assert instance1.version == 1
    instance1.save()
    assert instance1.version == 2
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()