Mercurial > python-hglib
view tests/test-merge.py @ 197:6949fc164439 2.5
hgclient: look for an open server before closing it in ResponseError block
At least some of the codepaths that can throw a ResponseError close
the server first (the one in _readchannel does so in order to detect
server startup failures, for example), so we have to verify we have a
server to close before doing so, otherwise we can lose the
ResponseError and the user sees an AttributeError when we try to use
.close() on a NoneType.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sun, 10 Dec 2017 12:52:37 -0500 |
parents | 8c4d24b58c23 |
children |
line wrap: on
line source
from tests import common import hglib from hglib.util import b class test_merge(common.basetest): def setUp(self): common.basetest.setUp(self) self.append('a', 'a') rev, self.node0 = self.client.commit(b('first'), addremove=True) self.append('a', 'a') rev, self.node1 = self.client.commit(b('change')) def test_basic(self): self.client.update(self.node0) self.append('b', 'a') rev, node2 = self.client.commit(b('new file'), addremove=True) self.client.merge(self.node1) rev, node = self.client.commit(b('merge')) diff = b("diff -r ") + node2[:12] + b(" -r ") + node[:12] + b(""" a --- a/a +++ b/a @@ -1,1 +1,1 @@ -a \ No newline at end of file +aa \ No newline at end of file """) self.assertEquals(diff, self.client.diff(change=node, nodates=True)) def test_merge_prompt_abort(self): self.client.update(self.node0) self.client.remove(b('a')) self.client.commit(b('remove')) self.assertRaises(hglib.error.CommandError, self.client.merge) def test_merge_prompt_noninteractive(self): self.client.update(self.node0) self.client.remove(b('a')) rev, node = self.client.commit(b('remove')) if self.client.version >= (3, 7): self.assertRaises(hglib.error.CommandError, self.client.merge, cb=hglib.merge.handlers.noninteractive) else: self.client.merge(cb=hglib.merge.handlers.noninteractive) diff = b("diff -r ") + node[:12] + b(""" a --- /dev/null +++ b/a @@ -0,0 +1,1 @@ +aa \ No newline at end of file """) self.assertEquals(diff, self.client.diff(nodates=True)) def test_merge_prompt_cb(self): self.client.update(self.node0) self.client.remove(b('a')) rev, node = self.client.commit(b('remove')) def cb(output): return b('c') self.client.merge(cb=cb) diff = b("diff -r ") + node[:12] + b(""" a --- /dev/null +++ b/a @@ -0,0 +1,1 @@ +aa \ No newline at end of file """) self.assertEquals(diff, self.client.diff(nodates=True))