def testIntVariable(self): r = Route('<int:id>/') self.assertEqual(str(r),'/<int:id>/') self.assertEqual(r.variables, set(['id'])) self.assertEqual(r.breadcrumbs,((True,'id'),)) self.assertEqual(r.match('35/'),{'id':35}) self.assertEqual(r.url(id = 1), '/1/') self.assertRaises(ValueError,lambda : r.url(id = 'bla'))
def testIntVariable(self): r = Route('<int:id>/') self.assertEqual(str(r), '/<int:id>/') self.assertEqual(r.variables, set(['id'])) self.assertEqual(r.breadcrumbs, ((True, 'id'), )) self.assertEqual(r.match('35/'), {'id': 35}) self.assertEqual(r.url(id=1), '/1/') self.assertRaises(ValueError, lambda: r.url(id='bla'))
def testPathVaiable(self): r = Route('bla/<path:rest>', defaults={'rest': ''}) self.assertEqual(r.variables, set(['rest'])) self.assertEqual(r.level, 2) self.assertTrue(r.is_leaf) self.assertEqual(r.match('bla/a/b/c.html'), {'rest': 'a/b/c.html'}) self.assertEqual(r.match('bla/'), {'rest': ''}) self.assertEqual(r.url(rest='a/'), '/bla/a/') self.assertEqual(r.url(), '/bla/')
def testPathVaiable(self): r = Route('bla/<path:rest>', defaults={'rest': ''}) self.assertEqual(r.variables, set(['rest'])) self.assertEqual(r.level, 2) self.assertTrue(r.is_leaf) self.assertEqual(r.match('bla/a/b/c.html'), {'rest': 'a/b/c.html'}) self.assertEqual(r.match('bla/'), {'rest': ''}) self.assertEqual(r.url(rest='a/'), '/bla/a/') self.assertEqual(r.url(), '/bla/')
def testIntVariableMinMax(self): r = Route('<int(min=1):cid>/') self.assertEqual(str(r), '/<int(min=1):cid>/') self.assertEqual(r.variables, set(['cid'])) self.assertEqual(r.breadcrumbs, ((True, 'cid'),)) self.assertEqual(r.match('1/'), {'cid': 1}) self.assertEqual(r.match('476876/'), {'cid': 476876}) self.assertEqual(r.match('0/'), None) self.assertEqual(r.match('-5/'), None) self.assertEqual(r.url(cid=13), '/13/') self.assertEqual(r.url(cid=1), '/1/') self.assertRaises(ValueError, r.url, cid=0) self.assertRaises(ValueError, r.url, cid=-10) self.assertRaises(ValueError, r.url, cid='bla')
def testIntVariableFixDigits(self): r = Route('<int(2):id>/') self.assertEqual(str(r), '/<int(2):id>/') self.assertEqual(r.variables, set(['id'])) self.assertEqual(r.breadcrumbs, ((True, 'id'),)) self.assertEqual(r.match('35/'), {'id': 35}) self.assertEqual(r.match('355/'), None) self.assertEqual(r.match('6/'), None) self.assertEqual(r.match('ch/'), None) self.assertEqual(r.url(id=13), '/13/') self.assertEqual(r.url(id=1), '/01/') self.assertRaises(ValueError, r.url, id=134) self.assertRaises(ValueError, r.url, id='bl') self.assertRaises(ValueError, r.url, id='bla')
def test2StringVariables(self): r = Route('<name>/<child>/') self.assertFalse(r.is_leaf) self.assertEqual(r.level,2) self.assertEqual(r.variables, set(['name','child'])) self.assertEqual(r.breadcrumbs, ((True,'name'),(True,'child'))) self.assertEqual(r.rule,'<name>/<child>/') self.assertEqual(r.match('bla/foo/'),{'name':'bla','child':'foo'}) self.assertEqual(r.match('bla/foo/another/'), {'name':'bla','child':'foo', '__remaining__':'another/'}) self.assertRaises(KeyError, lambda : r.url(name = 'luca')) self.assertEqual(r.url(name = 'luca', child = 'joshua'), '/luca/joshua/')
def testIntVariableMinMax(self): r = Route('<int(min=1):cid>/') self.assertEqual(str(r), '/<int(min=1):cid>/') self.assertEqual(r.variables, set(['cid'])) self.assertEqual(r.breadcrumbs, ((True, 'cid'), )) self.assertEqual(r.match('1/'), {'cid': 1}) self.assertEqual(r.match('476876/'), {'cid': 476876}) self.assertEqual(r.match('0/'), None) self.assertEqual(r.match('-5/'), None) self.assertEqual(r.url(cid=13), '/13/') self.assertEqual(r.url(cid=1), '/1/') self.assertRaises(ValueError, r.url, cid=0) self.assertRaises(ValueError, r.url, cid=-10) self.assertRaises(ValueError, r.url, cid='bla')
def testIntVariableFixDigits(self): r = Route('<int(2):id>/') self.assertEqual(str(r), '/<int(2):id>/') self.assertEqual(r.variables, set(['id'])) self.assertEqual(r.breadcrumbs, ((True, 'id'), )) self.assertEqual(r.match('35/'), {'id': 35}) self.assertEqual(r.match('355/'), None) self.assertEqual(r.match('6/'), None) self.assertEqual(r.match('ch/'), None) self.assertEqual(r.url(id=13), '/13/') self.assertEqual(r.url(id=1), '/01/') self.assertRaises(ValueError, r.url, id=134) self.assertRaises(ValueError, r.url, id='bl') self.assertRaises(ValueError, r.url, id='bla')
def test2StringVariables(self): r = Route('<name>/<child>/') self.assertFalse(r.is_leaf) self.assertEqual(r.level, 2) self.assertEqual(r.variables, set(['name', 'child'])) self.assertEqual(r.breadcrumbs, ((True, 'name'), (True, 'child'))) self.assertEqual(r.rule, '<name>/<child>/') self.assertEqual(r.match('bla/foo/'), {'name': 'bla', 'child': 'foo'}) self.assertEqual(r.match('bla/foo/another/'), { 'name': 'bla', 'child': 'foo', '__remaining__': 'another/' }) self.assertRaises(KeyError, lambda: r.url(name='luca')) self.assertEqual(r.url(name='luca', child='joshua'), '/luca/joshua/')
def testStringVariable(self): r = Route('<name>/') self.assertFalse(r.is_leaf) self.assertEqual(r.variables, set(['name'])) self.assertEqual(r.breadcrumbs, ((True, 'name'),)) self.assertEqual(r.rule, '<name>/') self.assertEqual(r.match('bla-foo/'), {'name': 'bla-foo'}) self.assertEqual(r.match('bla/another/'), {'name': 'bla', '__remaining__': 'another/'}) self.assertEqual(r.url(name='luca'), '/luca/')
def testStringVariable(self): r = Route('<name>/') self.assertFalse(r.is_leaf) self.assertEqual(r.variables, set(['name'])) self.assertEqual(r.breadcrumbs, ((True, 'name'), )) self.assertEqual(r.rule, '<name>/') self.assertEqual(r.match('bla-foo/'), {'name': 'bla-foo'}) self.assertEqual(r.match('bla/another/'), { 'name': 'bla', '__remaining__': 'another/' }) self.assertEqual(r.url(name='luca'), '/luca/')
def test_empty_url(self): r = Route('') self.assertEqual(r.rule, '') self.assertEqual(r.url(), '/') self.assertEqual(r.path, '/')
def testDefaults(self): r = Route('bla/<id>/add/<path:path>', {'path': ''}) self.assertEqual(r.url(id=10), '/bla/10/add/') self.assertEqual(r.url(id=10, path='ciao/luca'), '/bla/10/add/ciao/luca')
def test_empty_url(self): r = Route('') self.assertEqual(r.rule, '') self.assertEqual(r.url(), '/') self.assertEqual(r.path, '/')
def testDefaults(self): r = Route('bla/<id>/add/<path:path>', {'path': ''}) self.assertEqual(r.url(id=10), '/bla/10/add/') self.assertEqual(r.url(id=10, path='ciao/luca'), '/bla/10/add/ciao/luca')