Esempio n. 1
0
File: url.py Progetto: rsms/smisk
 def test_decompose_query(self):
   u = URL('http://a/?email=foo%[email protected]&&stale_key&&mos=abc&mos=123&&&')
   q = URL.decompose_query(u.query)
   self.assertEquals(q['email'], "*****@*****.**")
   self.assertEquals(q['stale_key'], None)
   self.assertEquals(q['mos'], ['abc', '123'])
   self.assertContains(q.keys(), ['email', 'stale_key', 'mos'])
Esempio n. 2
0
File: url.py Progetto: rsms/smisk
 def test_decompose_query_decode(self):
   # explicitly decode iso-8859-1 text:
   u = URL('http://a/?name=%E5%E4%F6')
   q = URL.decompose_query(u.query, charset='latin_1', tolerant=False)
   self.assertTrue(isinstance(q['name'], unicode))
   self.assertEquals(q['name'], u'\xe5\xe4\xf6')
   
   # explicitly decode utf-8 text:
   u = URL('http://a/?name=%C3%A5%C3%A4%C3%B6%EF%A3%BF')
   q = URL.decompose_query(u.query, charset='utf-8')
   self.assertTrue(isinstance(q['name'], unicode))
   self.assertEquals(q['name'], u'\xe5\xe4\xf6\uf8ff')
   
   # fail to decode iso-8859-1 as utf-8 (tolerant=False):
   u = URL('http://a/?name=%E5%E4%F6')
   self.assertRaises(UnicodeDecodeError, 
     lambda: URL.decompose_query(u.query, charset='utf-8', tolerant=False))
   # repeating the above with tolerant=True (default value) should implicitly 
   # use the latin-1 charset:
   q = URL.decompose_query(u.query, charset='utf-8')
   self.assertTrue(isinstance(q['name'], unicode))
   self.assertEquals(q['name'], u'\xe5\xe4\xf6')