mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-18 06:32:08 -04:00
13ac46eb3f
- copy_container() removed. ClauseVisitor.traverse() now features "clone" flag which allows traversal with copy-and-modify-in-place behavior - select() objects copyable now [ticket:52] [ticket:569] - improved support for custom column_property() attributes which feature correlated subqueries...work better with eager loading now. - accept_visitor() methods removed. ClauseVisitor now genererates method names based on class names, or an optional __visit_name__ attribute. calls regular visit_XXX methods as they exist, can optionally call an additional "pre-descent" enter_XXX method to allow stack-based operations on traversals - select() and union()'s now have "generative" behavior. methods like order_by() and group_by() return a *new* instance - the original instance is left unchanged. non-generative methods remain as well. - the internals of select/union vastly simplified - all decision making regarding "is subquery" and "correlation" pushed to SQL generation phase. select() elements are now *never* mutated by their enclosing containers or by any dialect's compilation process
39 lines
834 B
Python
39 lines
834 B
Python
import testbase
|
|
import unittest
|
|
|
|
|
|
def suite():
|
|
modules_to_test = (
|
|
'sql.testtypes',
|
|
'sql.constraints',
|
|
|
|
'sql.generative',
|
|
|
|
# SQL syntax
|
|
'sql.select',
|
|
'sql.selectable',
|
|
'sql.case_statement',
|
|
'sql.labels',
|
|
'sql.unicode',
|
|
|
|
# assorted round-trip tests
|
|
'sql.query',
|
|
'sql.quote',
|
|
'sql.rowcount',
|
|
|
|
# defaults, sequences (postgres/oracle)
|
|
'sql.defaults',
|
|
)
|
|
alltests = unittest.TestSuite()
|
|
for name in modules_to_test:
|
|
mod = __import__(name)
|
|
for token in name.split('.')[1:]:
|
|
mod = getattr(mod, token)
|
|
alltests.addTest(unittest.findTestCases(mod, suiteClass=None))
|
|
return alltests
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
testbase.main(suite())
|