from dynamodb import DynamoDB from dynamodb_setup import * dynamodb_resource = DynamoDB.create_connection() # DynamoDB.create_table(dynamodb_resource, table_name, key_schema, attribute_definitions, provisioned_throughput) table = DynamoDB.get_table(dynamodb_resource, table_name) #print(table.creation_date_time) #DynamoDB.create_new_item(table, new_item) #item = DynamoDB.get_item(table, search_key2) #DynamoDB.update_item(table, search_key, update_expression, expression_attribute_values) #DynamoDB.delete_item(table, search_key) #DynamoDB.batch_items(table, item_list) #items = DynamoDB.get_items_query_with_key(table, 'username', 'johndoe') #items = DynamoDB.get_items_scan_with_attr(table, 'age', 27) #items2 = DynamoDB.get_items_scan_with_attr(table, 'equals', 'address.state', 'CA') #items3 = DynamoDB.get_items_scan_with_attr(table, 'begins_with', 'first_name', 'J') #print(items3) DynamoDB.delete_table(table)
class TestDynamoDBTestCase(unittest.TestCase): """ Create a tables before you run the tests, and it takes a minute """ def setUp(self): self.settings = DB_SETTINGS['dynamodb'] self.db = DynamoDB(self.settings) try: self.db.create_table('test', 5, 5) self.db.create_table('test_%Y%m%d', 5, 5) self.db.create_table('test_%Y%m%d', 5, 5, transform_time=datetime.datetime.utcnow() - datetime.timedelta(1)) except DynamoDBError as e: print e def tearDown(self): s = SomeRecord() try: self.db.delete_data('test', 'k') except: pass try: self.db.delete_data('test', 'c') except: pass try: self.db.delete_data('test', s.key) except: pass return self def test_create_table(self): table = self.db.get_table('test') self.assertTrue(table.table_name == 'test') def test_create_delete_data(self): # pickled result = self.db.set_data('test', 'k', 'v') self.assertEqual(result, True, 'fail to set data') data = self.db.get_data('test', 'k') self.assertEqual(data, 'v', 'fail to get data') # pickled object c = SomeRecord() self.db.set_data('test', c.key, c) new_c = self.db.get_data('test', c.key) self.assertTrue(new_c.key == c.key) self.assertTrue(new_c.answer == c.answer) self.assertTrue(new_c.number == c.number) # unpickled self.db.set_data('test', 'k2', set(['a', 'b']), pickled=False) data = self.db.get_data('test', 'k2', pickled=False) self.assertEqual(data, set(['a', 'b']), 'fail getting correct unpickled data') self.assertTrue(self.db.delete_data('test', 'k')) self.assertTrue(self.db.delete_data('test', 'k2')) self.assertTrue(self.db.delete_data('test', c.key)) self.assertFalse(self.db.get_data('test', 'k')) def test_timesliced_table(self): yesterday = datetime.datetime.utcnow() - datetime.timedelta(1) self.db.set_data("test_%Y%m%d", "ky", "dy", transform_time=yesterday) self.assertEqual(self.db.get_data("test_%Y%m%d", "ky"), "dy") self.db.delete_data('test_%Y%m%d', 'ky') self.assertEqual(self.db.get_data("test_%Y%m%d", "ky"), None)