]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Flipped join order of __radd__ on association proxied lists.
authorJason Kirtland <jek@discorporate.us>
Thu, 24 Jan 2008 01:12:46 +0000 (01:12 +0000)
committerJason Kirtland <jek@discorporate.us>
Thu, 24 Jan 2008 01:12:46 +0000 (01:12 +0000)
CHANGES
lib/sqlalchemy/ext/associationproxy.py
test/ext/associationproxy.py

diff --git a/CHANGES b/CHANGES
index 947ee360354b2d6f23be0bf3d13b228a5bb98652..4f1d422c063a890ec528c49a52135d2475424193 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -140,6 +140,9 @@ CHANGES
     - Changed ext.activemapper to use a non-transactional
       session for the objectstore.
 
+    - Fixed output order of "['a'] + obj.proxied" binary operation on
+      association-proxied lists.
+
 0.4.2p3
 ------
 - general
index e9f6040058569a8ed0d0b59ac24c3e0a62183859..1e237a857693fcff7b9f875810cfc7ca5c6965e5 100644 (file)
@@ -408,7 +408,13 @@ class _AssociationList(object):
         except TypeError:
             return NotImplemented
         return list(self) + other
-    __radd__ = __add__
+
+    def __radd__(self, iterable):
+        try:
+            other = list(iterable)
+        except TypeError:
+            return NotImplemented
+        return other + list(self)
 
     def __mul__(self, n):
         if not isinstance(n, int):
index aca5263fba66da5c8b6b6f0cc1174e304dbbbe6d..1ebf07cb319efab1ae66f121fe904fab48db9b9e 100644 (file)
@@ -199,13 +199,18 @@ class _CollectionOperations(PersistTest):
         self.assert_(p1.children == after)
         self.assert_([c.name for c in p1._children] == after)
 
+        p1.children += ['c']
+        after = ['a', 'b', 'c']
+        self.assert_(p1.children == after)
+        self.assert_([c.name for c in p1._children] == after)
+
         p1.children *= 1
-        after = ['a', 'b']
+        after = ['a', 'b', 'c']
         self.assert_(p1.children == after)
         self.assert_([c.name for c in p1._children] == after)
 
         p1.children *= 2
-        after = ['a', 'b', 'a', 'b']
+        after = ['a', 'b', 'c', 'a', 'b', 'c']
         self.assert_(p1.children == after)
         self.assert_([c.name for c in p1._children] == after)
 
@@ -219,8 +224,8 @@ class _CollectionOperations(PersistTest):
         self.assert_((p1.children * 0) == [])
         self.assert_((0 * p1.children) == [])
 
-        self.assert_((p1.children + ['a']) == ['a', 'a'])
-        self.assert_((['a'] + p1.children) == ['a', 'a'])
+        self.assert_((p1.children + ['b']) == ['a', 'b'])
+        self.assert_((['b'] + p1.children) == ['b', 'a'])
 
         try:
             p1.children + 123