]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- adjusted generative.py test for revised error message
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 6 Mar 2008 16:53:40 +0000 (16:53 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 6 Mar 2008 16:53:40 +0000 (16:53 +0000)
- mapper with non_primary asserts primary mapper already created
- added any()/instance compare test to query

lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/query.py
test/orm/generative.py
test/orm/mapper.py
test/orm/query.py

index f89830c02c65f4e7832ecdc128421af883ac6202..648a67c48acc4c4e8ffdf8dcdcf154baa8439f16 100644 (file)
@@ -732,6 +732,8 @@ class Mapper(object):
         """
 
         if self.non_primary:
+            if not hasattr(self.class_, '_class_state'):
+                raise exceptions.InvalidRequestError("Class %s has no primary mapper configured.  Configure a primary mapper first before setting up a non primary Mapper.")
             self._class_state = self.class_._class_state
             _mapper_registry[self] = True
             return
index ebe62e915c4b73cce5c106b78fa4c337adf8c9b1..c684cf501b3a0c4de4157b7a3125bf49a6a52b57 100644 (file)
@@ -522,7 +522,7 @@ class Query(object):
                     use_selectable = use_selectable.alias()
             
             if prop._is_self_referential() and not create_aliases and not use_selectable:
-                raise exceptions.InvalidRequestError("Self-referential query on '%s' property requires create_aliases=True argument." % str(prop))
+                raise exceptions.InvalidRequestError("Self-referential query on '%s' property requires aliased=True argument." % str(prop))
 
             if prop.select_table not in currenttables or create_aliases or use_selectable:
                 if prop.secondary:
index db8e313e6764d072febb326d943a8f1e40346a2a..c917b3e6e14994ee9d601d7e7f75acf932191317 100644 (file)
@@ -253,13 +253,13 @@ class SelfRefTest(ORMTest):
             sess.query(T).join('children').select_by(id=7)
             assert False
         except exceptions.InvalidRequestError, e:
-            assert str(e) == "Self-referential query on 'T.children (T)' property requires create_aliases=True argument.", str(e)
+            assert str(e) == "Self-referential query on 'T.children (T)' property requires aliased=True argument.", str(e)
 
         try:
             sess.query(T).join(['children']).select_by(id=7)
             assert False
         except exceptions.InvalidRequestError, e:
-            assert str(e) == "Self-referential query on 'T.children (T)' property requires create_aliases=True argument.", str(e)
+            assert str(e) == "Self-referential query on 'T.children (T)' property requires aliased=True argument.", str(e)
 
 
 
index 637b890ead1d78c59f800c2bce41326896b441af..713cbced7d4e69bc92c9abc6a03e9bcc2d5eadde 100644 (file)
@@ -322,6 +322,13 @@ class MapperTest(MapperSuperTest):
         except exceptions.ArgumentError, e:
             assert "Attempting to assign a new relation 'addresses' to a non-primary mapper on class 'User'" in str(e)
 
+    def test_illegal_non_primary_2(self):
+        try:
+            mapper(User, users, non_primary=True)
+            assert False
+        except exceptions.InvalidRequestError, e:
+            assert "Configure a primary mapper first" in str(e)
+
     def test_propfilters(self):
         t = Table('person', MetaData(),
                   Column('id', Integer, primary_key=True),
index 2915c0f53da599b440c0c45c2b716b1ea966e82b..e9d99d71b877a5fb216f7ba15142641d45c2d14d 100644 (file)
@@ -354,6 +354,9 @@ class FilterTest(QueryTest):
 
         assert [Address(id=2), Address(id=3), Address(id=4)] == sess.query(Address).filter(Address.user.has(User.name.like('%ed%'), id=8)).all()
 
+        dingaling = sess.query(Dingaling).get(2)
+        assert [User(id=9)] == sess.query(User).filter(User.addresses.any(Address.dingaling==dingaling)).all()
+        
     def test_contains_m2m(self):
         sess = create_session()
         item = sess.query(Item).get(3)