Thread: [SQL-CVS] r3510 - in SQLObject/branches/0.10: docs sqlobject/tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2008-07-17 13:27:55
|
Author: phd Date: 2008-07-17 07:13:08 -0600 (Thu, 17 Jul 2008) New Revision: 3510 Added: SQLObject/branches/0.10/sqlobject/tests/test_default_style.py Modified: SQLObject/branches/0.10/docs/News.txt Log: Merged r3509 from the 0.9 branch: added test_default_style.py from the SF patch 2007233. Modified: SQLObject/branches/0.10/docs/News.txt =================================================================== --- SQLObject/branches/0.10/docs/News.txt 2008-07-17 13:10:35 UTC (rev 3509) +++ SQLObject/branches/0.10/docs/News.txt 2008-07-17 13:13:08 UTC (rev 3510) @@ -104,6 +104,8 @@ * Convert decimal.to_eng_string() to str to work around a bug in Python 2.5.2; see http://mail.python.org/pipermail/python-dev/2008-March/078189.html +* Added test_default_style.py. + SQLObject 0.9.7 =============== Copied: SQLObject/branches/0.10/sqlobject/tests/test_default_style.py (from rev 3509, SQLObject/branches/0.9/sqlobject/tests/test_default_style.py) =================================================================== --- SQLObject/branches/0.10/sqlobject/tests/test_default_style.py (rev 0) +++ SQLObject/branches/0.10/sqlobject/tests/test_default_style.py 2008-07-17 13:13:08 UTC (rev 3510) @@ -0,0 +1,58 @@ +""" +Test the default styles, to guarantee consistency. +""" + +from sqlobject import * +from sqlobject.tests.dbtest import * +from sqlobject.styles import Style, MixedCaseUnderscoreStyle, MixedCaseStyle + +#hash of styles versus the database names resulting from 'columns' below +columns = ["ABCUpper", "abc_lower", "ABCamelCaseColumn"] +styles = {Style:columns, + MixedCaseUnderscoreStyle:["abc_upper", "abc_lower", "ab_camel_case_column"], + MixedCaseStyle:["ABCUpper", "Abc_lower", "ABCamelCaseColumn"], + } + +#hash of styles versus the database names resulting from a foreign key named 'FKey' +fkey = ForeignKey("DefaultStyleTest", name="FKey") +fkeys = {Style:"FKeyID", + MixedCaseUnderscoreStyle:"f_key_id", + MixedCaseStyle:"FKeyID", + } + + +def make_columns(): + global columns + columns = [] + for col_name in columns: + columns.append(StringCol(name=col_name, length=10)) + + +def do_col_test(DefaultStyleTest, style, dbnames): + DefaultStyleTest.sqlmeta.style = style() + for col, old_dbname in zip(columns, dbnames): + DefaultStyleTest.sqlmeta.addColumn(col) + try: + new_dbname = DefaultStyleTest.sqlmeta.columns[col.name].dbName + assert new_dbname == old_dbname + finally: + if col.name in DefaultStyleTest.sqlmeta.columns: + DefaultStyleTest.sqlmeta.delColumn(col) + +def do_fkey_test(DefaultStyleTest, style, dbname): + DefaultStyleTest.sqlmeta.style = style() + DefaultStyleTest.sqlmeta.addColumn(fkey) + try: + assert DefaultStyleTest.sqlmeta.columns.keys()[0] == "FKeyID" + assert DefaultStyleTest.sqlmeta.columns.values()[0].dbName == dbname + finally: + DefaultStyleTest.sqlmeta.delColumn(fkey) + +class DefaultStyleTest(SQLObject): + pass + +def test_default_styles(): + make_columns() + for style in styles: + yield do_col_test, DefaultStyleTest, style, styles[style] + yield do_fkey_test, DefaultStyleTest, style, fkeys[style] |