Source code for sqlobject.tests.test_default_style

"""
Test the default styles, to guarantee consistency.
"""
fromsqlobjectimport ForeignKey, MixedCaseStyle, MixedCaseUnderscoreStyle, \
 SQLObject, StringCol, Style
# 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",
}
[docs] defmake_columns(): global columns columns = [] for col_name in columns: columns.append(StringCol(name=col_name, length=10))
[docs] defdo_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)
[docs] defdo_fkey_test(DefaultStyleTest, style, dbname): DefaultStyleTest.sqlmeta.style = style() DefaultStyleTest.sqlmeta.addColumn(fkey) try: assert list(DefaultStyleTest.sqlmeta.columns.keys())[0] == "FKeyID" assert list(DefaultStyleTest.sqlmeta.columns.values())[0].dbName == \ dbname finally: DefaultStyleTest.sqlmeta.delColumn(fkey)
[docs] classDefaultStyleTest(SQLObject): pass
[docs] deftest_default_styles(): make_columns() for style in styles: do_col_test(DefaultStyleTest, style, styles[style]) do_fkey_test(DefaultStyleTest, style, fkeys[style])