Author: phd
Date: 2006-10-12 09:02:21 -0600 (Thu, 12 Oct 2006)
New Revision: 2021
Modified:
home/phd/SQLObject/paramstyles/sqlobject/main.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto.py
Log:
Merged patches from the revisions 2018:2020 from the trunk
Modified: home/phd/SQLObject/paramstyles/sqlobject/main.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/main.py 2006-10-12 15:00:54 UTC (rev 2020)
+++ home/phd/SQLObject/paramstyles/sqlobject/main.py 2006-10-12 15:02:21 UTC (rev 2021)
@@ -318,8 +318,11 @@
"The class %s.%s already has a column %r (%r), you cannot "
"add the column %r"
% (soClass.__module__, soClass.__name__, name,
- sqlmeta.columnDefinitions[name],
- columnDef))
+ sqlmeta.columnDefinitions[name], columnDef))
+ assert name not in dir(soClass), (
+ "The class %s.%s already has a variable or method %r, you cannot "
+ "add the column %r"
+ % (soClass.__module__, soClass.__name__, name, name))
sqlmeta.columnDefinitions[name] = columnDef
sqlmeta.columns[name] = column
# A stable-ordered version of the list...
Modified: home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto.py 2006-10-12 15:00:54 UTC (rev 2020)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_auto.py 2006-10-12 15:02:21 UTC (rev 2021)
@@ -1,6 +1,8 @@
from sqlobject import *
from sqlobject.tests.dbtest import *
from sqlobject import classregistry
+from py.test import raises
+
try:
from datetime import datetime
now = datetime.now
@@ -62,6 +64,17 @@
Phone.sqlmeta.delColumn(col, changeSchema=True)
Person.sqlmeta.delJoin(join)
+ def _test_collidingName(self):
+ class CollidingName(SQLObject):
+ expire = StringCol()
+
+ def test_collidingName(self):
+ raises(AssertionError, Person.sqlmeta.addColumn, StringCol(name="name"))
+ raises(AssertionError, Person.sqlmeta.addColumn, StringCol(name="_init"))
+ raises(AssertionError, Person.sqlmeta.addColumn, StringCol(name="expire"))
+ raises(AssertionError, Person.sqlmeta.addColumn, StringCol(name="set"))
+ raises(AssertionError, self._test_collidingName)
+
########################################
## Auto class generation
########################################
|