def setUp(self): self.sb64 = Dencoder(Dencoder.BASE64) self.shex = Dencoder(Dencoder.HEX) self.urls = Dencoder(Dencoder.URL_SAFE)
class TestDencoder(unittest.TestCase): def setUp(self): self.sb64 = Dencoder(Dencoder.BASE64) self.shex = Dencoder(Dencoder.HEX) self.urls = Dencoder(Dencoder.URL_SAFE) def test_encode(self): result0 = self.sb64.encode(0) result1 = self.sb64.encode(1) result35 = self.sb64.encode(35) result120 = self.sb64.encode(120) result1024 = self.sb64.encode(1024) self.assertEquals(result0, 'a') self.assertEquals(result1, 'b') self.assertEquals(result35, 'J') self.assertEquals(result120, 'b4') self.assertEquals(result1024, 'qa') def test_decode(self): result0 = self.sb64.decode('a') result1 = self.sb64.decode('b') result35 = self.sb64.decode('J') result120 = self.sb64.decode('b4') result1024 = self.sb64.decode('qa') result_abc = self.sb64.decode('abc') result_xyz = self.sb64.decode('xyz') self.assertEquals(result0, 0) self.assertEquals(result1, 1) self.assertEquals(result35, 35) self.assertEquals(result120, 120) self.assertEquals(result1024, 1024) self.assertEquals(result_abc, 66) self.assertEquals(result_xyz, 95769) def test_matching(self): shex = "12AB" shexe = self.shex.decode(shex) shexd = self.shex.encode(shexe) self.assertEquals(shex, shexd) urls = "xyz" urlse = self.urls.decode(urls) urlsd = self.urls.encode(urlse) self.assertEquals(urls, urlsd) urls2 = "abc" urlse2 = self.urls.decode(urls2) urlsd2 = self.urls.encode(urlse) self.assertNotEquals(urls2, urlsd2) # because starting with a means it begins with 0 def test_check(self): self.assertTrue(self.sb64.in_alphabet("abc")) self.assertTrue(self.sb64.in_alphabet("xyz")) self.assertTrue(self.sb64.in_alphabet("123")) self.assertTrue(self.sb64.in_alphabet("+/")) self.assertFalse(self.sb64.in_alphabet("-_")) self.assertFalse(self.sb64.in_alphabet("!~"))