# HG changeset patch # User Sylvain Thénault # Date 1246052229 -7200 # Node ID 6adbc965c51b7721407b98b440070119f40cd7f8 # Parent 124fb0b9fa4be8550a760e064d01e73fc85e2873 fix jpl/ticket/34862: msplanner bug with query generated to check if a user from ldap is owned_by himself diff -r 124fb0b9fa4b -r 6adbc965c51b server/msplanner.py --- a/server/msplanner.py Fri Jun 26 11:31:57 2009 +0200 +++ b/server/msplanner.py Fri Jun 26 23:37:09 2009 +0200 @@ -563,7 +563,9 @@ self._sourcesterms = {self.system_source: {}} elif not self.needsplit: if not allequals(self._sourcesterms.itervalues()): - for terms in self._sourcesterms.itervalues(): + for source, terms in self._sourcesterms.iteritems(): + if source is self.system_source: + continue if any(x for x in terms if not isinstance(x, Constant)): self.needsplit = True return diff -r 124fb0b9fa4b -r 6adbc965c51b server/test/unittest_msplanner.py --- a/server/test/unittest_msplanner.py Fri Jun 26 11:31:57 2009 +0200 +++ b/server/test/unittest_msplanner.py Fri Jun 26 23:37:09 2009 +0200 @@ -1934,6 +1934,21 @@ [])], {'x': self.session.user.eid}) + def test_nonregr14_1(self): + repo._type_source_cache[999999] = ('CWUser', 'ldap', 999999) + self._test('Any X WHERE X eid %(x)s, X owned_by U, U eid %(u)s', + [('OneFetchStep', [('Any 999999 WHERE 999999 owned_by 999999', [{}])], + None, None, [self.system], {}, [])], + {'x': 999999, 'u': 999999}) + + def test_nonregr14_2(self): + repo._type_source_cache[999999] = ('CWUser', 'ldap', 999999) + repo._type_source_cache[999998] = ('Note', 'system', 999998) + self._test('Any X WHERE X eid %(x)s, X owned_by U, U eid %(u)s', + [('OneFetchStep', [('Any 999998 WHERE 999998 owned_by 999999', [{}])], + None, None, [self.system], {}, [])], + {'x': 999998, 'u': 999999}) + class MSPlannerTwoSameExternalSourcesTC(BasePlannerTC): """test planner related feature on a 3-sources repository: