Mercurial > hg
view tests/test-simplekeyvaluefile.py @ 31568:6c9772867344
pycompat: remove urlunquote alias
It is duplicated by urlreq.unquote and is unused. Kill it.
We retain the imports because it is re-exported via util.urlparse,
which is used elsewhere.
Since we no longer access attributes of urlparse at module load time,
this change /should/ result in that module reverting to a lazy module.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 21 Mar 2017 22:28:16 -0700 |
parents | 56acc4250900 |
children | c6921568cd20 |
line wrap: on
line source
from __future__ import absolute_import import unittest import silenttestrunner from mercurial import ( error, scmutil, ) class mockfile(object): def __init__(self, name, fs): self.name = name self.fs = fs def __enter__(self): return self def __exit__(self, *args, **kwargs): pass def write(self, text): self.fs.contents[self.name] = text def read(self): return self.fs.contents[self.name] class mockvfs(object): def __init__(self): self.contents = {} def read(self, path): return mockfile(path, self).read() def readlines(self, path): return mockfile(path, self).read().split('\n') def __call__(self, path, mode, atomictemp): return mockfile(path, self) class testsimplekeyvaluefile(unittest.TestCase): def setUp(self): self.vfs = mockvfs() def testbasicwriting(self): d = {'key1': 'value1', 'Key2': 'value2'} scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) self.assertEqual(sorted(self.vfs.read('kvfile').split('\n')), ['', 'Key2=value2', 'key1=value1']) def testinvalidkeys(self): d = {'0key1': 'value1', 'Key2': 'value2'} with self.assertRaisesRegexp(error.ProgrammingError, "keys must start with a letter.*"): scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) d = {'key1@': 'value1', 'Key2': 'value2'} with self.assertRaisesRegexp(error.ProgrammingError, "invalid key.*"): scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) def testinvalidvalues(self): d = {'key1': 'value1', 'Key2': 'value2\n'} with self.assertRaisesRegexp(error.ProgrammingError, "invalid val.*"): scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write(d) def testcorruptedfile(self): self.vfs.contents['badfile'] = 'ababagalamaga\n' with self.assertRaisesRegexp(error.CorruptedState, "dictionary.*element.*"): scmutil.simplekeyvaluefile(self.vfs, 'badfile').read() if __name__ == "__main__": silenttestrunner.main(__name__)