Author: phd
Date: 2008-07-17 07:10:35 -0600 (Thu, 17 Jul 2008)
New Revision: 3509
Added:
SQLObject/branches/0.9/sqlobject/tests/test_default_style.py
Modified:
SQLObject/branches/0.9/docs/News.txt
Log:
Added test_default_style.py from the SF patch 2007233.
Modified: SQLObject/branches/0.9/docs/News.txt
===================================================================
--- SQLObject/branches/0.9/docs/News.txt 2008-07-15 13:22:04 UTC (rev 3508)
+++ SQLObject/branches/0.9/docs/News.txt 2008-07-17 13:10:35 UTC (rev 3509)
@@ -13,6 +13,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
===============
Added: SQLObject/branches/0.9/sqlobject/tests/test_default_style.py
===================================================================
--- SQLObject/branches/0.9/sqlobject/tests/test_default_style.py (rev 0)
+++ SQLObject/branches/0.9/sqlobject/tests/test_default_style.py 2008-07-17 13:10:35 UTC (rev 3509)
@@ -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]
|