class DynamoTest(TestCase): """Test our Dynamo extension.""" def setUp(self): """ Set up a simple Flask app for testing. This will be used throughout our tests. """ self.prefix = uuid4().hex self.app = Flask(__name__) self.app.config['DEBUG'] = True self.app.config['DYNAMO_TABLES'] = [ Table('%s-phones' % self.prefix, schema=[HashKey('number')]), Table('%s-users' % self.prefix, schema=[HashKey('username')]), ] self.dynamo = Dynamo(self.app) with self.app.app_context(): self.dynamo.create_all() sleep(60) def test_settings(self): self.assertEqual(len(self.app.config['DYNAMO_TABLES']), 2) self.assertEqual(self.app.config['AWS_ACCESS_KEY_ID'], environ.get('AWS_ACCESS_KEY_ID')) self.assertEqual(self.app.config['AWS_SECRET_ACCESS_KEY'], environ.get('AWS_SECRET_ACCESS_KEY')) self.assertEqual( self.app.config['AWS_REGION'], environ.get('AWS_REGION') or self.dynamo.DEFAULT_REGION) def test_connection(self): with self.app.app_context(): self.assertIsInstance(self.dynamo.connection, DynamoDBConnection) def test_tables(self): with self.app.app_context(): self.assertEqual(len(self.dynamo.tables.keys()), 2) for table_name, table in self.dynamo.tables.iteritems(): self.assertIsInstance(table, Table) self.assertEqual(table.table_name, table_name) def test_table_access(self): with self.app.app_context(): for table_name, table in self.dynamo.tables.iteritems(): self.assertEqual(getattr(self.dynamo, table_name), table) def tearDown(self): """Destroy all provisioned resources.""" with self.app.app_context(): self.dynamo.destroy_all() sleep(60)
class DynamoTest(TestCase): """Test our Dynamo extension.""" def setUp(self): """ Set up a simple Flask app for testing. This will be used throughout our tests. """ self.prefix = uuid4().hex self.app = Flask(__name__) self.app.config['DEBUG'] = True self.app.config['DYNAMO_TABLES'] = [ Table('%s-phones' % self.prefix, schema=[HashKey('number')]), Table('%s-users' % self.prefix, schema=[HashKey('username')]), ] self.dynamo = Dynamo(self.app) with self.app.app_context(): self.dynamo.create_all() sleep(60) def test_settings(self): self.assertEqual(len(self.app.config['DYNAMO_TABLES']), 2) self.assertEqual(self.app.config['AWS_ACCESS_KEY_ID'], environ.get('AWS_ACCESS_KEY_ID')) self.assertEqual(self.app.config['AWS_SECRET_ACCESS_KEY'], environ.get('AWS_SECRET_ACCESS_KEY')) self.assertEqual(self.app.config['AWS_REGION'], environ.get('AWS_REGION') or self.dynamo.DEFAULT_REGION) def test_connection(self): with self.app.app_context(): self.assertIsInstance(self.dynamo.connection, DynamoDBConnection) def test_tables(self): with self.app.app_context(): self.assertEqual(len(self.dynamo.tables.keys()), 2) for table_name, table in self.dynamo.tables.iteritems(): self.assertIsInstance(table, Table) self.assertEqual(table.table_name, table_name) def test_table_access(self): with self.app.app_context(): for table_name, table in self.dynamo.tables.iteritems(): self.assertEqual(getattr(self.dynamo, table_name), table) def tearDown(self): """Destroy all provisioned resources.""" with self.app.app_context(): self.dynamo.destroy_all() sleep(60)
""" Use this script to setup DynamoDB tables. Author: Angad Gill """ from flask import Flask from flask.ext.dynamo import Dynamo import dynamodb_config # TODO: Figure out how to do this without Flask app = Flask(__name__) app.config['DYNAMO_TABLES'] = dynamodb_config.DYNAMO_TABLES dynamo = Dynamo(app) with app.app_context(): dynamo.create_all() print "Done!"