Mercurial > hg
annotate tests/test-hybridencode.py @ 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 | 1a6d702e059d |
children | 34d8247a4595 |
rev | line source |
---|---|
7275
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
2 |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
3 from mercurial import store |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
4 |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
5 enc = store.hybridencode # used for fncache repo format |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
6 |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
7 def show(s): |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
8 print "A = '%s'" % s |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
9 print "B = '%s'" % enc(s) |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
10 print |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
11 |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
12 show('data/aux.bla/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c.i') |
c00cdac22d3c
add new test-hybridencode.py
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff
changeset
|
13 |
8659
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
14 show('data/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/' |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
15 'TENTH/ELEVENTH/LOREMIPSUM.TXT.i') |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
16 show('data/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/' |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
17 'wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules' |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
18 '.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider.i') |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
19 show('data/AUX.THE-QUICK-BROWN-FOX-JU:MPS-OVER-THE-LAZY-DOG-THE-QUICK-' |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
20 'BROWN-FOX-JUMPS-OVER-THE-LAZY-DOG.TXT.i') |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
21 show('data/Project Planning/Resources/AnotherLongDirectoryName/' |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
22 'Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt') |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
23 show('data/Project.Planning/Resources/AnotherLongDirectoryName/' |
1a6d702e059d
test-hybridencode: break long string literals
Martin Geisler <mg@lazybytes.net>
parents:
7515
diff
changeset
|
24 'Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt') |
7515
ee5aba886108
store: encode trailing period and space on directory names (issue1417)
Adrian Buehlmann <adrian@cadifra.com>
parents:
7514
diff
changeset
|
25 show('data/foo.../foo / /a./_. /__/.x../ bla/something.i') |