view tests/test-bad-pull.t @ 11988:8380ed691df8

util: add an interpolate() function to for replacing multiple values util.interpolate can be used to replace multiple items in a string all at once (and optionally apply a function to the replacement), without worrying about recursing: >>> import util >>> s = '$foo, $spam' >>> util.interpolate(r'\$', { 'foo': 'bar', 'spam': 'eggs' }, s) 'bar, eggs' >>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s) 'spam, foo' >>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s, lambda s: s.upper()) 'SPAM, FOO' The patch also changes filemerge.py to use this new function.
author Steve Losh <steve@stevelosh.com>
date Wed, 18 Aug 2010 18:18:26 -0400
parents f48178034569
children 4134686b83e1
line wrap: on
line source

  $ hg clone http://localhost:$HGPORT/ copy
  abort: error: Connection refused

  $ echo $?
  0

  $ test -d copy || echo copy: No such file or directory
  copy: No such file or directory

  $ cat > dumb.py <<EOF
  > import BaseHTTPServer, SimpleHTTPServer, os, signal
  > def run(server_class=BaseHTTPServer.HTTPServer,
  >         handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
  >     server_address = ('localhost', int(os.environ['HGPORT']))
  >     httpd = server_class(server_address, handler_class)
  >     httpd.serve_forever()
  > signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
  > run()
  > EOF

  $ python dumb.py 2>/dev/null &
  $ echo $! >> $DAEMON_PIDS

give the server some time to start running

  $ sleep 1

  $ hg clone http://localhost:$HGPORT/foo copy2 2>&1
  abort: HTTP Error 404: .*

  $ echo $?
  0

  $ kill $!