[PATCH 02 of 27 clfilter V2] test: use proper subclassing in `test-issue2137.t`
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Mon Oct 8 21:37:53 UTC 2012
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1349703349 -7200
# Node ID c205fd08ffc2bfa2b557830bc0b16bfb0cf2c9f9
# Parent 3eb798404dbe22c6f6aa552d4196a1af5370d3a9
test: use proper subclassing in `test-issue2137.t`.
To use changelog filtering on the repository, we plan to use "proxy" object that
perfectly mock a repository but with a filtered changelog.
Altering the `repo.commit` function `extensions.wrapfunction` will prevent the
logic to propagate to the proxy class by the man of inheritance.
We changes the extension to use subclassing as expectable.
diff --git a/tests/test-issue2137.t b/tests/test-issue2137.t
--- a/tests/test-issue2137.t
+++ b/tests/test-issue2137.t
@@ -12,15 +12,15 @@
> from mercurial import extensions, node, revlog
>
> def reposetup(ui, repo):
- > def wrapcommit(orig, *args, **kwargs):
- > result = orig(*args, **kwargs)
- > tip1 = node.short(repo.changelog.tip())
- > tip2 = node.short(repo.lookup(tip1))
- > assert tip1 == tip2
- > ui.write('new tip: %s\n' % tip1)
- > return result
- >
- > extensions.wrapfunction(repo, 'commit', wrapcommit)
+ > class wraprepo(repo.__class__):
+ > def commit(self, *args, **kwargs):
+ > result = super(wraprepo, self).commit(*args, **kwargs)
+ > tip1 = node.short(repo.changelog.tip())
+ > tip2 = node.short(repo.lookup(tip1))
+ > assert tip1 == tip2
+ > ui.write('new tip: %s\n' % tip1)
+ > return result
+ > repo.__class__ = wraprepo
>
> def extsetup(ui):
> revlog._maxinline = 8 # split out 00changelog.d early
More information about the Mercurial-devel
mailing list