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 })
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)
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])
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])
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)