Beispiel #1
0
def test_indexed_delete(backend):

    movie = Movie({'name': 'The Godfather'})
    actor = Actor({'name': 'Marlon Brando'})
    actor.performances = [movie]
    movie.cast = {'Don Corleone': actor}

    movie.save(backend)
def test_indexed_delete(backend):

    movie = Movie({'name' : 'The Godfather'})
    actor = Actor({'name' : 'Marlon Brando'})
    actor.performances = [movie]
    movie.cast = {'Don Corleone' : actor}

    movie.save(backend)
Beispiel #3
0
def test_autocommit_transaction(backend):

    backend.filter(Movie, {}).delete()

    try:
        backend.autocommit = True
        movie = Movie({'name': 'The Godfather', 'year': 1979, 'type': 'US'})
        movie.save(backend)
        backend.delete(movie)
        movie.name = 'Star Wars IV'
        movie.save(backend)

        with pytest.raises(Movie.DoesNotExist):
            backend.get(Movie, {
                'name': 'The Godfather',
                'year': 1979,
                'type': 'US'
            })

        assert backend.get(Movie, {
            'name': 'Star Wars IV',
            'year': 1979
        }) == movie
        assert len(backend.filter(Movie, {'type': 'US'})) == 1
    finally:
        backend.autocommit = False
Beispiel #4
0
def test_advanced_transaction(backend):

    backend.begin()

    backend.filter(Movie, {}).delete()

    movie = Movie({'name': 'The Godfather', 'year': 1979, 'type': 'US'})
    movie.save(backend)
    backend.commit()

    backend.delete(movie)
    movie.name = 'Star Wars IV'
    movie.save(backend)

    with pytest.raises(Movie.DoesNotExist):
        backend.get(Movie, {
            'name': 'The Godfather',
            'year': 1979,
            'type': 'US'
        })

    backend.rollback()

    assert backend.get(Movie, {'name': 'The Godfather', 'year': 1979}) == movie
    assert len(backend.filter(Movie, {'type': 'US'})) == 1
def test_advanced_transaction(transactional_backend):

    transactional_backend.begin()

    transactional_backend.filter(Movie, {}).delete()
    transactional_backend.rollback()

    movie = Movie({'title': 'The Godfather', 'year': 1979})
    movie.save(transactional_backend)
    transactional_backend.commit()

    transactional_backend.delete(movie)
    movie.title = 'Star Wars IV'
    movie.save(transactional_backend)

    transactional_backend.rollback()

    assert transactional_backend.get(Movie, {
        'title': 'The Godfather',
        'year': 1979
    }).title == 'The Godfather'

    assert transactional_backend.get(Movie, {
        'title': 'The Godfather',
        'year': 1979
    }) == movie
    assert len(transactional_backend.filter(Movie, {'year': 1979})) == 1
def test_basic_storage(backend):

    #the dots will get encoded and should be decoded when loading the data...
    movie = Movie({"foo.bar.baz": "bar"})

    with backend.transaction():
        backend.save(movie)

    recovered_movie = backend.get(Movie, {})

    assert 'foo.bar.baz' in recovered_movie and recovered_movie[
        'foo.bar.baz'] == 'bar'
def test_nested_value(backend):

    actor = Actor({'name' : 'Robert de Niro'})
    movie = Movie({'best_actor' : actor,'title' : 'The Godfather'})

    backend.save(actor)
    actor.movies = [movie]
    backend.save(actor)
    backend.commit()
    backend.save(movie)
    backend.commit()

    recovered_actor = backend.get(Actor,{'pk' : actor.pk})

    assert recovered_actor == actor
    assert movie in recovered_actor.movies
    assert recovered_actor.movies[0] == movie
    assert 'best_actor' in recovered_actor.movies[0]
    assert recovered_actor.movies[0].best_actor == recovered_actor

    recovered_actors = backend.filter(Actor,{'movies.title' : 'The Godfather'})
    assert len(recovered_actors) == 1
    assert actor in recovered_actors
