def test__relativePath(self): # build test navtree context = MockObject(uid='00000000000000001', path="/%s/bar/fizz" % MOCK_SITE_ID) context.__parent__ = MockObject(uid='00000000000000002', path="/%s/bar" % MOCK_SITE_ID) # Plone root context.__parent__.__parent__ = MockSite() # Zope root context.__parent__.__parent__.__parent__ = \ MockObject(uid='00000000000000004', path="/") # ploneroot sub folder context.__parent__.__parent__.ham = \ MockObject(uid='00000000000000005', path="/%s/ham" % MOCK_SITE_ID) # collection subfolder context.__parent__.egg = MockObject(uid='00000000000000006', path="/%s/bar/egg" % MOCK_SITE_ID) # show my siblings data = Row(index='path', operator='_relativePath', values='..') parsed = queryparser._relativePath(context, data) expected = {'path': {'query': '/%s/bar' % MOCK_SITE_ID}} self.assertEqual(parsed, expected) # walk upwards data = Row(index='path', operator='_relativePath', values='../../') parsed = queryparser._relativePath(context, data) expected = {'path': {'query': '/%s' % MOCK_SITE_ID}} self.assertEqual(parsed, expected) # if you walk beyond INavigatinRoot it should stop and return data = Row(index='path', operator='_relativePath', values='../../../') parsed = queryparser._relativePath(context, data) expected = {'path': {'query': '/%s' % MOCK_SITE_ID}} self.assertEqual(parsed, expected) # reach a subfolder on Plone root data = Row(index='path', operator='_relativePath', values='../../ham') parsed = queryparser._relativePath(context, data) expected = {'path': {'query': '/%s/ham' % MOCK_SITE_ID}} self.assertEqual(parsed, expected) # reach a subfolder on parent of collection data = Row(index='path', operator='_relativePath', values='../egg') parsed = queryparser._relativePath(context, data) expected = {'path': {'query': '/%s/bar/egg' % MOCK_SITE_ID}} self.assertEqual(parsed, expected)
def test__relativePath(self): context = MockObject(uid='00000000000000001', path="/foo/bar/fizz") context.__parent__ = MockObject(uid='00000000000000002', path="/foo/bar") # Plone root root = MockObject(uid='00000000000000003', path="/foo") directlyProvides(root, INavigationRoot) context.__parent__.__parent__ = root # Zope root zoperoot = MockObject(uid='00000000000000004', path="/") context.__parent__.__parent__.__parent__ = zoperoot data = Row(index='path', operator='_relativePath', values='../../') parsed = queryparser._relativePath(context, data) expected = {'path': {'query': '/foo'}} self.assertEqual(parsed, expected)