Author: phd
Date: 2007-02-19 12:47:10 -0700 (Mon, 19 Feb 2007)
New Revision: 2324
Removed:
home/phd/SQLObject/paramstyles/sqlobject/tests/test_basic_old.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_joins_old.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_sorting_old.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_stringid_old.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_style_old.py
Modified:
home/phd/SQLObject/paramstyles/sqlobject/main.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto_old.py
Log:
Merged patches from the revisions 2321:2323 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/main.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/main.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/main.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -655,9 +655,9 @@
warnings_level = 1
exception_level = None
# Current levels:
-# 1) Actively deprecated in version after 0.6.1 (0.7?); removed after
-# 2) Deprecated after 1 (0.8?)
-# 3) Deprecated after 2 (0.9?)
+# 1) Actively deprecated in version after 0.9; removed after
+# 2) Deprecated after 1 (0.9?)
+# 3) Deprecated after 2 (0.10?)
def deprecated(message, level=1, stacklevel=2):
if exception_level is not None and exception_level <= level:
@@ -679,8 +679,8 @@
The levels currently mean:
- 1) Deprecated in current version (0.7). Will be removed in next
- version (0.8)
+ 1) Deprecated in current version (0.9). Will be removed in next
+ version (0.10)
2) Planned to deprecate in next version, remove later.
@@ -720,8 +720,8 @@
_parent = None # A reference to the parent instance
childName = None # Children name (to be able to get a subclass)
# moved to sqlmeta in 0.8:
- _parentClass = _sqlmeta_attr('parentClass', 2)
- _childClasses = _sqlmeta_attr('childClasses', 2)
+ _parentClass = _sqlmeta_attr('parentClass', 1)
+ _childClasses = _sqlmeta_attr('childClasses', 1)
# The law of Demeter: the class should not call another classes by name
SelectResultsClass = SelectResults
@@ -756,24 +756,6 @@
cls._SO_finishedClassCreation = False
- if '_columns' in new_attrs and not is_base:
- deprecated(
- 'The _columns attribute you gave (%r) is deprecated; '
- 'columns should be added as class attributes'
- % new_attrs['_columns'], level=1)
- for column in new_attrs['_columns']:
- if isinstance(column, str):
- column = col.Col(column)
- implicitColumns.append(column)
-
- if '_joins' in new_attrs and not is_base:
- deprecated(
- 'The _joins attribute you gave (%r) is deprecated; '
- 'joins should be added as class attributes'
- % new_attrs['_joins'], level=1)
- for j in new_attrs['_joins']:
- implicitJoins.append(j)
-
######################################################
# Set some attributes to their defaults, if necessary.
# First we get the connection:
@@ -828,23 +810,21 @@
classregistry.registry(cls.sqlmeta.registry).addClass(cls)
- _style = _sqlmeta_attr('style', 2)
- _table = _sqlmeta_attr('table', 2)
- _idName = _sqlmeta_attr('idName', 2)
- _lazyUpdate = _sqlmeta_attr('lazyUpdate', 2)
- _defaultOrder = _sqlmeta_attr('defaultOrder', 2)
- _cacheValues = _sqlmeta_attr('cacheValues', 2)
- _registry = _sqlmeta_attr('registry', 2)
- _idType = _sqlmeta_attr('idType', 2)
- _fromDatabase = _sqlmeta_attr('fromDatabase', 2)
+ _style = _sqlmeta_attr('style', 1)
+ _table = _sqlmeta_attr('table', 1)
+ _idName = _sqlmeta_attr('idName', 1)
+ _lazyUpdate = _sqlmeta_attr('lazyUpdate', 1)
+ _defaultOrder = _sqlmeta_attr('defaultOrder', 1)
+ _cacheValues = _sqlmeta_attr('cacheValues', 1)
+ _registry = _sqlmeta_attr('registry', 1)
+ _idType = _sqlmeta_attr('idType', 1)
+ _fromDatabase = _sqlmeta_attr('fromDatabase', 1)
_expired = _sqlmeta_attr('expired', 2)
- _columns = _sqlmeta_attr('columnList', 1)
- _columnDict = _sqlmeta_attr('columns', 1)
- addColumn = _sqlmeta_attr('addColumn', 2)
- delColumn = _sqlmeta_attr('delColumn', 2)
- addJoin = _sqlmeta_attr('addJoin', 2)
- delJoin = _sqlmeta_attr('delJoin', 2)
- addIndex = _sqlmeta_attr('addIndex', 2)
+ addColumn = _sqlmeta_attr('addColumn', 1)
+ delColumn = _sqlmeta_attr('delColumn', 1)
+ addJoin = _sqlmeta_attr('addJoin', 1)
+ delJoin = _sqlmeta_attr('delJoin', 1)
+ addIndex = _sqlmeta_attr('addIndex', 1)
# @classmethod
def _SO_setupSqlmeta(cls, new_attrs, is_base):
@@ -904,7 +884,7 @@
new_name = attr[1:]
deprecated("%r is deprecated; please set the %r "
"attribute in sqlmeta instead" %
- (attr, new_name), level=2,
+ (attr, new_name), level=1,
stacklevel=5)
setattr(cls.sqlmeta, new_name, new_attrs[attr])
delattr(cls, attr)
@@ -912,7 +892,7 @@
if new_attrs.has_key(attr):
deprecated("%r is deprecated and read-only; please do "
"not use it in your classes until it is fully "
- "deprecated" % attr, level=3, stacklevel=5)
+ "deprecated" % attr, level=2, stacklevel=5)
_SO_cleanDeprecatedAttrs = classmethod(_SO_cleanDeprecatedAttrs)
Modified: home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto_old.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto_old.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto_old.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -7,64 +7,7 @@
except ImportError:
from mx.DateTime import now
-deprecated_module()
-
########################################
-## Dynamic column tests
-########################################
-
-class OldPerson(SQLObject):
-
- class sqlmeta:
- defaultOrder = 'name'
- _columns = [StringCol('name', length=100, dbName='name_col')]
-
-class OldPhone(SQLObject):
-
- class sqlmeta:
- defaultOrder = 'phone'
- _columns = [StringCol('phone', length=12)]
-
-class TestPeople:
-
- def setup_method(self, meth):
- setupClass(OldPerson, force=True)
- setupClass(OldPhone, force=True)
- for n in ['jane', 'tim', 'bob', 'jake']:
- OldPerson(name=n)
- for p in ['555-555-5555', '555-394-2930',
- '444-382-4854']:
- OldPhone(phone=p)
-
- def test_defaultOrder(self):
- assert (list(OldPerson.select('all')) ==
- list(OldPerson.select('all', orderBy=OldPerson.sqlmeta.defaultOrder)))
-
- def test_dynamicColumn(self):
- nickname = StringCol('nickname', length=10)
- OldPerson.addColumn(nickname, changeSchema=True)
- n = OldPerson(name='robert', nickname='bob')
- assert ([p.name for p in OldPerson.select('all')]
- == ['bob', 'jake', 'jane', 'robert', 'tim'])
- OldPerson.delColumn(nickname, changeSchema=True)
-
- def test_dynamicJoin(self):
- col = KeyCol('oldPerson', foreignKey='OldPerson')
- OldPhone.addColumn(col, changeSchema=True)
- join = MultipleJoin('OldPhone')
- OldPerson.addJoin(join)
- for phone in OldPhone.select('all'):
- if phone.phone.startswith('555'):
- phone.oldPerson = OldPerson.selectBy(name='tim')[0]
- else:
- phone.oldPerson = OldPerson.selectBy(name='bob')[0]
- l = [p.phone for p in OldPerson.selectBy(name='tim')[0].oldPhones]
- l.sort()
- assert l == ['555-394-2930', '555-555-5555']
- OldPhone.delColumn(col, changeSchema=True)
- OldPerson.delJoin(join)
-
-########################################
## Auto class generation
########################################
@@ -184,4 +127,3 @@
OldAutoTest.sqlmeta.registry).classes['OldAutoTest']
teardown_module()
-
Deleted: home/phd/SQLObject/paramstyles/sqlobject/tests/test_basic_old.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_basic_old.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_basic_old.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -1,50 +0,0 @@
-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()
Deleted: home/phd/SQLObject/paramstyles/sqlobject/tests/test_joins_old.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_joins_old.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_joins_old.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -1,116 +0,0 @@
-from sqlobject import *
-from sqlobject.tests.dbtest import *
-
-deprecated_module()
-
-########################################
-## Joins
-########################################
-
-class OldPersonJoiner(SQLObject):
-
- name = StringCol(length=40, alternateID=True)
- _joins = [RelatedJoin('OldAddressJoiner')]
-
-class OldAddressJoiner(SQLObject):
-
- zip = StringCol(length=5, alternateID=True)
- _joins = [RelatedJoin('OldPersonJoiner')]
-
-class OldImplicitJoiningSO(SQLObject):
- foo = RelatedJoin('Bar')
-
-class OldExplicitJoiningSO(SQLObject):
- _joins = [MultipleJoin('Bar', joinMethodName='foo')]
-
-class TestJoin:
-
- def setup_method(self, meth):
- setupClass(OldPersonJoiner)
- setupClass(OldAddressJoiner)
- print "CLEARED"
- for n in ['bob', 'tim', 'jane', 'joe', 'fred', 'barb']:
- OldPersonJoiner(name=n)
- for z in ['11111', '22222', '33333', '44444']:
- OldAddressJoiner(zip=z)
- print "INSERTED"
-
- def test_join(self):
- b = OldPersonJoiner.byName('bob')
- print b
- print b.oldAddressJoiners
- assert b.oldAddressJoiners == []
- z = OldAddressJoiner.byZip('11111')
- b.addOldAddressJoiner(z)
- self.assertZipsEqual(b.oldAddressJoiners, ['11111'])
- self.assertNamesEqual(z.oldPersonJoiners, ['bob'])
- z2 = OldAddressJoiner.byZip('22222')
- b.addOldAddressJoiner(z2)
- self.assertZipsEqual(b.oldAddressJoiners, ['11111', '22222'])
- self.assertNamesEqual(z2.oldPersonJoiners, ['bob'])
- b.removeOldAddressJoiner(z)
- self.assertZipsEqual(b.oldAddressJoiners, ['22222'])
- self.assertNamesEqual(z.oldPersonJoiners, [])
-
- def assertZipsEqual(self, zips, dest):
- assert [a.zip for a in zips] == dest
-
- def assertNamesEqual(self, people, dest):
- assert [p.name for p in people] == dest
-
- def test_joinAttributeWithUnderscores(self):
- # Make sure that the implicit setting of joinMethodName works
- assert hasattr(OldImplicitJoiningSO, 'foo')
- assert not hasattr(OldImplicitJoiningSO, 'bars')
-
- # And make sure explicit setting also works
- assert hasattr(OldExplicitJoiningSO, 'foo')
- assert not hasattr(OldExplicitJoiningSO, 'bars')
-
-class OldPersonJoiner2(SQLObject):
-
- name = StringCol('name', length=40, alternateID=True)
- _joins = [MultipleJoin('OldAddressJoiner2')]
-
-class OldAddressJoiner2(SQLObject):
-
- class sqlmeta:
- defaultOrder = ['-zip', 'plus4']
-
- zip = StringCol(length=5)
- plus4 = StringCol(length=4, default=None)
- oldPersonJoiner2 = ForeignKey('OldPersonJoiner2')
-
-class TestJoin2:
-
- def setup_method(self, meth):
- setupClass([OldPersonJoiner2, OldAddressJoiner2])
- p1 = OldPersonJoiner2(name='bob')
- p2 = OldPersonJoiner2(name='sally')
- for z in ['11111', '22222', '33333']:
- a = OldAddressJoiner2(zip=z, oldPersonJoiner2=p1)
- #p1.addOldAddressJoiner2(a)
- OldAddressJoiner2(zip='00000', oldPersonJoiner2=p2)
-
- def test_basic(self):
- bob = OldPersonJoiner2.byName('bob')
- sally = OldPersonJoiner2.byName('sally')
- assert len(bob.oldAddressJoiner2s) == 3
- assert len(sally.oldAddressJoiner2s) == 1
- bob.oldAddressJoiner2s[0].destroySelf()
- assert len(bob.oldAddressJoiner2s) == 2
- z = bob.oldAddressJoiner2s[0]
- z.zip = 'xxxxx'
- id = z.id
- del z
- z = OldAddressJoiner2.get(id)
- assert z.zip == 'xxxxx'
-
- def test_defaultOrder(self):
- p1 = OldPersonJoiner2.byName('bob')
- assert ([i.zip for i in p1.oldAddressJoiner2s]
- == ['33333', '22222', '11111'])
-
-
-teardown_module()
-
Deleted: home/phd/SQLObject/paramstyles/sqlobject/tests/test_sorting_old.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_sorting_old.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_sorting_old.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -1,36 +0,0 @@
-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']
Deleted: home/phd/SQLObject/paramstyles/sqlobject/tests/test_stringid_old.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_stringid_old.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_stringid_old.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -1,73 +0,0 @@
-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
- )
- """
-
- mssqlCreate = """
- CREATE TABLE so_string_id (
- id VARCHAR(50) primary key,
- 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
- mssqlDrop = 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
Deleted: home/phd/SQLObject/paramstyles/sqlobject/tests/test_style_old.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_style_old.py 2007-02-19 19:45:50 UTC (rev 2323)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_style_old.py 2007-02-19 19:47:10 UTC (rev 2324)
@@ -1,31 +0,0 @@
-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._columnDict['st2ID'].dbName == 'idst2'
- assert st1.st2 == st2
-
-teardown_module()
|