annotate tests/test-hglib.py @ 180:ff6efc1ab9e4

protocol: allow hglib user to get call backs for prompts, output and errors setcbout(cbout), setcberr(cberr) and setcbprompt(cbprompt) are used to set the call back function used by the hgclient class. cb stands for call back. cbout is a function that will be called with the stdout data of the command as it runs. cbout is called with output as it is made available, which can be as partial lines or multiple lines. cberr is a function that will be called with the stderr data of the command as it runs. cberr is called with output as it is made available, which can be as partial lines or multiple lines. Command that make remote connects can prompt for username and password for HTTP/HTTPS connections. cbprompt is called when hgclient need a response to a prompt from the server. It receives the max number of bytes to return and the contents of stdout received so far. The last text sent to either cbout or cberr will contain the prompt text itself.
author Barry A. Scott <barry@barrys-emacs.org>
date Fri, 28 Oct 2016 11:33:20 +0100
parents e6589149b2c8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
148
c1b966866ed7 hglib: make all imports absolute (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
1 from tests import common
c1b966866ed7 hglib: make all imports absolute (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
2 import hglib
62
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
3
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
4 class test_hglib(common.basetest):
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
5 def setUp(self):
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
6 pass
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
7
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
8 def test_close_fds(self):
134
1b47146a4a2c style: fix long lines
Matt Mackall <mpm@selenic.com>
parents: 62
diff changeset
9 """A weird Python bug that has something to do to inherited file
1b47146a4a2c style: fix long lines
Matt Mackall <mpm@selenic.com>
parents: 62
diff changeset
10 descriptors, see http://bugs.python.org/issue12786
62
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
11 """
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
12 common.basetest.setUp(self)
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
13 client2 = hglib.open()
d1f57f162274 closefds on posix when using subprocess
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
14 self.client.close()
169
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
15
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
16 def test_open_nonexistent(self):
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
17 # setup stuff necessary for basetest.tearDown()
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
18 self.clients = []
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
19 self._oldopen = hglib.client.hgclient.open
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
20 try:
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
21 self.clients.append(hglib.open('inexistent'))
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
22 # hg 3.5 can't report error (fixed by 7332bf4ae959)
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
23 #self.fail('ServerError not raised')
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
24 except hglib.error.ServerError as inst:
e6589149b2c8 client: include stderr message in ServerError on initial communication failure
Yuya Nishihara <yuya@tcha.org>
parents: 148
diff changeset
25 self.assertTrue('inexistent' in str(inst))