OLD | NEW |
| (Empty) |
1 # Copyright (c) 2001-2004 Twisted Matrix Laboratories. | |
2 # See LICENSE for details. | |
3 | |
4 | |
5 """ | |
6 Test cases for formmethod module. | |
7 """ | |
8 | |
9 from twisted.trial import unittest | |
10 | |
11 from twisted.python import formmethod | |
12 | |
13 | |
14 class ArgumentTestCase(unittest.TestCase): | |
15 | |
16 def argTest(self, argKlass, testPairs, badValues, *args, **kwargs): | |
17 arg = argKlass("name", *args, **kwargs) | |
18 for val, result in testPairs: | |
19 self.assertEquals(arg.coerce(val), result) | |
20 for val in badValues: | |
21 self.assertRaises(formmethod.InputError, arg.coerce, val) | |
22 | |
23 def testString(self): | |
24 self.argTest(formmethod.String, [("a", "a"), (1, "1"), ("", "")], ()) | |
25 self.argTest(formmethod.String, [("ab", "ab"), ("abc", "abc")], ("2", ""
), min=2) | |
26 self.argTest(formmethod.String, [("ab", "ab"), ("a", "a")], ("223213", "
345x"), max=3) | |
27 self.argTest(formmethod.String, [("ab", "ab"), ("add", "add")], ("223213
", "x"), min=2, max=3) | |
28 | |
29 def testInt(self): | |
30 self.argTest(formmethod.Integer, [("3", 3), ("-2", -2), ("", None)], ("q
", "2.3")) | |
31 self.argTest(formmethod.Integer, [("3", 3), ("-2", -2)], ("q", "2.3", ""
), allowNone=0) | |
32 | |
33 def testFloat(self): | |
34 self.argTest(formmethod.Float, [("3", 3.0), ("-2.3", -2.3), ("", None)],
("q", "2.3z")) | |
35 self.argTest(formmethod.Float, [("3", 3.0), ("-2.3", -2.3)], ("q", "2.3z
", ""), | |
36 allowNone=0) | |
37 | |
38 def testChoice(self): | |
39 choices = [("a", "apple", "an apple"), | |
40 ("b", "banana", "ook")] | |
41 self.argTest(formmethod.Choice, [("a", "apple"), ("b", "banana")], | |
42 ("c", 1), choices=choices) | |
43 | |
44 def testFlags(self): | |
45 flags = [("a", "apple", "an apple"), | |
46 ("b", "banana", "ook")] | |
47 self.argTest(formmethod.Flags, | |
48 [(["a"], ["apple"]), (["b", "a"], ["banana", "apple"])], | |
49 (["a", "c"], ["fdfs"]), | |
50 flags=flags) | |
51 | |
52 def testBoolean(self): | |
53 tests = [("yes", 1), ("", 0), ("False", 0), ("no", 0)] | |
54 self.argTest(formmethod.Boolean, tests, ()) | |
55 | |
56 def testDate(self): | |
57 goodTests = { | |
58 ("2002", "12", "21"): (2002, 12, 21), | |
59 ("1996", "2", "29"): (1996, 2, 29), | |
60 ("", "", ""): None, | |
61 }.items() | |
62 badTests = [("2002", "2", "29"), ("xx", "2", "3"), | |
63 ("2002", "13", "1"), ("1999", "12","32"), | |
64 ("2002", "1"), ("2002", "2", "3", "4")] | |
65 self.argTest(formmethod.Date, goodTests, badTests) | |
66 | |
67 def testRangedInteger(self): | |
68 goodTests = {"0": 0, "12": 12, "3": 3}.items() | |
69 badTests = ["-1", "x", "13", "-2000", "3.4"] | |
70 self.argTest(formmethod.IntegerRange, goodTests, badTests, 0, 12) | |
71 | |
72 def testVerifiedPassword(self): | |
73 goodTests = {("foo", "foo"): "foo", ("ab", "ab"): "ab"}.items() | |
74 badTests = [("ab", "a"), ("12345", "12345"), ("", ""), ("a", "a"), ("a",
), ("a", "a", "a")] | |
75 self.argTest(formmethod.VerifiedPassword, goodTests, badTests, min=2, ma
x=4) | |
76 | |
77 | |
OLD | NEW |