Ejemplo n.º 1
0
    def test_meta(self):
        user = sample.User(id=1)
        meta = sample.User.__meta__
        self.assertEqual(sorted(meta.keys()), [
            'alias', 'attributes', 'collation', 'columns', 'database',
            'foreign_keys', 'pkv', 'primary_key', 'tablename'
        ])
        self.assertEqual(meta['database'], 'sample')
        self.assertEqual(meta['tablename'], 'user')
        self.assertEqual(meta['collation'], 'en_US.UTF8')
        self.assertEqual(sorted(meta['columns']), [
            'created_at', 'email', 'firstname', 'id', 'lang', 'lastname',
            'login', 'password'
        ])
        self.assertEqual(meta['primary_key'], {'id': sample.User.id})
        self.assertEqual(meta['pkv'](user), {'id': 1})
        self.assertEqual(meta['foreign_keys'], {})

        meta = sample.UserGroup.__meta__
        self.assertEqual(
            meta['foreign_keys'], {
                'group_id': sample.UserGroup.group_id,
                'user_id': sample.UserGroup.user_id
            })
        self.assertEqual(
            meta['primary_key'], {
                'group_id': sample.UserGroup.group_id,
                'user_id': sample.UserGroup.user_id
            })
Ejemplo n.º 2
0
    def test_render_sql(self):

        from aiorm.orm.query import statements as stmt
        user = sample.User(login='******', firstname='bob')
        query, parameters = stmt.Insert(user).render_sql()
        dummy_dialect = dialect.DummyDialect()
        dummy_dialect.render_insert.assert_called_once_with(user)
Ejemplo n.º 3
0
    def test_render_delete(self):
        user = sample.User(id=89, login='******', email='*****@*****.**')
        self._dialect.render_delete(user)
        self.assertEqual(self._dialect.query, """\
DELETE FROM "user"
WHERE "id" = %s
""")
        self.assertEqual(self._dialect.parameters,
                         [89])
Ejemplo n.º 4
0
    def test_render_update(self):
        user = sample.User(id=89, login='******', email='*****@*****.**',
                           created_at='XXX now XXX')
        user.firstname = 'first'
        user.lastname = 'last'
        self._dialect.render_update(user)
        self.assertEqual(self._dialect.query, """\
UPDATE "user"
SET "created_at" = %s, "email" = %s, "firstname" = %s, "lang" = %s, \
"lastname" = %s, "login" = %s, "password" = %s
WHERE "id" = %s
RETURNING "created_at", "email", "firstname", "id", "lang", "lastname", \
"login", "password"
""")
        self.assertEqual(self._dialect.parameters,
                         ['XXX now XXX', '*****@*****.**', 'first', None, 'last',
                          'john', None, 89])
Ejemplo n.º 5
0
 def test_render_sql(self):
     from aiorm.orm.query import statements as stmt
     user = sample.User(id=24, login='******', firstname='john')
     query, parameters = stmt.Delete(user).render_sql()
     dummy_dialect = dialect.DummyDialect()
     dummy_dialect.render_delete.assert_called_once_with(user)