tests/test_urltree.py
changeset 80 94c493b7c046
parent 79 747554808944
child 81 847da3c265b5
equal deleted inserted replaced
79:747554808944 80:94c493b7c046
   168         self.assertEqual(str(self.label_default_0), "{test:int=0}")
   168         self.assertEqual(str(self.label_default_0), "{test:int=0}")
   169         self.assertEqual(str(self.label_default_1), "{test:int=1}")
   169         self.assertEqual(str(self.label_default_1), "{test:int=1}")
   170         self.assertEqual(str(self.label_str), "{test}")
   170         self.assertEqual(str(self.label_str), "{test}")
   171         self.assertEqual(str(self.label_str_default), "{test=def}")
   171         self.assertEqual(str(self.label_str_default), "{test=def}")
   172 
   172 
       
   173 class TestStringType (unittest.TestCase) :
       
   174     def setUp (self) :
       
   175         self.type = urltree.URLStringType()
       
   176 
       
   177     def test_test (self) :
       
   178         self.assertTrue(self.type.test(""))
       
   179         self.assertTrue(self.type.test("xxx"))
       
   180     
       
   181     def test_parse (self) :
       
   182         self.assertEqual(self.type.parse(""), "")
       
   183         self.assertEqual(self.type.parse("xxx"), "xxx")
       
   184     
       
   185     def test_build (self) :
       
   186         self.assertEqual(self.type.build(""), "")
       
   187         self.assertEqual(self.type.build("xxx"), "xxx")
       
   188         self.assertEqual(self.type.build("äää"), "äää")
       
   189 
       
   190 class TestIntegerType (unittest.TestCase) :
       
   191     def setUp (self) :
       
   192         self.type = urltree.URLIntegerType()
       
   193         self.type_positive = urltree.URLIntegerType(allow_negative=False)
       
   194         self.type_nonzero = urltree.URLIntegerType(allow_zero=False)
       
   195         self.type_max_5 = urltree.URLIntegerType(max=5)
       
   196 
       
   197     def test_test (self) :
       
   198         self.assertTrue(self.type.test("1"))
       
   199         self.assertFalse(self.type.test("xx"))
       
   200         self.assertTrue(self.type_positive.test("1"))
       
   201         self.assertFalse(self.type_positive.test("-1"))
       
   202         self.assertTrue(self.type_nonzero.test("1"))
       
   203         self.assertFalse(self.type_nonzero.test("0"))
       
   204         self.assertTrue(self.type_max_5.test("5"))
       
   205         self.assertFalse(self.type_max_5.test("6"))
       
   206     
       
   207     def test_parse_invalid (self) :
       
   208         self.assertRaises(ValueError, self.type.parse, "xx")
       
   209         self.assertRaises(ValueError, self.type_nonzero.parse, "0")
       
   210 
       
   211     def test_parse_valid (self) :
       
   212         self.assertEqual(self.type.parse("0"), 0)
       
   213         self.assertEqual(self.type.parse("2"), 2)
       
   214         self.assertEqual(self.type_nonzero.parse("3"), 3)
       
   215     
       
   216     def test_append (self) :
       
   217         self.assertRaises(URLError, self.type.append, 0, 1)
       
   218 
       
   219     def test_build (self) :
       
   220         self.assertEqual(self.type.build(0), "0")
       
   221         self.assertEqual(self.type.build(5), "5")
       
   222         self.assertEqual(self.type_positive.build(1), "1")
       
   223         self.assertEqual(self.type_nonzero.build(1), "1")
       
   224         self.assertEqual(self.type_max_5.build(5), "5")
       
   225     
       
   226     def test_build_invalid (self) :
       
   227         self.assertRaises(ValueError, self.type_positive.build, -1)
       
   228         self.assertRaises(ValueError, self.type_nonzero.build, 0)
       
   229         self.assertRaises(ValueError, self.type_max_5.build, 5)
       
   230 
       
   231     def test_build_multi (self) :
       
   232         self.assertEqual(self.type.build(0), ["0"])
       
   233    
       
   234 class TestListType (unittest.TestCase) :
       
   235     def setUp (self) :
       
   236         self.type = urltree.URLListType()
       
   237 
       
   238     def test_parse (self) :
       
   239         self.assertEqual(self.type.parse("x"), ["x"])
       
   240         self.assertEqual(self.type.parse(""), [""])
       
   241     
       
   242     def test_append (self) :
       
   243         self.assertEqual(self.type.append(["x"], ["y"]), ["x", "y"])
       
   244 
       
   245     def test_build_multi (self) :
       
   246         self.assertEqual(self.type.build_multi(["x", "y"]), ["x", "y"])
       
   247 
       
   248 class TestConfig (unittest.TestCase) :
       
   249     def test_init (self) :
       
   250         urltree.URLConfig(type_dict=dict(foo=None), ignore_extra_args=True)
       
   251 
       
   252     def test_get_type (self) :
       
   253         self.assertEquals(urltree.URLConfig(dict(foo='xxx')).get_type('foo'), 'xxx')
       
   254 
       
   255     def test_call (self) :
       
   256         config = urltree.URLConfig()
       
   257         url = config("foo", None)
       
   258 
       
   259         self.assertTrue(isinstance(url, urltree.URL))
       
   260         self.assertTrue(url in config.urls)
       
   261     
       
   262     def test_iter (self) :
       
   263         config = urltree.URLConfig()
       
   264         url1 = config("foo1", None)
       
   265         url2 = config("foo2", None)
       
   266 
       
   267         urls = list(config)
       
   268 
       
   269         self.assertTrue(urls[0].url_mask == "foo1")
       
   270         self.assertTrue(urls[1].url_mask == "foo2")
       
   271