tests/test-commandserver.py
author Yuya Nishihara <yuya@tcha.org>
Sun, 28 Sep 2014 13:31:16 +0900
changeset 22566 480b7fefbb08
parent 22086 68f2f8bfe9ae
permissions -rw-r--r--
test-commandserver: split helper functions to new hgclient module This prepares for porting test-commandserver.py to .t test. Though command-server test needs many Python codes, .t test will be more readable than .py test thanks to inlined output.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22566
480b7fefbb08 test-commandserver: split helper functions to new hgclient module
Yuya Nishihara <yuya@tcha.org>
parents: 22086
diff changeset
     1
import sys, os, cStringIO, re, shutil
14770
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
     2
22566
480b7fefbb08 test-commandserver: split helper functions to new hgclient module
Yuya Nishihara <yuya@tcha.org>
parents: 22086
diff changeset
     3
sys.path.insert(0, os.path.join(os.environ['TESTDIR'], '..', 'contrib'))
480b7fefbb08 test-commandserver: split helper functions to new hgclient module
Yuya Nishihara <yuya@tcha.org>
parents: 22086
diff changeset
     4
from hgclient import readchannel, sep, runcommand, check
14770
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
     5
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
     6
def unknowncommand(server):
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
     7
    server.stdin.write('unknowncommand\n')
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
     8
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
     9
def hellomessage(server):
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    10
    ch, data = readchannel(server)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    11
    # escaping python tests output not supported
16683
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16202
diff changeset
    12
    print '%c, %r' % (ch, re.sub('encoding: [a-zA-Z0-9-]+', 'encoding: ***',
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16202
diff changeset
    13
                                 data))
14770
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    14
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    15
    # run an arbitrary command to make sure the next thing the server sends
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    16
    # isn't part of the hello message
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    17
    runcommand(server, ['id'])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    18
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    19
def checkruncommand(server):
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    20
    # hello block
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    21
    readchannel(server)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    22
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    23
    # no args
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    24
    runcommand(server, [])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    25
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    26
    # global options
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    27
    runcommand(server, ['id', '--quiet'])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    28
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    29
    # make sure global options don't stick through requests
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    30
    runcommand(server, ['id'])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    31
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    32
    # --config
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    33
    runcommand(server, ['id', '--config', 'ui.quiet=True'])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    34
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    35
    # make sure --config doesn't stick
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    36
    runcommand(server, ['id'])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    37
20631
5d4606bec54c cmdserver: mask return code of runcommand in the same way as dispatch.run
Yuya Nishihara <yuya@tcha.org>
parents: 20630
diff changeset
    38
    # negative return code should be masked
5d4606bec54c cmdserver: mask return code of runcommand in the same way as dispatch.run
Yuya Nishihara <yuya@tcha.org>
parents: 20630
diff changeset
    39
    runcommand(server, ['id', '-runknown'])
5d4606bec54c cmdserver: mask return code of runcommand in the same way as dispatch.run
Yuya Nishihara <yuya@tcha.org>
parents: 20630
diff changeset
    40
14770
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    41
def inputeof(server):
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    42
    readchannel(server)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    43
    server.stdin.write('runcommand\n')
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    44
    # close stdin while server is waiting for input
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    45
    server.stdin.close()
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    46
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    47
    # server exits with 1 if the pipe closed while reading the command
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    48
    print 'server exit code =', server.wait()
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    49
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    50
def serverinput(server):
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    51
    readchannel(server)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    52
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    53
    patch = """
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    54
# HG changeset patch
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    55
# User test
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    56
# Date 0 0
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    57
# Node ID c103a3dec114d882c98382d684d8af798d09d857
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    58
# Parent  0000000000000000000000000000000000000000
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    59
1
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    60
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    61
diff -r 000000000000 -r c103a3dec114 a
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    63
+++ b/a	Thu Jan 01 00:00:00 1970 +0000
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    64
@@ -0,0 +1,1 @@
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    65
+1
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    66
"""
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    67
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    68
    runcommand(server, ['import', '-'], input=cStringIO.StringIO(patch))
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    69
    runcommand(server, ['log'])
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    70
14864
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    71
def cwd(server):
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    72
    """ check that --cwd doesn't persist between requests """
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    73
    readchannel(server)
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    74
    os.mkdir('foo')
