moto/tests/test_dynamodb/test_dynamodb.py
2021-11-04 21:39:53 -01:00

60 lines
2.0 KiB
Python

import boto
import boto.dynamodb
import sure # noqa # pylint: disable=unused-import
import pytest
from moto import mock_dynamodb, mock_dynamodb_deprecated
from moto.dynamodb import dynamodb_backend
from boto.exception import DynamoDBResponseError
def test_deprecation_warning():
with pytest.warns(None) as record:
mock_dynamodb()
str(record[0].message).should.contain(
"Module mock_dynamodb has been deprecated, and will be repurposed in a later release"
)
# Has boto3 equivalent
@mock_dynamodb_deprecated
def test_list_tables():
name = "TestTable"
dynamodb_backend.create_table(name, hash_key_attr="name", hash_key_type="S")
conn = boto.connect_dynamodb("the_key", "the_secret")
assert conn.list_tables() == ["TestTable"]
@mock_dynamodb_deprecated
def test_list_tables_layer_1():
dynamodb_backend.create_table("test_1", hash_key_attr="name", hash_key_type="S")
dynamodb_backend.create_table("test_2", hash_key_attr="name", hash_key_type="S")
conn = boto.connect_dynamodb("the_key", "the_secret")
res = conn.layer1.list_tables(limit=1)
expected = {"TableNames": ["test_1"], "LastEvaluatedTableName": "test_1"}
res.should.equal(expected)
res = conn.layer1.list_tables(limit=1, start_table="test_1")
expected = {"TableNames": ["test_2"]}
res.should.equal(expected)
# Has boto3 equivalent
@mock_dynamodb_deprecated
def test_describe_missing_table():
conn = boto.connect_dynamodb("the_key", "the_secret")
with pytest.raises(DynamoDBResponseError):
conn.describe_table("messages")
# Has boto3 equivalent
# This test is pointless though, as we treat DynamoDB as a global resource
@mock_dynamodb_deprecated
def test_dynamodb_with_connect_to_region():
# this will work if connected with boto.connect_dynamodb()
dynamodb = boto.dynamodb.connect_to_region("us-west-2")
schema = dynamodb.create_schema("column1", str(), "column2", int())
dynamodb.create_table("table1", schema, 200, 200)