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