diff --git a/heptapod/testhelpers.py b/heptapod/testhelpers.py index e7762e3b26d62b07c390178b09cb67356b148330_aGVwdGFwb2QvdGVzdGhlbHBlcnMucHk=..e79710251b38b6b98feb76def5225363f27541f6_aGVwdGFwb2QvdGVzdGhlbHBlcnMucHk= 100644 --- a/heptapod/testhelpers.py +++ b/heptapod/testhelpers.py @@ -126,9 +126,9 @@ message=message)) return repo[new_node] if return_ctx else new_node - def update_bin(self, bin_node): + def update_bin(self, bin_node, **opts): """Update to a revision specified by its node in binary form. This is separated in order to avoid ambiguities """ # maybe we'll do something lower level later @@ -130,7 +130,7 @@ """Update to a revision specified by its node in binary form. This is separated in order to avoid ambiguities """ # maybe we'll do something lower level later - self.update(node.hex(bin_node)) + self.update(node.hex(bin_node), **opts) @@ -136,6 +136,6 @@ - def update(self, rev): - repo = self.repo + def update(self, rev, hidden=False): + repo = self.repo.unfiltered() if hidden else self.repo cmdutil.findcmd('update', commands.table)[1][0](repo.ui, repo, rev) def set_phase(self, phase_name, revs, force=True): diff --git a/heptapod/tests/test_testhelpers.py b/heptapod/tests/test_testhelpers.py index e7762e3b26d62b07c390178b09cb67356b148330_aGVwdGFwb2QvdGVzdHMvdGVzdF90ZXN0aGVscGVycy5weQ==..e79710251b38b6b98feb76def5225363f27541f6_aGVwdGFwb2QvdGVzdHMvdGVzdF90ZXN0aGVscGVycy5weQ== 100644 --- a/heptapod/tests/test_testhelpers.py +++ b/heptapod/tests/test_testhelpers.py @@ -4,8 +4,9 @@ # GNU General Public License version 2 or any later version. from __future__ import absolute_import from mercurial import ( + error, extensions, phases, ui as uimod, ) from os.path import dirname @@ -7,8 +8,9 @@ extensions, phases, ui as uimod, ) from os.path import dirname +import pytest from ..testhelpers import ( LocalRepoWrapper, @@ -173,10 +175,10 @@ assert ctx.phase() == phases.draft -def test_prune(tmpdir): +def test_prune_update_hidden(tmpdir): wrapper = LocalRepoWrapper.init(tmpdir, config=dict(extensions=dict(evolve=''))) wrapper.write_commit('foo', content='Foo 0') ctx = wrapper.write_commit('foo', content='Foo 1', return_ctx=True) wrapper.prune('.') assert ctx.obsolete() @@ -177,6 +179,15 @@ wrapper = LocalRepoWrapper.init(tmpdir, config=dict(extensions=dict(evolve=''))) wrapper.write_commit('foo', content='Foo 0') ctx = wrapper.write_commit('foo', content='Foo 1', return_ctx=True) wrapper.prune('.') assert ctx.obsolete() + + wrapper.update(0) + assert tmpdir.join('foo').read() == 'Foo 0' + + with pytest.raises(error.FilteredRepoLookupError): + wrapper.update(ctx.hex()) + + wrapper.update_bin(ctx.node(), hidden=True) + assert tmpdir.join('foo').read() == 'Foo 1'