15542
e19302598df8 tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com>
parents: 15541
diff changeset
    75
    f = open('foo/bar', 'wb')
14880
5233df79deed test-commandserver: explicitly close opened file
Idan Kamara <idankk86@gmail.com>
parents: 14864
diff changeset
    76
    f.write('a')
5233df79deed test-commandserver: explicitly close opened file
Idan Kamara <idankk86@gmail.com>
parents: 14864
diff changeset
    77
    f.close()
14864
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    78
    runcommand(server, ['--cwd', 'foo', 'st', 'bar'])
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    79
    runcommand(server, ['st', 'foo/bar'])
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    80
    os.remove('foo/bar')
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
    81
14882
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    82
def localhgrc(server):
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    83
    """ check that local configs for the cached repo aren't inherited when -R
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    84
    is used """
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    85
    readchannel(server)
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    86
16683
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16202
diff changeset
    87
    # the cached repo local hgrc contains ui.foo=bar, so showconfig should
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16202
diff changeset
    88
    # show it
22086
68f2f8bfe9ae test-commandserver.py: filter path separator
Matt Mackall <mpm@selenic.com>
parents: 21773
diff changeset
    89
    runcommand(server, ['showconfig'], outfilter=sep)
14882
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    90
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    91
    # but not for this repo
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    92
    runcommand(server, ['init', 'foo'])
15542
e19302598df8 tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com>
parents: 15541
diff changeset
    93
    runcommand(server, ['-R', 'foo', 'showconfig', 'ui', 'defaults'])
14882
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    94
    shutil.rmtree('foo')
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
    95
14889
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
    96
def hook(**args):
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
    97
    print 'hook talking'
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
    98
    print 'now try to read something: %r' % sys.stdin.read()
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
    99
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
   100
def hookoutput(server):
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
   101
    readchannel(server)
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
   102
    runcommand(server, ['--config',
16683
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16202
diff changeset
   103
                        'hooks.pre-identify=python:test-commandserver.hook',
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16202
diff changeset
   104
                        'id'],
14889
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
   105
               input=cStringIO.StringIO('some input'))
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
   106
14939
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   107
def outsidechanges(server):
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   108
    readchannel(server)
15542
e19302598df8 tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com>
parents: 15541
diff changeset
   109
    f = open('a', 'ab')
e19302598df8 tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com>
parents: 15541
diff changeset
   110
    f.write('a\n')
e19302598df8 tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com>
parents: 15541
diff changeset
   111
    f.close()
16114
acfca07a8f26 cmdserver: invalidate the dirstate when running commands (issue3271)
Idan Kamara <idankk86@gmail.com>
parents: 15989
diff changeset
   112
    runcommand(server, ['status'])
15542
e19302598df8 tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com>
parents: 15541
diff changeset
   113
    os.system('hg ci -Am2')
14939
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   114
    runcommand(server, ['tip'])
16114
acfca07a8f26 cmdserver: invalidate the dirstate when running commands (issue3271)
Idan Kamara <idankk86@gmail.com>
parents: 15989
diff changeset
   115
    runcommand(server, ['status'])
