Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
"""
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!"