Ejemplo n.º 1
0
def test_subscriber_is_notified_on_update():
    data_source = MongoDataSource(User)

    user = User(name='Anders', age=12)
    user.save()

    notified = {
        'notified_data_source': None,
        'notified_entity_id': None
    }

    def notify(data_source, entity):
        notified['notified_data_source'] = data_source
        notified['notified_entity_id'] = entity.id

    data_source.subscribe(notify)

    user.name = 'Emil'
    user.save()

    assert notified == {
        'notified_data_source': data_source,
        'notified_entity_id': user.id
    }

    data_source.disconnect()
Ejemplo n.º 2
0
def test_serialization():
    data_source = MongoDataSource(User)

    user = User(name='Anders', age=12)
    user.save()

    assert data_source.serialize(user) == str(user.id)

    data_source.disconnect()
Ejemplo n.º 3
0
def test_finding_record():
    data_source = MongoDataSource(User)

    user = User(name='Anders', age=12)
    user.save()

    assert data_source.find(str(user.id)) == user

    data_source.disconnect()
Ejemplo n.º 4
0
def test_finding_record():
    data_source = MongoDataSource(User)

    user = User(name='Anders', age=12)
    user.save()

    assert data_source.find(str(user.id)) == user

    data_source.disconnect()
Ejemplo n.º 5
0
def test_serialization():
    data_source = MongoDataSource(User)

    user = User(name='Anders', age=12)
    user.save()

    assert data_source.serialize(user) == str(user.id)

    data_source.disconnect()
Ejemplo n.º 6
0
def test_collection_whide_invalidation():
    user = User(name='Anders', age=12)
    user.save()

    assert score() == 50

    assert smache.is_fun_fresh(score) == True

    user.name = 'Emil'
    user.save()

    assert smache.is_fun_fresh(score) == False
Ejemplo n.º 7
0
def test_depending_computed_are_invalidated_on_save():
    user = User(name='Anders', age=12)
    user.save()

    assert name(user) == 'Anders'
    assert smache.is_fun_fresh(name, user) == True

    user.name = 'Emil'

    user.save()

    assert smache.is_fun_fresh(name, user) == False
Ejemplo n.º 8
0
def test_subscriber_is_notified_on_delete():
    data_source = MongoDataSource(User)

    user = User(name='Anders', age=12)
    user.save()

    notified = {'notified_data_source': None, 'notified_entity_id': None}

    def notify(data_source, entity):
        notified['notified_data_source'] = data_source
        notified['notified_entity_id'] = entity.id

    data_source.subscribe(notify)

    user.delete()

    assert notified == {
        'notified_data_source': data_source,
        'notified_entity_id': user.id
    }

    data_source.disconnect()