Mercurial > hg
view tests/test-simplekeyvaluefile.py @ 31769:594dd384803c
test-serve: make the 'listening at *' lines optional
The daemonized serve process doesn't print these lines out (see 448d0c452140).
I was able to get it to with the following hack:
diff --git a/mercurial/win32.py b/mercurial/win32.py
--- a/mercurial/win32.py
+++ b/mercurial/win32.py
@@ -418,6 +418,11 @@
return str(ppid)
def spawndetached(args):
+
+ import subprocess
+ return subprocess.Popen(args, cwd=pycompat.getcwd(), env=encoding.environ,
+ creationflags=subprocess.CREATE_NEW_PROCESS_GROUP).pid
+
# No standard library function really spawns a fully detached
# process under win32 because they allocate pipes or other objects
# to handle standard streams communications. Passing these objects
However, MSYS translates --prefixes starting with '/' to 'C:/MinGW/msys/1.0',
which changes the output. The output isn't so important that I want to spend a
bunch of time on this, and risk breaking some subtle behavior of `hg serve -d`
with the more complicated code.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 02 Apr 2017 00:56:52 -0400 |
parents | c6921568cd20 |
children | ed2c44741190 |
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'} self.assertRaises(error.ProgrammingError, scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write, d) d = {'key1@': 'value1', 'Key2': 'value2'} self.assertRaises(error.ProgrammingError, scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write, d) def testinvalidvalues(self): d = {'key1': 'value1', 'Key2': 'value2\n'} self.assertRaises(error.ProgrammingError, scmutil.simplekeyvaluefile(self.vfs, 'kvfile').write, d) def testcorruptedfile(self): self.vfs.contents['badfile'] = 'ababagalamaga\n' self.assertRaises(error.CorruptedState, scmutil.simplekeyvaluefile(self.vfs, 'badfile').read) if __name__ == "__main__": silenttestrunner.main(__name__)