tests/test_urltree.py
changeset 80 94c493b7c046
parent 79 747554808944
child 81 847da3c265b5
--- a/tests/test_urltree.py	Mon Feb 16 19:46:19 2009 +0200
+++ b/tests/test_urltree.py	Mon Feb 16 20:02:28 2009 +0200
@@ -170,3 +170,102 @@
         self.assertEqual(str(self.label_str), "{test}")
         self.assertEqual(str(self.label_str_default), "{test=def}")
 
+class TestStringType (unittest.TestCase) :
+    def setUp (self) :
+        self.type = urltree.URLStringType()
+
+    def test_test (self) :
+        self.assertTrue(self.type.test(""))
+        self.assertTrue(self.type.test("xxx"))
+    
+    def test_parse (self) :
+        self.assertEqual(self.type.parse(""), "")
+        self.assertEqual(self.type.parse("xxx"), "xxx")
+    
+    def test_build (self) :
+        self.assertEqual(self.type.build(""), "")
+        self.assertEqual(self.type.build("xxx"), "xxx")
+        self.assertEqual(self.type.build("äää"), "äää")
+
+class TestIntegerType (unittest.TestCase) :
+    def setUp (self) :
+        self.type = urltree.URLIntegerType()
+        self.type_positive = urltree.URLIntegerType(allow_negative=False)
+        self.type_nonzero = urltree.URLIntegerType(allow_zero=False)
+        self.type_max_5 = urltree.URLIntegerType(max=5)
+
+    def test_test (self) :
+        self.assertTrue(self.type.test("1"))
+        self.assertFalse(self.type.test("xx"))
+        self.assertTrue(self.type_positive.test("1"))
+        self.assertFalse(self.type_positive.test("-1"))
+        self.assertTrue(self.type_nonzero.test("1"))
+        self.assertFalse(self.type_nonzero.test("0"))
+        self.assertTrue(self.type_max_5.test("5"))
+        self.assertFalse(self.type_max_5.test("6"))
+    
+    def test_parse_invalid (self) :
+        self.assertRaises(ValueError, self.type.parse, "xx")
+        self.assertRaises(ValueError, self.type_nonzero.parse, "0")
+
+    def test_parse_valid (self) :
+        self.assertEqual(self.type.parse("0"), 0)
+        self.assertEqual(self.type.parse("2"), 2)
+        self.assertEqual(self.type_nonzero.parse("3"), 3)
+    
+    def test_append (self) :
+        self.assertRaises(URLError, self.type.append, 0, 1)
+
+    def test_build (self) :
+        self.assertEqual(self.type.build(0), "0")
+        self.assertEqual(self.type.build(5), "5")
+        self.assertEqual(self.type_positive.build(1), "1")
+        self.assertEqual(self.type_nonzero.build(1), "1")
+        self.assertEqual(self.type_max_5.build(5), "5")
+    
+    def test_build_invalid (self) :
+        self.assertRaises(ValueError, self.type_positive.build, -1)
+        self.assertRaises(ValueError, self.type_nonzero.build, 0)
+        self.assertRaises(ValueError, self.type_max_5.build, 5)
+
+    def test_build_multi (self) :
+        self.assertEqual(self.type.build(0), ["0"])
+   
+class TestListType (unittest.TestCase) :
+    def setUp (self) :
+        self.type = urltree.URLListType()
+
+    def test_parse (self) :
+        self.assertEqual(self.type.parse("x"), ["x"])
+        self.assertEqual(self.type.parse(""), [""])
+    
+    def test_append (self) :
+        self.assertEqual(self.type.append(["x"], ["y"]), ["x", "y"])
+
+    def test_build_multi (self) :
+        self.assertEqual(self.type.build_multi(["x", "y"]), ["x", "y"])
+
+class TestConfig (unittest.TestCase) :
+    def test_init (self) :
+        urltree.URLConfig(type_dict=dict(foo=None), ignore_extra_args=True)
+
+    def test_get_type (self) :
+        self.assertEquals(urltree.URLConfig(dict(foo='xxx')).get_type('foo'), 'xxx')
+
+    def test_call (self) :
+        config = urltree.URLConfig()
+        url = config("foo", None)
+
+        self.assertTrue(isinstance(url, urltree.URL))
+        self.assertTrue(url in config.urls)
+    
+    def test_iter (self) :
+        config = urltree.URLConfig()
+        url1 = config("foo1", None)
+        url2 = config("foo2", None)
+
+        urls = list(config)
+
+        self.assertTrue(urls[0].url_mask == "foo1")
+        self.assertTrue(urls[1].url_mask == "foo2")
+