14939
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   116
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   117
def bookmarks(server):
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   118
    readchannel(server)
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   119
    runcommand(server, ['bookmarks'])
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   120
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   121
    # changes .hg/bookmarks
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   122
    os.system('hg bookmark -i bm1')
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   123
    os.system('hg bookmark -i bm2')
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   124
    runcommand(server, ['bookmarks'])
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   125
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   126
    # changes .hg/bookmarks.current
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   127
    os.system('hg upd bm1 -q')
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   128
    runcommand(server, ['bookmarks'])
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   129
16115
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   130
    runcommand(server, ['bookmarks', 'bm3'])
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   131
    f = open('a', 'ab')
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   132
    f.write('a\n')
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   133
    f.close()
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   134
    runcommand(server, ['commit', '-Amm'])
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   135
    runcommand(server, ['bookmarks'])
236bb604dc39 scmutil: update cached copy when filecached attribute is assigned (issue3263)
Idan Kamara <idankk86@gmail.com>
parents: 16114
diff changeset
   136
14939
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   137
def tagscache(server):
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   138
    readchannel(server)
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   139
    runcommand(server, ['id', '-t', '-r', '0'])
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   140
    os.system('hg tag -r 0 foo')
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   141
    runcommand(server, ['id', '-t', '-r', '0'])
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   142
15989
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   143
def setphase(server):
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   144
    readchannel(server)
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   145
    runcommand(server, ['phase', '-r', '.'])
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   146
    os.system('hg phase -r . -p')
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   147
    runcommand(server, ['phase', '-r', '.'])
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   148
16116
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   149
def rollback(server):
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   150
    readchannel(server)
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   151
    runcommand(server, ['phase', '-r', '.', '-p'])
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   152
    f = open('a', 'ab')
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   153
    f.write('a\n')
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   154
    f.close()
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   155
    runcommand(server, ['commit', '-Am.'])
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   156
    runcommand(server, ['rollback'])
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   157
    runcommand(server, ['phase', '-r', '.'])
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   158
16201
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   159
def branch(server):
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   160
    readchannel(server)
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   161
    runcommand(server, ['branch'])
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   162
    os.system('hg branch foo')
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   163
    runcommand(server, ['branch'])
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   164
    os.system('hg branch default')
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   165
16202
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   166
def hgignore(server):
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   167
    readchannel(server)
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   168
    f = open('.hgignore', 'ab')
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   169
    f.write('')
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   170
    f.close()
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   171
    runcommand(server, ['commit', '-Am.'])
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   172
    f = open('ignored-file', 'ab')
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   173
    f.write('')
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   174
    f.close()
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   175
    f = open('.hgignore', 'ab')
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   176
    f.write('ignored-file')
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   177
    f.close()
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   178
    runcommand(server, ['status', '-i', '-u'])
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   179
18757
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   180
def phasecacheafterstrip(server):
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   181
    readchannel(server)
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   182
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   183
    # create new head, 5:731265503d86
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   184
    runcommand(server, ['update', '-C', '0'])
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   185
    f = open('a', 'ab')
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   186
    f.write('a\n')
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   187
    f.close()
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   188
    runcommand(server, ['commit', '-Am.', 'a'])
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   189
    runcommand(server, ['log', '-Gq'])
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   190
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   191
    # make it public; draft marker moves to 4:7966c8e3734d
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   192
    runcommand(server, ['phase', '-p', '.'])
19132
605deb776abf tests: fix test-commandserver phase . output for windows
Brendan Cully <brendan@kublai.com>
parents: 18757
diff changeset
   193
    # load _phasecache.phaseroots
605deb776abf tests: fix test-commandserver phase . output for windows
Brendan Cully <brendan@kublai.com>
parents: 18757
diff changeset
   194
    runcommand(server, ['phase', '.'], outfilter=sep)
18757
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   195
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   196
    # strip 1::4 outside server
19166
e958b17696fe tests: quiet strip to avoid commandserver pathsep issue
Matt Mackall <mpm@selenic.com>
parents: 18757
diff changeset
   197
    os.system('hg -q --config extensions.mq= strip 1')
