コード例 #1
0
def test_all_paginate():
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    HashOnlyModelFactory(agency_subdomain='metzler2', external_id=124)

    obj, exclusive_start_key = HashOnlyModel.all(limit=1, paginate=True).next()
    obj2, _ = HashOnlyModel.all(
        limit=1, paginate=True,
        exclusive_start_key=exclusive_start_key).next()

    assert obj.external_id != obj2.external_id
    assert {obj.external_id, obj2.external_id} == {123, 124}
コード例 #2
0
def test_query_primary_index_model_hash_key_should_return():
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler')
    HashOnlyModelFactory(agency_subdomain='other')

    query = list(HashOnlyModel.query(agency_subdomain='metzler'))
    assert query[0].agency_subdomain == 'metzler'
コード例 #3
0
def test_query_primary_index_model_hash_key_should_return():
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler')
    HashOnlyModelFactory(agency_subdomain='other')

    query = list(HashOnlyModel.query(agency_subdomain='metzler'))
    assert query[0].agency_subdomain == 'metzler'
コード例 #4
0
def test_query_secondary_index_model_hash_key_should_return():
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    HashOnlyModelFactory(agency_subdomain='other', external_id=123)

    query = list(
        HashOnlyModel.query(external_id=123, query_index='HashOnlyExternalId'))
    assert set([o.agency_subdomain for o in query]) == {'metzler', 'other'}
コード例 #5
0
def test_query_secondary_index_model_hash_key_should_return():
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    HashOnlyModelFactory(agency_subdomain='other', external_id=123)

    query = list(HashOnlyModel.query(external_id=123,
                                     query_index='HashOnlyExternalId'))
    assert set([o.agency_subdomain for o in query]) == {'metzler', 'other'}
コード例 #6
0
def test_non_field_set_on_item_then_get():
    HashOnlyModelFactory.create_table()
    obj = HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    obj.non_field = 123
    obj.non_field_class_attr = "Changed string"  # This makes more sense when the attr is a property
    obj.save()

    reloaded = HashOnlyModel.get(agency_subdomain='metzler')
    assert not reloaded.item.get('non_field')
    assert not reloaded.item.get('non_field_class_attr')
コード例 #7
0
def test_negative_timestamp():
    long_ago = datetime.datetime.utcnow()
    long_ago = long_ago.replace(year=1899)
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler', external_id=123,
                         created=long_ago)

    obj = HashOnlyModel.all().next()
    assert obj.created.year == long_ago.year
    assert obj.item['created'] < 0
コード例 #8
0
def test_non_field_set_on_item_then_get():
    HashOnlyModelFactory.create_table()
    obj = HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    obj.non_field = 123
    obj.non_field_class_attr = "Changed string"  # This makes more sense when the attr is a property
    obj.save()

    reloaded = HashOnlyModel.get(agency_subdomain='metzler')
    assert not reloaded.item.get('non_field')
    assert not reloaded.item.get('non_field_class_attr')
コード例 #9
0
def test_update_item_then_get_consistent():
    HashOnlyModelFactory.create_table()
    obj = HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    assert obj.external_id == 123
    obj.external_id = 124
    obj.save()
    assert obj.external_id == 124

    reloaded = HashOnlyModel.get(agency_subdomain='metzler', consistent_read=True)
    assert reloaded.external_id == 124
コード例 #10
0
def test_negative_timestamp():
    long_ago = datetime.datetime.utcnow()
    long_ago = long_ago.replace(year=1899)
    HashOnlyModelFactory.create_table()
    HashOnlyModelFactory(agency_subdomain='metzler',
                         external_id=123,
                         created=long_ago)

    obj = HashOnlyModel.all().next()
    assert obj.created.year == long_ago.year
    assert obj.item['created'] < 0
コード例 #11
0
def test_update_item_then_get_consistent():
    HashOnlyModelFactory.create_table()
    obj = HashOnlyModelFactory(agency_subdomain='metzler', external_id=123)
    assert obj.external_id == 123
    obj.external_id = 124
    obj.save()
    assert obj.external_id == 124

    reloaded = HashOnlyModel.get(agency_subdomain='metzler',
                                 consistent_read=True)
    assert reloaded.external_id == 124