Beispiel #8
0
def test_autocommit_transaction(transactional_backend):

    transactional_backend.filter(Movie, {}).delete()

    try:
        transactional_backend.autocommit = True
        movie = Movie({'title': 'The Godfather', 'year': 1979})
        movie.save(transactional_backend)
        transactional_backend.delete(movie)
        movie.title = 'Star Wars IV'
        movie.save(transactional_backend)

        with pytest.raises(Movie.DoesNotExist):
            transactional_backend.get(Movie, {'title': 'The Godfather', 'year': 1979})

        assert transactional_backend.get(Movie, {'title': 'Star Wars IV', 'year': 1979}) == movie
        assert len(transactional_backend.filter(Movie, {'year': 1979})) == 1
    finally:
        transactional_backend.autocommit = False
Beispiel #9
0
def test_autocommit_transaction(transactional_backend):

    transactional_backend.filter(Movie, {}).delete()

    try:
        transactional_backend.autocommit = True
        movie = Movie({"title": "The Godfather", "year": 1979})
        movie.save(transactional_backend)
        transactional_backend.delete(movie)
        movie.title = "Star Wars IV"
        movie.save(transactional_backend)

        with pytest.raises(Movie.DoesNotExist):
            transactional_backend.get(Movie, {"title": "The Godfather", "year": 1979})

        assert transactional_backend.get(Movie, {"title": "Star Wars IV", "year": 1979}) == movie
        assert len(transactional_backend.filter(Movie, {"year": 1979})) == 1
    finally:
        transactional_backend.autocommit = False
Beispiel #10
0
def test_advanced_transaction(transactional_backend):

    transactional_backend.begin()

    transactional_backend.filter(Movie, {}).delete()
    transactional_backend.rollback()

    movie = Movie({"title": "The Godfather", "year": 1979})
    movie.save(transactional_backend)
    transactional_backend.commit()

    transactional_backend.delete(movie)
    movie.title = "Star Wars IV"
    movie.save(transactional_backend)

    transactional_backend.rollback()

    assert transactional_backend.get(Movie, {"title": "The Godfather", "year": 1979}).title == "The Godfather"

    assert transactional_backend.get(Movie, {"title": "The Godfather", "year": 1979}) == movie
    assert len(transactional_backend.filter(Movie, {"year": 1979})) == 1
Beispiel #11
0
def test_advanced_transaction(transactional_backend):

    transactional_backend.begin()

    transactional_backend.filter(Movie,{}).delete()

    movie = Movie({'name' : 'The Godfather','year' : 1979,'type' : 'US'})
    movie.save(transactional_backend)
    transactional_backend.commit()

    transactional_backend.delete(movie)
    movie.name = 'Star Wars IV'
    movie.save(transactional_backend)

    with pytest.raises(Movie.DoesNotExist):
        transactional_backend.get(Movie,{'name' : 'The Godfather','year' : 1979,'type' : 'US'})

    transactional_backend.rollback()

    assert transactional_backend.get(Movie,{'name' : 'The Godfather','year' : 1979}) == movie
    assert len(transactional_backend.filter(Movie,{'type':'US'})) == 1
Beispiel #12
0
def test_advanced_transaction(transactional_backend):

    transactional_backend.begin()

    transactional_backend.filter(Movie, {}).delete()
    transactional_backend.rollback()

    movie = Movie({'title': 'The Godfather', 'year': 1979})
    movie.save(transactional_backend)
    transactional_backend.commit()

    transactional_backend.begin()
    transactional_backend.delete(movie)
    movie.title = 'Star Wars IV'
    movie.save(transactional_backend)

    transactional_backend.rollback()

    assert transactional_backend.get(Movie, {'title': 'The Godfather', 'year': 1979}).title == 'The Godfather'

    assert transactional_backend.get(Movie, {'title': 'The Godfather', 'year': 1979}) == movie
    assert len(transactional_backend.filter(Movie, {'year': 1979})) == 1