18757
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   198
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   199
    # shouldn't raise "7966c8e3734d: no node!"
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   200
    runcommand(server, ['branches'])
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   201
20330
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   202
def obsolete(server):
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   203
    readchannel(server)
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   204
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   205
    runcommand(server, ['up', 'null'])
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   206
    runcommand(server, ['phase', '-df', 'tip'])
20396
a8e6ab7eb361 tests: on windows, run command explicitly in sh for working command substitution
Simon Heimberg <simohe@besonet.ch>
parents: 20330
diff changeset
   207
    cmd = 'hg debugobsolete `hg log -r tip --template {node}`'
a8e6ab7eb361 tests: on windows, run command explicitly in sh for working command substitution
Simon Heimberg <simohe@besonet.ch>
parents: 20330
diff changeset
   208
    if os.name == 'nt':
a8e6ab7eb361 tests: on windows, run command explicitly in sh for working command substitution
Simon Heimberg <simohe@besonet.ch>
parents: 20330
diff changeset
   209
        cmd = 'sh -c "%s"' % cmd # run in sh, not cmd.exe
a8e6ab7eb361 tests: on windows, run command explicitly in sh for working command substitution
Simon Heimberg <simohe@besonet.ch>
parents: 20330
diff changeset
   210
    os.system(cmd)
20330
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   211
    runcommand(server, ['log', '--hidden'])
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   212
    runcommand(server, ['log'])
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   213
20628
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   214
def mqoutsidechanges(server):
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   215
    readchannel(server)
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   216
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   217
    # load repo.mq
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   218
    runcommand(server, ['qapplied'])
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   219
    os.system('hg qnew 0.diff')
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   220
    # repo.mq should be invalidated
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   221
    runcommand(server, ['qapplied'])
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   222
20629
277dc5f27310 cmdserver: recreate mq object on runcommand in case queue path was changed
Yuya Nishihara <yuya@tcha.org>
parents: 20628
diff changeset
   223
    runcommand(server, ['qpop', '--all'])
277dc5f27310 cmdserver: recreate mq object on runcommand in case queue path was changed
Yuya Nishihara <yuya@tcha.org>
parents: 20628
diff changeset
   224
    os.system('hg qqueue --create foo')
277dc5f27310 cmdserver: recreate mq object on runcommand in case queue path was changed
Yuya Nishihara <yuya@tcha.org>
parents: 20628
diff changeset
   225
    # repo.mq should be recreated to point to new queue
277dc5f27310 cmdserver: recreate mq object on runcommand in case queue path was changed
Yuya Nishihara <yuya@tcha.org>
parents: 20628
diff changeset
   226
    runcommand(server, ['qqueue', '--active'])
277dc5f27310 cmdserver: recreate mq object on runcommand in case queue path was changed
Yuya Nishihara <yuya@tcha.org>
parents: 20628
diff changeset
   227
21195
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   228
def getpass(server):
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   229
    readchannel(server)
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   230
    runcommand(server, ['debuggetpass', '--config', 'ui.interactive=True'],
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   231
               input=cStringIO.StringIO('1234\n'))
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   232
20650
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   233
def startwithoutrepo(server):
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   234
    readchannel(server)
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   235
    runcommand(server, ['init', 'repo2'])
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   236
    runcommand(server, ['id', '-R', 'repo2'])
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   237
14770
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   238
if __name__ == '__main__':
20649
9524938c8ff8 cmdserver: prepare test for starting server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20631
diff changeset
   239
    os.system('hg init repo')
9524938c8ff8 cmdserver: prepare test for starting server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20631
diff changeset
   240
    os.chdir('repo')
14770
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   241
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   242
    check(hellomessage)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   243
    check(unknowncommand)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   244
    check(checkruncommand)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   245
    check(inputeof)
95a8c0f5dd3f tests: add basic commandserver test
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
   246
    check(serverinput)
14864
1b872599f39f cmdserver: restore old working dir after dispatch when we have --cwd
Idan Kamara <idankk86@gmail.com>
parents: 14770
diff changeset
   247
    check(cwd)
