Exemplo n.º 1
0
 def test_base_with_trailing_slash(self):
     """Build URLs with a base with a trailing slash."""
     href = trac.web.href.Href('/base/')
     self.assertEqual('/base', href())
     self.assertEqual('/base', href('/'))
     self.assertEqual('/base/sub', href('sub'))
     self.assertEqual('/base/sub', href('/sub/'))
     
     self.assertEqual('/base/path/to/file/', href + '/path/to/file/')
     self.assertEqual('/base/path/to/file', href + 'path/to/file')
     self.assertEqual('/base', href + '')
Exemplo n.º 2
0
 def test_params_subclasses(self):
     """Parameters passed using subclasses of dict, list and tuple."""
     class MyDict(dict):
         pass
     class MyList(list):
         pass
     class MyTuple(tuple):
         pass
     href = trac.web.href.Href('/base')
     self.assertEqual('/base?param=test&param=other',
                      href(param=MyList(['test', 'other'])))
     self.assertEqual('/base?param=test&param=other',
                      href(param=MyTuple(['test', 'other'])))
     assert href(MyDict(param='value', other='other value')) in [
         '/base?param=value&other=other+value',
         '/base?other=other+value&param=value']
     self.assertEqual('/base?param=value&other=other+value',
                      href(MyList([('param', 'value'), ('other', 'other value')])))
     self.assertEqual('/base?param=value&other=other+value',
                      href(MyTuple([('param', 'value'), ('other', 'other value')])))
Exemplo n.º 3
0
 def test_empty_base(self):
     """Build URLs with an empty base."""
     href = trac.web.href.Href('')
     self.assertEqual('/', href())
     self.assertEqual('/', href('/'))
     self.assertEqual('/sub', href('sub'))
     self.assertEqual('/sub', href('/sub/'))
     self.assertEqual('/sub/other', href('sub', 'other'))
     self.assertEqual('/sub/other', href('sub', None, 'other'))
     self.assertEqual('/sub//other', href('sub', '', 'other'))       # ???
     self.assertEqual('/with%20special%26chars',
                      href('with special&chars'))
     assert href('page', param='value', other='other value', more=None) in [
         '/page?param=value&other=other+value',
         '/page?other=other+value&param=value']
     self.assertEqual('/page?param=multiple&param=values',
                      href('page', param=['multiple', 'values']))
     
     self.assertEqual('/path/to/file/', href + '/path/to/file/')
     self.assertEqual('/path/to/file', href + 'path/to/file')
     self.assertEqual('/', href + '')
Exemplo n.º 4
0
 def test_empty_base(self):
     """Build URLs with an empty base."""
     href = trac.web.href.Href('')
     # The two following href calls don't result in a valid local URL.
     # This is relied upon by existing code (see #8153).
     self.assertEqual('', href())
     self.assertEqual('', href('/'))
     
     self.assertEqual('/sub', href('sub'))
     self.assertEqual('/sub', href('/sub/'))
     self.assertEqual('/sub/other', href('sub', 'other'))
     self.assertEqual('/sub/other', href('sub', None, 'other'))
     self.assertEqual('/sub//other', href('sub', '', 'other'))       # ???
     self.assertEqual('/with%20special%26chars',
                      href('with special&chars'))
     assert href('page', param='value', other='other value', more=None) in [
         '/page?param=value&other=other+value',
         '/page?other=other+value&param=value']
     self.assertEqual('/page?param=multiple&param=values',
                      href('page', param=['multiple', 'values']))
     
     self.assertEqual('/path/to/file/', href + '/path/to/file/')
     self.assertEqual('/path/to/file', href + 'path/to/file')
     self.assertEqual('/', href + '')
Exemplo n.º 5
0
 def test_non_empty_base(self):
     """Build URLs with a non-empty base."""
     href = trac.web.href.Href('/base')
     self.assertEqual('/base', href())
     self.assertEqual('/base', href('/'))
     self.assertEqual('/base/sub', href('sub'))
     self.assertEqual('/base/sub', href('/sub/'))
     self.assertEqual('/base/sub/other', href('sub', 'other'))
     self.assertEqual('/base/sub/other', href('sub', None, 'other'))
     self.assertEqual('/base/sub/other', href('sub', '', 'other'))
     self.assertEqual('/base/sub/other', href('sub', '', '', 'other'))
     self.assertEqual('/base/sub/other', href('', 'sub', 'other'))
     self.assertEqual('/base/sub/other/', href('sub', 'other', ''))
     self.assertEqual('/base/with%20special%26chars',
                      href('with special&chars'))
     assert href('page', param='value', other='other value', more=None) in [
         '/base/page?param=value&other=other+value',
         '/base/page?other=other+value&param=value']
     self.assertEqual('/base/page?param=multiple&param=values',
                      href('page', param=['multiple', 'values']))
     
     self.assertEqual('/base/path/to/file/', href + '/path/to/file/')
     self.assertEqual('/base/path/to/file', href + 'path/to/file')
     self.assertEqual('/base', href + '')