示例#1
0
def test_create_empty_table(table_name):
    """Test the creation of an empty table.
    """
    tb = Schema(TableDynamo(table_name, dynamodb.connection))

    with pytest.raises(Exception):
        tb.table.create_table()
示例#2
0
def test_create_table_without_fields(table_name):
    tb = Schema(
        TableDynamo(table_name, dynamodb.connection),
        IndexDynamo(Index.PRIMARY, 'id', read_capacity=1, write_capacity=1))

    with pytest.raises(Exception):
        tb.table.create_table()
示例#3
0
def test_create_dynamo_schema(table_name):
    table = TableDynamo(table_name, dynamodb.connection)
    primary_index = IndexDynamo(Index.PRIMARY, 'id')
    global_index = IndexDynamo(Index.GLOBAL, 'foo', 'bar')
    tb = Schema(table, primary_index, global_index)

    assert tb.table == table
    assert tb.indexes[0] == primary_index
    assert tb.indexes[1] == global_index
示例#4
0
def test_dynamo_table_creation_collision(table_name):
    tb = Schema(TableDynamo(table_name, dynamodb.connection),
                IndexDynamo(Index.PRIMARY,
                            'id',
                            read_capacity=8,
                            write_capacity=2),
                id=Field())
    tb.table.create_table()

    with pytest.raises(Exception):
        tb.table.create_table()
示例#5
0
def stats_schema():
    schema = Schema(TableDynamo(table_name(), dynamodb.connection),
                    IndexDynamo(Index.PRIMARY,
                                'user_id',
                                'day_id',
                                read_capacity=8,
                                write_capacity=2),
                    user_id=Field(basetype=int),
                    day_id=Field(basetype=int),
                    metrics=Field(basetype=int))
    schema.table.create_table()
    return schema
示例#6
0
def test_dynamo_table_creation(table_name):
    schema = Schema(TableDynamo(table_name, dynamodb.connection),
                    IndexDynamo(Index.PRIMARY,
                                'id',
                                read_capacity=8,
                                write_capacity=4),
                    id=Field())

    table = schema.table
    table.create_table()
    table.table.meta.client.get_waiter('table_exists').wait(
        TableName=table_name)
    assert dynamodb.connection.Table(table_name).item_count is 0
示例#7
0
def user_schema():
    schema = Schema(TableDynamo(table_name(), dynamodb.connection),
                    IndexDynamo(Index.PRIMARY,
                                'id',
                                read_capacity=8,
                                write_capacity=2),
                    IndexDynamo(Index.GLOBAL,
                                'username',
                                read_capacity=8,
                                write_capacity=2,
                                name='username-index'),
                    id=Field(),
                    username=Field(),
                    password=Field(),
                    map_field=Field(basetype=dict),
                    random_field=Field(basetype=int))
    schema.table.create_table()
    return schema
示例#8
0
def thread_schema():
    schema = Schema(TableDynamo(table_name(), dynamodb.connection),
                    IndexDynamo(Index.PRIMARY,
                                'forum_name',
                                'thread_title',
                                read_capacity=8,
                                write_capacity=2),
                    IndexDynamo(Index.LOCAL,
                                'forum_name',
                                'thread_author',
                                name='local-index'),
                    IndexDynamo(Index.GLOBAL,
                                'thread_title',
                                'thread_author',
                                name='global-index',
                                read_capacity=8,
                                write_capacity=2),
                    forum_name=Field(),
                    thread_title=Field(),
                    thread_author=Field(),
                    thread_content=Field())
    schema.table.create_table()
    return schema
示例#9
0
def test_create_table_without_index(table_name):
    tb = Schema(TableDynamo(table_name, dynamodb.connection), id=Field())
    with pytest.raises(Exception):
        tb.table.create_table()