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()
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()
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
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()
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
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
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
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
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()