49 self.assertEqual(sorted(self.vfs.read('kvfile').split('\n')), |
49 self.assertEqual(sorted(self.vfs.read('kvfile').split('\n')), |
50 ['', 'Key2=value2', 'key1=value1']) |
50 ['', 'Key2=value2', 'key1=value1']) |
51 dr = scmutil.simplekeyvaluefile(self.vfs, 'kvfile').read() |
51 dr = scmutil.simplekeyvaluefile(self.vfs, 'kvfile').read() |
52 self.assertEqual(dr, dw) |
52 self.assertEqual(dr, dw) |
53 |
53 |
|
54 if not getattr(unittest.TestCase, 'assertRaisesRegex', False): |
|
55 # Python 3.7 deprecates the regex*p* version, but 2.7 lacks |
|
56 # the regex version. |
|
57 assertRaisesRegex = (# camelcase-required |
|
58 unittest.TestCase.assertRaisesRegexp) |
|
59 |
54 def testinvalidkeys(self): |
60 def testinvalidkeys(self): |
55 d = {'0key1': 'value1', 'Key2': 'value2'} |
61 d = {'0key1': 'value1', 'Key2': 'value2'} |
56 with self.assertRaisesRegexp(error.ProgrammingError, |
62 with self.assertRaisesRegex(error.ProgrammingError, |
57 'keys must start with a letter.*'): |
63 'keys must start with a letter.*'): |
58 scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) |
64 scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) |
59 |
65 |
60 d = {'key1@': 'value1', 'Key2': 'value2'} |
66 d = {'key1@': 'value1', 'Key2': 'value2'} |
61 with self.assertRaisesRegexp(error.ProgrammingError, 'invalid key.*'): |
67 with self.assertRaisesRegex(error.ProgrammingError, 'invalid key.*'): |
62 scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) |
68 scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) |
63 |
69 |
64 def testinvalidvalues(self): |
70 def testinvalidvalues(self): |
65 d = {'key1': 'value1', 'Key2': 'value2\n'} |
71 d = {'key1': 'value1', 'Key2': 'value2\n'} |
66 with self.assertRaisesRegexp(error.ProgrammingError, 'invalid val.*'): |
72 with self.assertRaisesRegex(error.ProgrammingError, 'invalid val.*'): |
67 scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) |
73 scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) |
68 |
74 |
69 def testcorruptedfile(self): |
75 def testcorruptedfile(self): |
70 self.vfs.contents['badfile'] = 'ababagalamaga\n' |
76 self.vfs.contents['badfile'] = 'ababagalamaga\n' |
71 with self.assertRaisesRegexp(error.CorruptedState, |
77 with self.assertRaisesRegex(error.CorruptedState, |
72 'dictionary.*element.*'): |
78 'dictionary.*element.*'): |
73 scmutil.simplekeyvaluefile(self.vfs, 'badfile').read() |
79 scmutil.simplekeyvaluefile(self.vfs, 'badfile').read() |
74 |
80 |
75 def testfirstline(self): |
81 def testfirstline(self): |
76 dw = {'key1': 'value1'} |
82 dw = {'key1': 'value1'} |