示例#1
0
class TestKeyCode(TestCase):

    def setUp(self):
        self.configuration = {
            "sqlalchemy.url": "sqlite://",
            "sqlalchemy.echo": False,
            "sqlalchemy.pool_recycle": 3600,
        }

        from rpi_database.models import SQLAlchemyMixin, KeyCode

        self.sqlmixin = SQLAlchemyMixin(**self.configuration)
        self.sqlmixin.init_db()

        # use defaults for the first user save for the code

        self.key_data = {
            'code': '67890',
            'enabled': False,
        }

        self.key = KeyCode(**self.key_data)

        with self.sqlmixin.session_context() as session:
            session.add(self.key)
            session.commit()

    def test_enabled(self):
        self.assertIsNotNone(self.key.code)
        self.assertEquals(self.key.enabled, self.key_data['enabled'])
        self.assertIsInstance(self.key.enabled, bool)

    def test_code(self):
        self.assertIsNotNone(self.key.code)
        self.assertEquals(self.key.code, self.key_data['code'])

    def test_code_unique(self):
        from rpi_database.models import KeyCode
        from sqlalchemy.exc import IntegrityError
        key = KeyCode(**self.key_data)
        with self.sqlmixin.session_context() as session:
            session.add(key)
            with ShouldRaise(IntegrityError):
                session.commit()

    def tearDown(self):
        if self.sqlmixin:
            self.sqlmixin.drop_db()
示例#2
0
class TestUser(TestCase):

    def setUp(self):
        self.configuration = {
            "sqlalchemy.url": "sqlite://",
            "sqlalchemy.echo": False,
            "sqlalchemy.pool_recycle": 3600,
        }

        from rpi_database.models import SQLAlchemyMixin, User, KeyCode

        self.sqlmixin = SQLAlchemyMixin(**self.configuration)
        self.sqlmixin.init_db()

        # use defaults for the first user save for the code

        self.user_data = {
            'first_name': "Derp",
            'last_name': "Derps",
            'email': "*****@*****.**",
        }

        self.key_data = {
            'code': '67890',
            'enabled': False,
        }

        self.key = KeyCode(**self.key_data)
        self.user = User(**self.user_data)
        self.user.key_code = self.key

        with self.sqlmixin.session_context() as session:
            session.add(self.user)
            session.commit()

    def test_first_name(self):
        self.assertIsNotNone(self.user.first_name)
        self.assertEquals(self.user.first_name, self.user_data['first_name'])

    def test_last_name(self):
        self.assertIsNotNone(self.user.last_name)
        self.assertEquals(self.user.last_name, self.user_data['last_name'])

    def test_email(self):
        self.assertIsNotNone(self.user.email)
        self.assertEquals(self.user.email, self.user_data['email'])

    def test_unique_email(self):
        from rpi_database.models import User
        from sqlalchemy.exc import IntegrityError
        user = User(**self.user_data)
        with self.sqlmixin.session_context() as session:
            session.add(user)
            with ShouldRaise(IntegrityError):
                session.commit()

    def test_key_code(self):
        self.assertIsNotNone(self.user.key_code)
        self.assertEquals(self.user.key_code_id, 1)

    def tearDown(self):
        if self.sqlmixin:
            self.sqlmixin.drop_db()