Source code for sqlobject.tests.test_groupBy

fromsqlobjectimport IntCol, SQLObject, StringCol
fromsqlobject.sqlbuilderimport Select, func
fromsqlobject.tests.dbtestimport getConnection, setupClass
########################################
# groupBy
########################################
[docs] classGroupbyTest(SQLObject): name = StringCol() so_value = IntCol()
[docs] deftest_groupBy(): setupClass(GroupbyTest) GroupbyTest(name='a', so_value=1) GroupbyTest(name='a', so_value=2) GroupbyTest(name='b', so_value=1) connection = getConnection() select = Select( [GroupbyTest.q.name, func.COUNT(GroupbyTest.q.so_value)], groupBy=GroupbyTest.q.name, orderBy=GroupbyTest.q.name) sql = connection.sqlrepr(select) rows = list(connection.queryAll(sql)) assert [tuple(t) for t in rows] == [('a', 2), ('b', 1)]
[docs] deftest_groupBy_list(): setupClass(GroupbyTest) GroupbyTest(name='a', so_value=1) GroupbyTest(name='a', so_value=2) GroupbyTest(name='b', so_value=1) connection = getConnection() select = Select( [GroupbyTest.q.name, GroupbyTest.q.so_value], groupBy=[GroupbyTest.q.name, GroupbyTest.q.so_value], orderBy=[GroupbyTest.q.name, GroupbyTest.q.so_value]) sql = connection.sqlrepr(select) rows = list(connection.queryAll(sql)) assert [tuple(t) for t in rows] == [('a', 1), ('a', 2), ('b', 1)]