[SQL-CVS] r4321 - in SQLObject/trunk/sqlobject: . tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2010-12-27 16:36:06
|
Author: phd Date: Mon Dec 27 09:35:59 2010 New Revision: 4321 Log: Merged revisions 4318, 4319 from branch 0.14: more tests for SQLBuilder; fixed spaces after commas. Modified: SQLObject/trunk/sqlobject/sqlbuilder.py SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py Modified: SQLObject/trunk/sqlobject/sqlbuilder.py ============================================================================== --- SQLObject/trunk/sqlobject/sqlbuilder.py Mon Dec 27 09:35:37 2010 (r4320) +++ SQLObject/trunk/sqlobject/sqlbuilder.py Mon Dec 27 09:35:59 2010 (r4321) @@ -412,7 +412,7 @@ class SQLObjectTableWithJoins(SQLObjectTable): def __getattr__(self, attr): - if attr+'ID' in [k for (k,v) in self.soClass.sqlmeta.columns.items() if v.foreignKey]: + if attr+'ID' in [k for (k, v) in self.soClass.sqlmeta.columns.items() if v.foreignKey]: column = self.soClass.sqlmeta.columns[attr+'ID'] return self._getattrFromForeignKey(column, attr) elif attr in [x.joinMethodName for x in self.soClass.sqlmeta.joins]: @@ -477,7 +477,7 @@ def __init__(self, table, alias=None): if hasattr(table, "sqlmeta"): tableName = SQLConstant(table.sqlmeta.table) - elif isinstance(table, (Select,Union)): + elif isinstance(table, (Select, Union)): assert alias is not None, "Alias name cannot be constructed from Select instances, please provide 'alias' kw." tableName = Subquery('', table) table = None @@ -527,7 +527,7 @@ if isinstance(t, Table): t = t.tableName if not isinstance(t, SQLExpression): - t = SQLConstant(t.sqlmeta.table) + t = SQLConstant(t) tabs.append(t) self.tables = tabs @@ -1246,7 +1246,7 @@ self.sqlmeta = _Delay_proxy(table=_DelayClass(self, clsName)) self.q = self self.soClass = None - classregistry.registry(registry).addClassCallback(clsName,lambda foreign, me: setattr(me, 'soClass', foreign), self) + classregistry.registry(registry).addClassCallback(clsName, lambda foreign, me: setattr(me, 'soClass', foreign), self) def __nonzero__(self): return True Modified: SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py ============================================================================== --- SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py Mon Dec 27 09:35:37 2010 (r4320) +++ SQLObject/trunk/sqlobject/tests/test_sqlbuilder.py Mon Dec 27 09:35:59 2010 (r4321) @@ -1,4 +1,25 @@ -from sqlobject.sqlbuilder import AND, SQLOp, sqlrepr +from sqlobject import * +from sqlobject.sqlbuilder import * +from sqlobject.tests.dbtest import * + +class TestSQLBuilder(SQLObject): + name = StringCol() + value = IntCol() + +def test_Select(): + setupClass(TestSQLBuilder) + + select1 = Select([const.id, func.MAX(const.salary)], staticTables=['employees']) + assert sqlrepr(select1) == 'SELECT id, MAX(salary) FROM employees' + + select2 = Select([TestSQLBuilder.q.name, TestSQLBuilder.q.value]) + assert sqlrepr(select2) == 'SELECT test_sql_builder.name, test_sql_builder.value FROM test_sql_builder' + + union = Union(select1, select2) + assert sqlrepr(union) == 'SELECT id, MAX(salary) FROM employees UNION SELECT test_sql_builder.name, test_sql_builder.value FROM test_sql_builder' + + union = Union(TestSQLBuilder.select().queryForSelect()) + assert sqlrepr(union) == 'SELECT test_sql_builder.id, test_sql_builder.name, test_sql_builder.value FROM test_sql_builder WHERE 1 = 1' def test_empty_AND(): assert AND() == None |