[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()
|