def test_total_consumed_capacity(self): """ ConsumedCapacity can parse results with only Total """ response = { 'TableName': 'foobar', 'CapacityUnits': 4, } cap = ConsumedCapacity.from_response(response, True) self.assertEqual(cap.total.read, 4) self.assertIsNone(cap.table_capacity)
def test_total_consumed_capacity(self): """ConsumedCapacity can parse results with only Total""" response = { "TableName": "foobar", "ReadCapacityUnits": 4, "WriteCapacityUnits": 5, } cap = ConsumedCapacity.from_response(response) self.assertEqual(cap.total, (4, 5)) self.assertIsNone(cap.table_capacity)
def test_capacity(self): """Can return consumed capacity""" conn = MagicMock() response_cap = { "TableName": "foobar", "ReadCapacityUnits": 6, "WriteCapacityUnits": 7, "Table": { "ReadCapacityUnits": 1, "WriteCapacityUnits": 2, }, "LocalSecondaryIndexes": { "l-index": { "ReadCapacityUnits": 2, "WriteCapacityUnits": 3, }, }, "GlobalSecondaryIndexes": { "g-index": { "ReadCapacityUnits": 3, "WriteCapacityUnits": 4, }, }, } response = { "Responses": [], "ConsumedCapacity": [response_cap], } capacity = ConsumedCapacity.from_response(response_cap) response["consumed_capacity"] = [capacity] with patch.object(self.dynamo, "client") as client: client.transact_get_items.return_value = response ret = self.dynamo.txn_get("foobar", [{"id": "a"}]) list(ret) assert ret.consumed_capacity is not None cap = ret.consumed_capacity["foobar"] assert cap is not None assert cap.table_capacity is not None assert cap.local_index_capacity is not None assert cap.global_index_capacity is not None self.assertEqual(cap.total, Throughput(6, 7)) self.assertEqual(cap.table_capacity, Throughput(1, 2)) self.assertEqual(cap.local_index_capacity["l-index"], Throughput(2, 3)) self.assertEqual(cap.global_index_capacity["g-index"], Throughput(3, 4))
def test_capacity(self): """Can return consumed capacity""" conn = MagicMock() response_cap = { "TableName": "foobar", "CapacityUnits": 6, "Table": { "CapacityUnits": 1, }, "LocalSecondaryIndexes": { "l-index": { "CapacityUnits": 2, }, }, "GlobalSecondaryIndexes": { "g-index": { "CapacityUnits": 3, }, }, } response = { "Responses": { "foo": [], }, "ConsumedCapacity": [response_cap], } capacity = ConsumedCapacity.from_response(response_cap, True) response["consumed_capacity"] = [capacity] conn.call.return_value = response rs = GetResultSet(conn, {"foobar": [{"id": "a"}]}) list(rs) assert rs.consumed_capacity is not None cap = rs.consumed_capacity["foobar"] assert cap is not None assert cap.table_capacity is not None assert cap.local_index_capacity is not None assert cap.global_index_capacity is not None self.assertEqual(cap.total, (6, 0)) self.assertEqual(cap.table_capacity, (1, 0)) self.assertEqual(cap.local_index_capacity["l-index"], (2, 0)) self.assertEqual(cap.global_index_capacity["g-index"], (3, 0))
def test_capacity(self): """ Can return consumed capacity """ conn = MagicMock() response = { 'Responses': { 'foo': [], }, 'ConsumedCapacity': [{ 'TableName': 'foobar', 'CapacityUnits': 3, 'Table': { 'CapacityUnits': 1, }, 'LocalSecondaryIndexes': { 'l-index': { 'CapacityUnits': 1, }, }, 'GlobalSecondaryIndexes': { 'g-index': { 'CapacityUnits': 1, }, }, }], } capacity = ConsumedCapacity.from_response( response['ConsumedCapacity'][0], True) response['consumed_capacity'] = [capacity] conn.call.return_value = response rs = GetResultSet(conn, 'foo', [{'id': 'a'}]) list(rs) self.assertEqual(rs.capacity, 3) self.assertEqual(rs.table_capacity, 1) self.assertEqual(rs.indexes, {'l-index': 1}) self.assertEqual(rs.global_indexes, {'g-index': 1}) self.assertEqual(rs.consumed_capacity, capacity)