1
2 import tempfile
3
4 from rats import flatconfig
5
6 from twisted.trial import unittest
7 from twisted.internet import defer
8 from twisted.internet import reactor
9 from twisted.python import failure
10
11 VERBOSE = False
16
17
20 self.file_name = tempfile.mktemp()
21 verb("File name : " + self.file_name)
22 f = file(self.file_name, "w")
23 f.write("""
24 # this is a comment
25 "ham"=spam
26 egg="bacon and toast"
27 egg="cheese"
28 number =2
29 number= 3
30 bool_val = yes
31 """)
32 f.close()
33
36
38 cp = flatconfig.ConfigParser()
39 cp.read(self.file_name)
40 res = cp.items()
41 verb("Result is %s" % (res))
42 has_ham = False
43 num_eggs = 0
44 for k, v in res:
45 if k == "egg":
46 num_eggs += 1
47 elif k == "ham":
48 has_ham = True
49 if not has_ham:
50 self.fail("Expected key \"ham\" not found.")
51 if num_eggs != 2:
52 self.fail("Expected %s times the key %s, but found it %s times." % (2, "egg", num_eggs))
53
54 expected_length = 6
55 if len(res) != expected_length:
56 self.fail("Expected a list of %d items, but has %s." % (expected_length, len(res)))
57 dict_len = 4
58 d = dict(res)
59 if len(d) != dict_len:
60 self.fail("Expected a dict of %d items, but has %s." % (dict_len, len(d)))
61
63 cp = flatconfig.ConfigParser()
64 cp.read(self.file_name)
65
66 numbers = cp.get_list("number", int)
67 if len(numbers) != 2:
68 self.fail("Expected two values with the \"number\" option name.")
69 for i in [2, 3]:
70 if i not in numbers:
71 self.fail("Could not find value %d" % (i))
72
80
81
84 self.file_name = tempfile.mktemp()
85 verb("File name : " + self.file_name)
86 f = file(self.file_name, "w")
87 f.write("""
88 # this is a comment
89 "ham" =
90 """)
91 f.close()
92
95
105
115