test-sshserver.py
50 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
/ tests / test-sshserver.py
Siddharth Agarwal
|
r35770 | from __future__ import absolute_import, print_function | ||
import io | ||||
import unittest | ||||
import silenttestrunner | ||||
from mercurial import ( | ||||
Matt Harbison
|
r35790 | util, | ||
Siddharth Agarwal
|
r35770 | wireproto, | ||
Gregory Szorc
|
r35877 | wireprotoserver, | ||
Siddharth Agarwal
|
r35770 | ) | ||
class SSHServerGetArgsTests(unittest.TestCase): | ||||
def testparseknown(self): | ||||
tests = [ | ||||
Gregory Szorc
|
r36230 | (b'* 0\nnodes 0\n', [b'', {}]), | ||
(b'* 0\nnodes 40\n1111111111111111111111111111111111111111\n', | ||||
[b'1111111111111111111111111111111111111111', {}]), | ||||
Siddharth Agarwal
|
r35770 | ] | ||
for input, expected in tests: | ||||
Gregory Szorc
|
r36230 | self.assertparse(b'known', input, expected) | ||
Siddharth Agarwal
|
r35770 | |||
def assertparse(self, cmd, input, expected): | ||||
server = mockserver(input) | ||||
Gregory Szorc
|
r36232 | proto = wireprotoserver.sshv1protocolhandler(server._ui, | ||
server._fin, | ||||
server._fout) | ||||
Siddharth Agarwal
|
r35770 | _func, spec = wireproto.commands[cmd] | ||
Gregory Szorc
|
r36232 | self.assertEqual(proto.getargs(spec), expected) | ||
Siddharth Agarwal
|
r35770 | |||
def mockserver(inbytes): | ||||
ui = mockui(inbytes) | ||||
repo = mockrepo(ui) | ||||
Gregory Szorc
|
r35877 | return wireprotoserver.sshserver(ui, repo) | ||
Siddharth Agarwal
|
r35770 | |||
class mockrepo(object): | ||||
def __init__(self, ui): | ||||
self.ui = ui | ||||
class mockui(object): | ||||
def __init__(self, inbytes): | ||||
self.fin = io.BytesIO(inbytes) | ||||
self.fout = io.BytesIO() | ||||
self.ferr = io.BytesIO() | ||||
if __name__ == '__main__': | ||||
Matt Harbison
|
r35790 | # Don't call into msvcrt to set BytesIO to binary mode | ||
util.setbinary = lambda fp: True | ||||
Siddharth Agarwal
|
r35770 | silenttestrunner.main(__name__) | ||