1""" 2Test the default styles, to guarantee consistency. 3""" 4 5from sqlobject import * 6from sqlobject.tests.dbtest import * 7from sqlobject.styles import Style, MixedCaseUnderscoreStyle, MixedCaseStyle 8 9#hash of styles versus the database names resulting from 'columns' below 10columns = ["ABCUpper", "abc_lower", "ABCamelCaseColumn"] 11styles = {Style:columns, 12 MixedCaseUnderscoreStyle:["abc_upper", "abc_lower", "ab_camel_case_column"], 13 MixedCaseStyle:["ABCUpper", "Abc_lower", "ABCamelCaseColumn"], 14 } 15 16#hash of styles versus the database names resulting from a foreign key named 'FKey' 17fkey = ForeignKey("DefaultStyleTest", name="FKey") 18fkeys = {Style:"FKeyID", 19 MixedCaseUnderscoreStyle:"f_key_id", 20 MixedCaseStyle:"FKeyID", 21 } 22 23 24def make_columns(): 25 global columns 26 columns = [] 27 for col_name in columns: 28 columns.append(StringCol(name=col_name, length=10)) 29 30 31def do_col_test(DefaultStyleTest, style, dbnames): 32 DefaultStyleTest.sqlmeta.style = style() 33 for col, old_dbname in zip(columns, dbnames): 34 DefaultStyleTest.sqlmeta.addColumn(col) 35 try: 36 new_dbname = DefaultStyleTest.sqlmeta.columns[col.name].dbName 37 assert new_dbname == old_dbname 38 finally: 39 if col.name in DefaultStyleTest.sqlmeta.columns: 40 DefaultStyleTest.sqlmeta.delColumn(col) 41 42def do_fkey_test(DefaultStyleTest, style, dbname): 43 DefaultStyleTest.sqlmeta.style = style() 44 DefaultStyleTest.sqlmeta.addColumn(fkey) 45 try: 46 assert DefaultStyleTest.sqlmeta.columns.keys()[0] == "FKeyID" 47 assert DefaultStyleTest.sqlmeta.columns.values()[0].dbName == dbname 48 finally: 49 DefaultStyleTest.sqlmeta.delColumn(fkey) 50 51class DefaultStyleTest(SQLObject): 52 pass 53 54def test_default_styles(): 55 make_columns() 56 for style in styles: 57 yield do_col_test, DefaultStyleTest, style, styles[style] 58 yield do_fkey_test, DefaultStyleTest, style, fkeys[style] 59