[Checkins] SVN: traject/trunk/ Fix a bug with the combination of locating and converters.
Martijn Faassen
faassen at startifact.com
Mon Jan 18 16:05:20 EST 2010
Log message for revision 108229:
Fix a bug with the combination of locating and converters.
Changed:
U traject/trunk/CHANGES.txt
U traject/trunk/src/traject/_traject.py
U traject/trunk/src/traject/tests.py
-=-
Modified: traject/trunk/CHANGES.txt
===================================================================
--- traject/trunk/CHANGES.txt 2010-01-18 20:31:40 UTC (rev 108228)
+++ traject/trunk/CHANGES.txt 2010-01-18 21:05:19 UTC (rev 108229)
@@ -1,12 +1,12 @@
CHANGES
*******
-0.11 (unreleased)
-=================
+0.10.1 (unreleased)
+===================
-- Nothing changed yet.
+- Fix bug in converter logic: it broke in certain cases
+ when traject.locate was used.
-
0.10 (2009-11-26)
=================
Modified: traject/trunk/src/traject/_traject.py
===================================================================
--- traject/trunk/src/traject/_traject.py 2010-01-18 20:31:40 UTC (rev 108228)
+++ traject/trunk/src/traject/_traject.py 2010-01-18 21:05:19 UTC (rev 108229)
@@ -262,6 +262,8 @@
if gen_name == ':':
name = name[1:]
+ if ':' in name:
+ name, converter_name = name.split(':')
name = variables.pop(name)
model.__name__ = unicode(name)
Modified: traject/trunk/src/traject/tests.py
===================================================================
--- traject/trunk/src/traject/tests.py 2010-01-18 20:31:40 UTC (rev 108228)
+++ traject/trunk/src/traject/tests.py 2010-01-18 21:05:19 UTC (rev 108229)
@@ -727,6 +727,24 @@
obj = patterns.resolve(root, 'a/1.1', default)
self.assertEquals(1.1, obj.v)
+
+ def test_converter_locate(self):
+ patterns = traject.Patterns()
+ class Obj(object):
+ def __init__(self, v):
+ self.v = v
+ patterns.register(Root, 'a/:v:int', Obj)
+ def args(obj):
+ return {'v': obj.v}
+ patterns.register_inverse(Root, Obj, 'a/:v:int', args)
+
+ root = Root()
+ obj = Obj(3)
+
+ patterns.locate(root, obj, default)
+ self.assertEquals('3', obj.__name__)
+ self.assertEquals(root, obj.__parent__.__parent__)
+
# XXX need a test for trailing slash?
# XXX could already introspect function to see whether we can properly
More information about the checkins
mailing list