[SQL-CVS] r594 - trunk/SQLObject/sqlobject/tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2005-02-10 04:50:44
|
Author: ianb Date: 2005-02-10 04:50:41 +0000 (Thu, 10 Feb 2005) New Revision: 594 Added: trunk/SQLObject/sqlobject/tests/test_basic_old.py trunk/SQLObject/sqlobject/tests/test_sorting_old.py trunk/SQLObject/sqlobject/tests/test_stringid_old.py trunk/SQLObject/sqlobject/tests/test_style_old.py Modified: trunk/SQLObject/sqlobject/tests/dbtest.py trunk/SQLObject/sqlobject/tests/test_basic.py trunk/SQLObject/sqlobject/tests/test_sorting.py trunk/SQLObject/sqlobject/tests/test_stringid.py trunk/SQLObject/sqlobject/tests/test_style.py Log: Updated tests to use new style when applicable; added modules that test the backward compatible style when that occurred Modified: trunk/SQLObject/sqlobject/tests/dbtest.py =================================================================== --- trunk/SQLObject/sqlobject/tests/dbtest.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/dbtest.py 2005-02-10 04:50:41 UTC (rev 594) @@ -229,5 +229,27 @@ # To avoid name clashes: _inserts = inserts +def deprecated_module(): + sqlobject.main.warnings_level = None + sqlobject.main.exception_level = None + +def setup_module(mod): + # modules with '_old' test backward compatible methods, so they + # don't get warnings or errors. + mod_name = str(mod.__name__) + if mod_name.endswith('/py'): + mod_name = mod_name[:-3] + if mod_name.endswith('_old'): + sqlobject.main.warnings_level = None + sqlobject.main.exception_level = None + else: + sqlobject.main.warnings_level = None + sqlobject.main.exception_level = 0 + +def teardown_module(mod=None): + sqlobject.main.warnings_level = None + sqlobject.main.exception_level = 0 + __all__ = ['getConnection', 'setupClass', 'Dummy', 'raises', - 'd', 'inserts', 'supports'] + 'd', 'inserts', 'supports', 'deprecated_module', + 'setup_module', 'teardown_module'] Modified: trunk/SQLObject/sqlobject/tests/test_basic.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_basic.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_basic.py 2005-02-10 04:50:41 UTC (rev 594) @@ -5,9 +5,7 @@ name = StringCol(length=50, dbName='name_col') _cacheValues = False - _columns = [ - StringCol('passwd', length=10), - ] + passwd = StringCol(length=10) def _set_passwd(self, passwd): self._SO_set_passwd(passwd.encode('rot13')) Copied: trunk/SQLObject/sqlobject/tests/test_basic_old.py (from rev 580, trunk/SQLObject/sqlobject/tests/test_basic.py) =================================================================== --- trunk/SQLObject/sqlobject/tests/test_basic.py 2005-02-09 04:50:46 UTC (rev 580) +++ trunk/SQLObject/sqlobject/tests/test_basic_old.py 2005-02-10 04:50:41 UTC (rev 594) @@ -0,0 +1,50 @@ +from sqlobject import * +from sqlobject.tests.dbtest import * + +deprecated_module() + +class OldTestSO1(SQLObject): + + name = StringCol(length=50, dbName='name_col') + _cacheValues = False + _columns = [ + StringCol('passwd', length=10), + ] + + def _set_passwd(self, passwd): + self._SO_set_passwd(passwd.encode('rot13')) + +def setupGetters(cls): + setupClass(cls) + inserts(cls, [('bob', 'god'), ('sally', 'sordid'), + ('dave', 'dremel'), ('fred', 'forgo')], + 'name passwd') + +def test_case1(): + setupGetters(OldTestSO1) + bob = OldTestSO1.selectBy(name='bob')[0] + assert bob.name == 'bob' + assert bob.passwd == 'god'.encode('rot13') + +def test_newline(): + setupGetters(OldTestSO1) + bob = OldTestSO1.selectBy(name='bob')[0] + testString = 'hey\nyou\\can\'t you see me?\t' + bob.name = testString + bob.expire() + assert bob.name == testString + +def test_count(): + setupGetters(OldTestSO1) + assert OldTestSO1.selectBy(name='bob').count() == 1 + assert OldTestSO1.select(OldTestSO1.q.name == 'bob').count() == 1 + assert OldTestSO1.select().count() == len(list(OldTestSO1.select())) + +def test_getset(): + setupGetters(OldTestSO1) + bob = OldTestSO1.selectBy(name='bob')[0] + assert bob.name == 'bob' + bob.name = 'joe' + assert bob.name == 'joe' + +teardown_module() Modified: trunk/SQLObject/sqlobject/tests/test_sorting.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_sorting.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_sorting.py 2005-02-10 04:50:41 UTC (rev 594) @@ -3,7 +3,8 @@ class Names(SQLObject): - _table = 'names_table' + class sqlmeta(sqlmeta): + table = 'names_table' firstName = StringCol(length=30) lastName = StringCol(length=30) Added: trunk/SQLObject/sqlobject/tests/test_sorting_old.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_sorting_old.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_sorting_old.py 2005-02-10 04:50:41 UTC (rev 594) @@ -0,0 +1,36 @@ +from sqlobject import * +from sqlobject.tests.dbtest import * + +deprecated_module() + +class OldNames(SQLObject): + + _table = 'names_table' + + firstName = StringCol(length=30) + lastName = StringCol(length=30) + + _defaultOrder = ['lastName', 'firstName'] + +def setupNames(): + setupClass(OldNames) + inserts(OldNames, [('aj', 'baker'), ('joe', 'robbins'), + ('tim', 'jackson'), ('joe', 'baker'), + ('zoe', 'robbins')], + schema='firstName lastName') + +def nameList(names): + result = [] + for name in names: + result.append('%s %s' % (name.firstName, name.lastName)) + return result + +def firstList(names): + return [n.firstName for n in names] + +def test_defaultOrder(): + setupNames() + assert nameList(OldNames.select()) == \ + ['aj baker', 'joe baker', + 'tim jackson', 'joe robbins', + 'zoe robbins'] Modified: trunk/SQLObject/sqlobject/tests/test_stringid.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_stringid.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_stringid.py 2005-02-10 04:50:41 UTC (rev 594) @@ -7,7 +7,8 @@ class SOStringID(SQLObject): - _table = 'so_string_id' + class sqlmeta(sqlmeta): + table = 'so_string_id' _idType = str val = StringCol(alternateID=True) Added: trunk/SQLObject/sqlobject/tests/test_stringid_old.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_stringid_old.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_stringid_old.py 2005-02-10 04:50:41 UTC (rev 594) @@ -0,0 +1,65 @@ +from sqlobject import * +from sqlobject.tests.dbtest import * + +deprecated_module() + +######################################## +## String ID test +######################################## + +class OldSOStringID(SQLObject): + + _table = 'so_string_id' + _idType = str + val = StringCol(alternateID=True) + + mysqlCreate = """ + CREATE TABLE IF NOT EXISTS so_string_id ( + id VARCHAR(50) PRIMARY KEY, + val TEXT + ) + """ + + postgresCreate = """ + CREATE TABLE so_string_id ( + id VARCHAR(50) PRIMARY KEY, + val TEXT + ) + """ + + sybaseCreate = """ + CREATE TABLE so_string_id ( + id VARCHAR(50) UNIQUE, + val VARCHAR(50) NULL + ) + """ + + firebirdCreate = """ + CREATE TABLE so_string_id ( + id VARCHAR(50) NOT NULL PRIMARY KEY, + val BLOB SUB_TYPE TEXT + ) + """ + + sqliteCreate = postgresCreate + + mysqlDrop = """ + DROP TABLE IF EXISTS so_string_id + """ + + postgresDrop = """ + DROP TABLE so_string_id + """ + + sqliteDrop = postgresDrop + firebirdDrop = postgresDrop + + +def test_stringID(): + setupClass(OldSOStringID) + t = OldSOStringID(id='hey', val='whatever') + t2 = OldSOStringID.byVal('whatever') + assert t == t2 + t3 = OldSOStringID(id='you', val='nowhere') + t4 = OldSOStringID.get('you') + assert t3 == t4 Modified: trunk/SQLObject/sqlobject/tests/test_style.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_style.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_style.py 2005-02-10 04:50:41 UTC (rev 594) @@ -12,11 +12,13 @@ class SOStyleTest1(SQLObject): a = StringCol() st2 = ForeignKey('SOStyleTest2') - _style = AnotherStyle() + class sqlmeta(sqlmeta): + style = AnotherStyle() class SOStyleTest2(SQLObject): b = StringCol() - _style = AnotherStyle() + class sqlmeta(sqlmeta): + style = AnotherStyle() def test_style(): setupClass([SOStyleTest2, SOStyleTest1]) Added: trunk/SQLObject/sqlobject/tests/test_style_old.py =================================================================== --- trunk/SQLObject/sqlobject/tests/test_style_old.py 2005-02-10 04:50:00 UTC (rev 593) +++ trunk/SQLObject/sqlobject/tests/test_style_old.py 2005-02-10 04:50:41 UTC (rev 594) @@ -0,0 +1,31 @@ +from sqlobject import * +from sqlobject.tests.dbtest import * +from sqlobject import styles + +deprecated_module() + +class AnotherStyle(styles.MixedCaseUnderscoreStyle): + def pythonAttrToDBColumn(self, attr): + if attr.lower().endswith('id'): + return 'id'+styles.MixedCaseUnderscoreStyle.pythonAttrToDBColumn(self, attr[:-2]) + else: + return styles.MixedCaseUnderscoreStyle.pythonAttrToDBColumn(self, attr) + +class OldSOStyleTest1(SQLObject): + a = StringCol() + st2 = ForeignKey('OldSOStyleTest2') + _style = AnotherStyle() + +class OldSOStyleTest2(SQLObject): + b = StringCol() + _style = AnotherStyle() + +def test_style(): + setupClass([OldSOStyleTest2, OldSOStyleTest1]) + st1 = OldSOStyleTest1(a='something', st2=None) + st2 = OldSOStyleTest2(b='whatever') + st1.st2 = st2 + assert st1._SO_columnDict['st2ID'].dbName == 'idst2' + assert st1.st2 == st2 + +teardown_module() |