Mercurial > python-hglib
annotate tests/with_hg.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 | 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 |