14882
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
   248
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
   249
    hgrc = open('.hg/hgrc', 'a')
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
   250
    hgrc.write('[ui]\nfoo=bar\n')
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
   251
    hgrc.close()
bb2cffe81a94 cmdserver: take repo.baseui as our ui
Idan Kamara <idankk86@gmail.com>
parents: 14880
diff changeset
   252
    check(localhgrc)
14889
a59058fd074a hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
Idan Kamara <idankk86@gmail.com>
parents: 14882
diff changeset
   253
    check(hookoutput)
14939
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   254
    check(outsidechanges)
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   255
    check(bookmarks)
b4c06b97dfe0 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com>
parents: 14889
diff changeset
   256
    check(tagscache)
15989
6548a2e32285 test-commandserver: test that phase data is being refreshed
Idan Kamara <idankk86@gmail.com>
parents: 15542
diff changeset
   257
    check(setphase)
16116
ce0ad184f489 localrepo: clear _filecache on rollback (issue3261)
Idan Kamara <idankk86@gmail.com>
parents: 16115
diff changeset
   258
    check(rollback)
16201
fb7c4c14223f dirstate: filecacheify _branch
Idan Kamara <idankk86@gmail.com>
parents: 16117
diff changeset
   259
    check(branch)
16202
53e2cd303ecf dirstate: filecacheify _ignore (issue3278)
Idan Kamara <idankk86@gmail.com>
parents: 16201
diff changeset
   260
    check(hgignore)
18757
1c8e0d6ac3b0 localrepo: always write the filtered phasecache when nodes are destroyed (issue3827)
Idan Kamara <idankk86@gmail.com>
parents: 16687
diff changeset
   261
    check(phasecacheafterstrip)
20330
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   262
    obs = open('obs.py', 'w')
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   263
    obs.write('import mercurial.obsolete\nmercurial.obsolete._enabled = True\n')
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   264
    obs.close()
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   265
    hgrc = open('.hg/hgrc', 'a')
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   266
    hgrc.write('[extensions]\nobs=obs.py\n')
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   267
    hgrc.close()
69a0d22b9677 dispatch: take --hidden from individual commands into account
Julien Cristau <julien.cristau@logilab.fr>
parents: 19167
diff changeset
   268
    check(obsolete)
20628
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   269
    hgrc = open('.hg/hgrc', 'a')
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   270
    hgrc.write('[extensions]\nmq=\n')
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   271
    hgrc.close()
e3d1df48fcc6 cmdserver: reload mq on each runcommand request to avoid corruption
Yuya Nishihara <yuya@tcha.org>
parents: 20396
diff changeset
   272
    check(mqoutsidechanges)
21195
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   273
    dbg = open('dbgui.py', 'w')
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   274
    dbg.write('from mercurial import cmdutil, commands\n'
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   275
              'cmdtable = {}\n'
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   276
              'command = cmdutil.command(cmdtable)\n'
21773
26d2fb899637 tests: define norepo in command decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21195
diff changeset
   277
              '@command("debuggetpass", norepo=True)\n'
21195
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   278
              'def debuggetpass(ui):\n'
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   279
              '    ui.write("%s\\n" % ui.getpass())\n')
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   280
    dbg.close()
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   281
    hgrc = open('.hg/hgrc', 'a')
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   282
    hgrc.write('[extensions]\ndbgui=dbgui.py\n')
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   283
    hgrc.close()
9336bc7dca8e cmdserver: forcibly use L channel to read password input (issue3161)
Yuya Nishihara <yuya@tcha.org>
parents: 20650
diff changeset
   284
    check(getpass)
20650
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   285
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   286
    os.chdir('..')
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   287
    check(hellomessage)
e811b93f2cb1 cmdserver: allow to start server without repository
Yuya Nishihara <yuya@tcha.org>
parents: 20649
diff changeset
   288
    check(startwithoutrepo)