Mercurial > public > mercurial-scm > python-hglib
annotate tests/with_hg.py @ 196:c586d02f7cda
_readchannel: if a read failure is due to a broken server, report that
We can end up in this codepath if the specified hg binary fails to
start, and we're better off reporting that than the fact that we got
no response.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sun, 10 Dec 2017 12:50:57 -0500 |
parents | f4f636ecca3e |
children |
rev | line source |
---|---|
75
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
1 import os |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
2 from nose.plugins import Plugin |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
3 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
4 class WithHgPlugin(Plugin): |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
5 name = 'with-hg' |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
6 enabled = False |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
7 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
8 def options(self, parser, env): |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
9 Plugin.options(self, parser, env) |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
10 parser.add_option('--with-hg', |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
11 action='store', |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
12 type='string', |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
13 metavar='HG', |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
14 dest='with_hg', |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
15 help='test using specified hg script.') |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
16 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
17 def configure(self, options, conf): |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
18 Plugin.configure(self, options, conf) |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
19 if options.with_hg: |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
20 self.enabled = True |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
21 self.hgpath = os.path.realpath(options.with_hg) |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
22 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
23 def begin(self): |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
24 import hglib |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
25 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
26 p = hglib.util.popen([self.hgpath, 'version']) |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
27 p.communicate() |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
28 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
29 if p.returncode: |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
30 raise ValueError("custom hg %r doesn't look like Mercurial" |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
31 % self.hgpath) |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
32 |
f4f636ecca3e
tests: add a nose plugin that allows specifying a custom hg to run tests
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
33 hglib.HGPATH = self.hgpath |