# HG changeset patch # User Yuya Nishihara # Date 1411890914 -32400 # Node ID a763159159c71310d7717b3ee773089313617d43 # Parent 78b99149ed8a015a79d6d27a7db8e1498575434e test-commandserver: remove .py test which was ported to .t diff -r 78b99149ed8a -r a763159159c7 tests/test-commandserver.py --- a/tests/test-commandserver.py Sun Sep 28 16:05:37 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,288 +0,0 @@ -import sys, os, cStringIO, re, shutil - -sys.path.insert(0, os.path.join(os.environ['TESTDIR'], '..', 'contrib')) -from hgclient import readchannel, sep, runcommand, check - -def unknowncommand(server): - server.stdin.write('unknowncommand\n') - -def hellomessage(server): - ch, data = readchannel(server) - # escaping python tests output not supported - print '%c, %r' % (ch, re.sub('encoding: [a-zA-Z0-9-]+', 'encoding: ***', - data)) - - # run an arbitrary command to make sure the next thing the server sends - # isn't part of the hello message - runcommand(server, ['id']) - -def checkruncommand(server): - # hello block - readchannel(server) - - # no args - runcommand(server, []) - - # global options - runcommand(server, ['id', '--quiet']) - - # make sure global options don't stick through requests - runcommand(server, ['id']) - - # --config - runcommand(server, ['id', '--config', 'ui.quiet=True']) - - # make sure --config doesn't stick - runcommand(server, ['id']) - - # negative return code should be masked - runcommand(server, ['id', '-runknown']) - -def inputeof(server): - readchannel(server) - server.stdin.write('runcommand\n') - # close stdin while server is waiting for input - server.stdin.close() - - # server exits with 1 if the pipe closed while reading the command - print 'server exit code =', server.wait() - -def serverinput(server): - readchannel(server) - - patch = """ -# HG changeset patch -# User test -# Date 0 0 -# Node ID c103a3dec114d882c98382d684d8af798d09d857 -# Parent 0000000000000000000000000000000000000000 -1 - -diff -r 000000000000 -r c103a3dec114 a ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/a Thu Jan 01 00:00:00 1970 +0000 -@@ -0,0 +1,1 @@ -+1 -""" - - runcommand(server, ['import', '-'], input=cStringIO.StringIO(patch)) - runcommand(server, ['log']) - -def cwd(server): - """ check that --cwd doesn't persist between requests """ - readchannel(server) - os.mkdir('foo') - f = open('foo/bar', 'wb') - f.write('a') - f.close() - runcommand(server, ['--cwd', 'foo', 'st', 'bar']) - runcommand(server, ['st', 'foo/bar']) - os.remove('foo/bar') - -def localhgrc(server): - """ check that local configs for the cached repo aren't inherited when -R - is used """ - readchannel(server) - - # the cached repo local hgrc contains ui.foo=bar, so showconfig should - # show it - runcommand(server, ['showconfig'], outfilter=sep) - - # but not for this repo - runcommand(server, ['init', 'foo']) - runcommand(server, ['-R', 'foo', 'showconfig', 'ui', 'defaults']) - shutil.rmtree('foo') - -def hook(**args): - print 'hook talking' - print 'now try to read something: %r' % sys.stdin.read() - -def hookoutput(server): - readchannel(server) - runcommand(server, ['--config', - 'hooks.pre-identify=python:test-commandserver.hook', - 'id'], - input=cStringIO.StringIO('some input')) - -def outsidechanges(server): - readchannel(server) - f = open('a', 'ab') - f.write('a\n') - f.close() - runcommand(server, ['status']) - os.system('hg ci -Am2') - runcommand(server, ['tip']) - runcommand(server, ['status']) - -def bookmarks(server): - readchannel(server) - runcommand(server, ['bookmarks']) - - # changes .hg/bookmarks - os.system('hg bookmark -i bm1') - os.system('hg bookmark -i bm2') - runcommand(server, ['bookmarks']) - - # changes .hg/bookmarks.current - os.system('hg upd bm1 -q') - runcommand(server, ['bookmarks']) - - runcommand(server, ['bookmarks', 'bm3']) - f = open('a', 'ab') - f.write('a\n') - f.close() - runcommand(server, ['commit', '-Amm']) - runcommand(server, ['bookmarks']) - -def tagscache(server): - readchannel(server) - runcommand(server, ['id', '-t', '-r', '0']) - os.system('hg tag -r 0 foo') - runcommand(server, ['id', '-t', '-r', '0']) - -def setphase(server): - readchannel(server) - runcommand(server, ['phase', '-r', '.']) - os.system('hg phase -r . -p') - runcommand(server, ['phase', '-r', '.']) - -def rollback(server): - readchannel(server) - runcommand(server, ['phase', '-r', '.', '-p']) - f = open('a', 'ab') - f.write('a\n') - f.close() - runcommand(server, ['commit', '-Am.']) - runcommand(server, ['rollback']) - runcommand(server, ['phase', '-r', '.']) - -def branch(server): - readchannel(server) - runcommand(server, ['branch']) - os.system('hg branch foo') - runcommand(server, ['branch']) - os.system('hg branch default') - -def hgignore(server): - readchannel(server) - f = open('.hgignore', 'ab') - f.write('') - f.close() - runcommand(server, ['commit', '-Am.']) - f = open('ignored-file', 'ab') - f.write('') - f.close() - f = open('.hgignore', 'ab') - f.write('ignored-file') - f.close() - runcommand(server, ['status', '-i', '-u']) - -def phasecacheafterstrip(server): - readchannel(server) - - # create new head, 5:731265503d86 - runcommand(server, ['update', '-C', '0']) - f = open('a', 'ab') - f.write('a\n') - f.close() - runcommand(server, ['commit', '-Am.', 'a']) - runcommand(server, ['log', '-Gq']) - - # make it public; draft marker moves to 4:7966c8e3734d - runcommand(server, ['phase', '-p', '.']) - # load _phasecache.phaseroots - runcommand(server, ['phase', '.'], outfilter=sep) - - # strip 1::4 outside server - os.system('hg -q --config extensions.mq= strip 1') - - # shouldn't raise "7966c8e3734d: no node!" - runcommand(server, ['branches']) - -def obsolete(server): - readchannel(server) - - runcommand(server, ['up', 'null']) - runcommand(server, ['phase', '-df', 'tip']) - cmd = 'hg debugobsolete `hg log -r tip --template {node}`' - if os.name == 'nt': - cmd = 'sh -c "%s"' % cmd # run in sh, not cmd.exe - os.system(cmd) - runcommand(server, ['log', '--hidden']) - runcommand(server, ['log']) - -def mqoutsidechanges(server): - readchannel(server) - - # load repo.mq - runcommand(server, ['qapplied']) - os.system('hg qnew 0.diff') - # repo.mq should be invalidated - runcommand(server, ['qapplied']) - - runcommand(server, ['qpop', '--all']) - os.system('hg qqueue --create foo') - # repo.mq should be recreated to point to new queue - runcommand(server, ['qqueue', '--active']) - -def getpass(server): - readchannel(server) - runcommand(server, ['debuggetpass', '--config', 'ui.interactive=True'], - input=cStringIO.StringIO('1234\n')) - -def startwithoutrepo(server): - readchannel(server) - runcommand(server, ['init', 'repo2']) - runcommand(server, ['id', '-R', 'repo2']) - -if __name__ == '__main__': - os.system('hg init repo') - os.chdir('repo') - - check(hellomessage) - check(unknowncommand) - check(checkruncommand) - check(inputeof) - check(serverinput) - check(cwd) - - hgrc = open('.hg/hgrc', 'a') - hgrc.write('[ui]\nfoo=bar\n') - hgrc.close() - check(localhgrc) - check(hookoutput) - check(outsidechanges) - check(bookmarks) - check(tagscache) - check(setphase) - check(rollback) - check(branch) - check(hgignore) - check(phasecacheafterstrip) - obs = open('obs.py', 'w') - obs.write('import mercurial.obsolete\nmercurial.obsolete._enabled = True\n') - obs.close() - hgrc = open('.hg/hgrc', 'a') - hgrc.write('[extensions]\nobs=obs.py\n') - hgrc.close() - check(obsolete) - hgrc = open('.hg/hgrc', 'a') - hgrc.write('[extensions]\nmq=\n') - hgrc.close() - check(mqoutsidechanges) - dbg = open('dbgui.py', 'w') - dbg.write('from mercurial import cmdutil, commands\n' - 'cmdtable = {}\n' - 'command = cmdutil.command(cmdtable)\n' - '@command("debuggetpass", norepo=True)\n' - 'def debuggetpass(ui):\n' - ' ui.write("%s\\n" % ui.getpass())\n') - dbg.close() - hgrc = open('.hg/hgrc', 'a') - hgrc.write('[extensions]\ndbgui=dbgui.py\n') - hgrc.close() - check(getpass) - - os.chdir('..') - check(hellomessage) - check(startwithoutrepo) diff -r 78b99149ed8a -r a763159159c7 tests/test-commandserver.py.out --- a/tests/test-commandserver.py.out Sun Sep 28 16:05:37 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,262 +0,0 @@ - -testing hellomessage: - -o, 'capabilities: getencoding runcommand\nencoding: ***' - runcommand id -000000000000 tip - -testing unknowncommand: - -abort: unknown command unknowncommand - -testing checkruncommand: - - runcommand -Mercurial Distributed SCM - -basic commands: - - add add the specified files on the next commit - annotate show changeset information by line for each file - clone make a copy of an existing repository - commit commit the specified files or all outstanding changes - diff diff repository (or selected files) - export dump the header and diffs for one or more changesets - forget forget the specified files on the next commit - init create a new repository in the given directory - log show revision history of entire repository or files - merge merge working directory with another revision - pull pull changes from the specified source - push push changes to the specified destination - remove remove the specified files on the next commit - serve start stand-alone webserver - status show changed files in the working directory - summary summarize working directory state - update update working directory (or switch revisions) - -(use "hg help" for the full list of commands or "hg -v" for details) - runcommand id --quiet -000000000000 - runcommand id -000000000000 tip - runcommand id --config ui.quiet=True -000000000000 - runcommand id -000000000000 tip - runcommand id -runknown -abort: unknown revision 'unknown'! - [255] - -testing inputeof: - -server exit code = 1 - -testing serverinput: - - runcommand import - -applying patch from stdin - runcommand log -changeset: 0:eff892de26ec -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: 1 - - -testing cwd: - - runcommand --cwd foo st bar -? bar - runcommand st foo/bar -? foo/bar - -testing localhgrc: - - runcommand showconfig -bundle.mainreporoot=$TESTTMP/repo -defaults.backout=-d "0 0" -defaults.commit=-d "0 0" -defaults.shelve=--date "0 0" -defaults.tag=-d "0 0" -ui.slash=True -ui.interactive=False -ui.mergemarkers=detailed -ui.foo=bar -ui.nontty=true - runcommand init foo - runcommand -R foo showconfig ui defaults -defaults.backout=-d "0 0" -defaults.commit=-d "0 0" -defaults.shelve=--date "0 0" -defaults.tag=-d "0 0" -ui.slash=True -ui.interactive=False -ui.mergemarkers=detailed -ui.nontty=true - -testing hookoutput: - - runcommand --config hooks.pre-identify=python:test-commandserver.hook id -hook talking -now try to read something: 'some input' -eff892de26ec tip - -testing outsidechanges: - - runcommand status -M a - runcommand tip -changeset: 1:d3a0a68be6de -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: 2 - - runcommand status - -testing bookmarks: - - runcommand bookmarks -no bookmarks set - runcommand bookmarks - bm1 1:d3a0a68be6de - bm2 1:d3a0a68be6de - runcommand bookmarks - * bm1 1:d3a0a68be6de - bm2 1:d3a0a68be6de - runcommand bookmarks bm3 - runcommand commit -Amm - runcommand bookmarks - bm1 1:d3a0a68be6de - bm2 1:d3a0a68be6de - * bm3 2:aef17e88f5f0 - -testing tagscache: - - runcommand id -t -r 0 - - runcommand id -t -r 0 -foo - -testing setphase: - - runcommand phase -r . -3: draft - runcommand phase -r . -3: public - -testing rollback: - - runcommand phase -r . -p -no phases changed - [1] - runcommand commit -Am. - runcommand rollback -repository tip rolled back to revision 3 (undo commit) -working directory now based on revision 3 - runcommand phase -r . -3: public - -testing branch: - - runcommand branch -default -marked working directory as branch foo -(branches are permanent and global, did you want a bookmark?) - runcommand branch -foo -marked working directory as branch default -(branches are permanent and global, did you want a bookmark?) - -testing hgignore: - - runcommand commit -Am. -adding .hgignore - runcommand status -i -u -I ignored-file - -testing phasecacheafterstrip: - - runcommand update -C 0 -1 files updated, 0 files merged, 2 files removed, 0 files unresolved -(leaving bookmark bm3) - runcommand commit -Am. a -created new head - runcommand log -Gq -@ 5:731265503d86 -| -| o 4:7966c8e3734d -| | -| o 3:b9b85890c400 -| | -| o 2:aef17e88f5f0 -| | -| o 1:d3a0a68be6de -|/ -o 0:eff892de26ec - - runcommand phase -p . - runcommand phase . -5: public - runcommand branches -default 1:731265503d86 - -testing obsolete: - - runcommand up null -0 files updated, 0 files merged, 1 files removed, 0 files unresolved - runcommand phase -df tip - runcommand log --hidden -changeset: 1:731265503d86 -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: . - -changeset: 0:eff892de26ec -bookmark: bm1 -bookmark: bm2 -bookmark: bm3 -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: 1 - - runcommand log -changeset: 0:eff892de26ec -bookmark: bm1 -bookmark: bm2 -bookmark: bm3 -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: 1 - - -testing mqoutsidechanges: - - runcommand qapplied - runcommand qapplied -0.diff - runcommand qpop --all -popping 0.diff -patch queue now empty - runcommand qqueue --active -foo - -testing getpass: - - runcommand debuggetpass --config ui.interactive=True -password: 1234 - -testing hellomessage: - -o, 'capabilities: getencoding runcommand\nencoding: ***' - runcommand id -abort: there is no Mercurial repository here (.hg not found) - [255] - -testing startwithoutrepo: - - runcommand init repo2 - runcommand id -R repo2 -000000000000 tip