def test_local_index_eq(self): """ Local indexes should be equal """ range_key = DynamoKey('foo') a, b = LocalIndex.all('a', range_key), LocalIndex.all('a', range_key) self.assertEqual(a, b) self.assertEqual(hash(a), hash(b)) self.assertFalse(a != b)
def test_local_index_eq(self): """Local indexes should be equal""" range_key = DynamoKey("foo") a, b = LocalIndex.all("a", range_key), LocalIndex.all("a", range_key) self.assertEqual(a, b) self.assertEqual(hash(a), hash(b)) self.assertFalse(a != b)
def test_local_index(self): """Can query on a local index""" hash_key = DynamoKey("id", data_type=STRING) range_key = DynamoKey("num", data_type=NUMBER) index_field = DynamoKey("name") index = LocalIndex.keys("name-index", index_field) self.dynamo.create_table("foobar", hash_key, range_key, indexes=[index]) item = { "id": "a", "num": 1, "name": "baz", } self.dynamo.put_item("foobar", item) ret = self.dynamo.query( "foobar", "id = :id and #name = :name", alias={"#name": "name"}, index="name-index", id="a", name="baz", ) self.assertCountEqual(list(ret), [item])
def test_create_local_includes_index(self): """Create a table with a local Includes index""" hash_key = DynamoKey("id", data_type=STRING) range_key = DynamoKey("num", data_type=NUMBER) index_field = DynamoKey("name") index = LocalIndex.include("name-index", index_field, includes=["foo", "bar"]) table = Table("foobar", hash_key, range_key, [index]) self.dynamo.create_table("foobar", hash_key, range_key, indexes=[index]) desc = self.dynamo.describe_table("foobar") self.assertEqual(desc, table)
def test_create_local_keys_index(self): """ Create a table with a local KeysOnly index """ hash_key = DynamoKey('id', data_type=STRING) range_key = DynamoKey('num', data_type=NUMBER) index_field = DynamoKey('name') index = LocalIndex.keys('name-index', index_field) table = Table('foobar', hash_key, range_key, [index]) self.dynamo.create_table( 'foobar', hash_key, range_key, indexes=[index]) desc = self.dynamo.describe_table('foobar') self.assertEqual(desc, table)
def test_create_local_keys_index(self): """ Create a table with a local KeysOnly index """ hash_key = DynamoKey('id', data_type=STRING) range_key = DynamoKey('num', data_type=NUMBER) index_field = DynamoKey('name') index = LocalIndex.keys('name-index', index_field) table = Table('foobar', hash_key, range_key, [index]) self.dynamo.create_table('foobar', hash_key, range_key, indexes=[index]) desc = self.dynamo.describe_table('foobar') self.assertEqual(desc, table)
def test_local_index(self): """ Can query on a local index """ hash_key = DynamoKey('id', data_type=STRING) range_key = DynamoKey('num', data_type=NUMBER) index_field = DynamoKey('name') index = LocalIndex.keys('name-index', index_field) self.dynamo.create_table('foobar', hash_key, range_key, indexes=[index]) item = { 'id': 'a', 'num': 1, 'name': 'baz', } self.dynamo.put_item('foobar', item) ret = self.dynamo.query('foobar', id__eq='a', name__eq='baz', index='name-index') self.assertItemsEqual(list(ret), [item])
def test_global_local_ne(self): """ Global indexes should not equal local indexes """ field = DynamoKey('foo') a, b = LocalIndex.all('a', field), GlobalIndex.all('a', field, field) self.assertNotEqual(a, b)
def test_global_local_ne(self): """Global indexes should not equal local indexes""" field = DynamoKey("foo") a, b = LocalIndex.all("a", field), GlobalIndex.all("a", field, field) self.assertNotEqual(a, b)