# HG changeset patch # User timeless # Date 1459974874 0 # Node ID 3f45488d70df275fdee3bb6731551013461a8cd0 # Parent 68a946e8318894bd95d0a5b3726006bb61fda6ad test-commandserver: handle cStringIO.StringIO/io.StringIO divergence diff -r 68a946e83188 -r 3f45488d70df contrib/hgclient.py --- a/contrib/hgclient.py Wed Apr 06 20:31:31 2016 +0000 +++ b/contrib/hgclient.py Wed Apr 06 20:34:34 2016 +0000 @@ -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,13 @@ import sys import time +try: + import cStringIO as io + stringio = io.StringIO +except ImportError: + import io + stringio = io.StringIO + def connectpipe(path=None): cmdline = ['hg', 'serve', '--cmdserver', 'pipe'] if path: @@ -83,7 +89,7 @@ writeblock(server, '\0'.join(args)) if not input: - input = cStringIO.StringIO() + input = stringio() while True: ch, data = readchannel(server) diff -r 68a946e83188 -r 3f45488d70df tests/test-commandserver.t --- a/tests/test-commandserver.t Wed Apr 06 20:31:31 2016 +0000 +++ b/tests/test-commandserver.t Wed Apr 06 20:34:34 2016 +0000 @@ -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 -