"""
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]
|