[PATCH 6 of 7] hgclient: handle cStringIO.StringIO/io.StringIO divergence
timeless
timeless at mozdev.org
Wed Apr 6 17:57:43 EDT 2016
# HG changeset patch
# User timeless <timeless at mozdev.org>
# Date 1459974874 0
# Wed Apr 06 20:34:34 2016 +0000
# Node ID 5d3336fefe3a4df0f907980361be7c5b3947eab3
# Parent d169dc85e6b39805caf94a212bcdb3d58593a97e
hgclient: handle cStringIO.StringIO/io.StringIO divergence
diff --git a/contrib/hgclient.py b/contrib/hgclient.py
--- a/contrib/hgclient.py
+++ b/contrib/hgclient.py
@@ -1,7 +1,6 @@
# A minimal client for Mercurial's command server
from __future__ import absolute_import, print_function
-import cStringIO
import os
import signal
import socket
@@ -10,6 +9,12 @@
import sys
import time
+try:
+ import cStringIO as io
+except ImportError:
+ import io
+stringio = io.StringIO
+
def connectpipe(path=None):
cmdline = ['hg', 'serve', '--cmdserver', 'pipe']
if path:
@@ -83,7 +88,7 @@
writeblock(server, '\0'.join(args))
if not input:
- input = cStringIO.StringIO()
+ input = stringio()
while True:
ch, data = readchannel(server)
diff --git a/tests/test-commandserver.t b/tests/test-commandserver.t
--- a/tests/test-commandserver.t
+++ b/tests/test-commandserver.t
@@ -102,8 +102,7 @@
... print 'server exit code =', server.wait()
server exit code = 1
- >>> import cStringIO
- >>> from hgclient import readchannel, runcommand, check
+ >>> from hgclient import readchannel, runcommand, check, stringio
>>> @check
... def serverinput(server):
... readchannel(server)
@@ -123,7 +122,7 @@
... +1
... """
...
- ... runcommand(server, ['import', '-'], input=cStringIO.StringIO(patch))
+ ... runcommand(server, ['import', '-'], input=stringio(patch))
... runcommand(server, ['log'])
*** runcommand import -
applying patch from stdin
@@ -211,15 +210,14 @@
> print 'now try to read something: %r' % sys.stdin.read()
> EOF
- >>> import cStringIO
- >>> from hgclient import readchannel, runcommand, check
+ >>> from hgclient import readchannel, runcommand, check, stringio
>>> @check
... def hookoutput(server):
... readchannel(server)
... runcommand(server, ['--config',
... 'hooks.pre-identify=python:hook.hook',
... 'id'],
- ... input=cStringIO.StringIO('some input'))
+ ... input=stringio('some input'))
*** runcommand --config hooks.pre-identify=python:hook.hook id
hook talking
now try to read something: 'some input'
@@ -587,17 +585,16 @@
> dbgui = dbgui.py
> EOF
- >>> import cStringIO
- >>> from hgclient import readchannel, runcommand, check
+ >>> from hgclient import readchannel, runcommand, check, stringio
>>> @check
... def getpass(server):
... readchannel(server)
... runcommand(server, ['debuggetpass', '--config',
... 'ui.interactive=True'],
- ... input=cStringIO.StringIO('1234\n'))
+ ... input=stringio('1234\n'))
... runcommand(server, ['debugprompt', '--config',
... 'ui.interactive=True'],
- ... input=cStringIO.StringIO('5678\n'))
+ ... input=stringio('5678\n'))
... runcommand(server, ['debugreadstdin'])
... runcommand(server, ['debugwritestdout'])
*** runcommand debuggetpass --config ui.interactive=True
@@ -611,14 +608,13 @@
run commandserver in commandserver, which is silly but should work:
- >>> import cStringIO
- >>> from hgclient import readchannel, runcommand, check
+ >>> from hgclient import readchannel, runcommand, check, stringio
>>> @check
... def nested(server):
... print '%c, %r' % readchannel(server)
... class nestedserver(object):
- ... stdin = cStringIO.StringIO('getencoding\n')
- ... stdout = cStringIO.StringIO()
+ ... stdin = stringio('getencoding\n')
+ ... stdout = stringio()
... runcommand(server, ['serve', '--cmdserver', 'pipe'],
... output=nestedserver.stdout, input=nestedserver.stdin)
... nestedserver.stdout.seek(0)
@@ -674,8 +670,7 @@
#if unix-socket unix-permissions
- >>> import cStringIO
- >>> from hgclient import unixserver, readchannel, runcommand, check
+ >>> from hgclient import unixserver, readchannel, runcommand, check, stringio
>>> server = unixserver('.hg/server.sock', '.hg/server.log')
>>> def hellomessage(conn):
... ch, data = readchannel(conn)
@@ -704,7 +699,7 @@
... 1
... +2
... """
- ... runcommand(conn, ['import', '-'], input=cStringIO.StringIO(patch))
+ ... runcommand(conn, ['import', '-'], input=stringio(patch))
... runcommand(conn, ['log', '-rtip', '-q'])
>>> check(serverinput, server.connect)
*** runcommand import -
More information about the Mercurial-devel
mailing list