Mercurial > hg
diff tests/test-highlight @ 8485:0b93eff3721d
test-highlight: decouple test from get-with-headers.py
The test copied get-with-headers.py from $TESTDIR and committed it to
a test repository. The test output therefore depended unnecessarily on
the exact content of get-with-headers.py. It has now been replaced
with another small Python script.
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Sun, 17 May 2009 21:47:24 +0200 |
parents | 29ac24a36ed7 |
children | 799373ff2554 |
line wrap: on
line diff
--- a/tests/test-highlight Sun May 17 20:00:11 2009 +0200 +++ b/tests/test-highlight Sun May 17 21:47:24 2009 +0200 @@ -11,7 +11,41 @@ hg init test cd test -cp $TESTDIR/get-with-headers.py ./ +# create random Python file to exercise Pygments +cat <<EOF > primes.py +#!/usr/bin/env python + +"""Fun with generators. Corresponding Haskell implementation: + +primes = 2 : sieve [3, 5..] + where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0] +""" + +from itertools import dropwhile, ifilter, islice, count, chain + +def primes(): + """Generate all primes.""" + def sieve(ns): + p = ns.next() + # It is important to yield *here* in order to stop the + # infinite recursion. + yield p + ns = ifilter(lambda n: n % p != 0, ns) + for n in sieve(ns): + yield n + + odds = ifilter(lambda i: i % 2 == 1, count()) + return chain([2], sieve(dropwhile(lambda n: n < 3, odds))) + +if __name__ == "__main__": + import sys + try: + n = int(sys.argv[1]) + except (ValueError, IndexError): + n = 10 + p = primes() + print "The first %d primes: %s" % (n, list(islice(p, n))) +EOF # check for UnicodeDecodeError with iso-8859-1 file contents python -c 'fp = open("isolatin.txt", "w"); fp.write("h\xFCbsch\n"); fp.close();' @@ -23,7 +57,7 @@ cat hg.pid >> $DAEMON_PIDS echo % hgweb filerevision, html -("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/get-with-headers.py') \ +("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py') \ | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mf\"/class=\"mi\"/g" echo % hgweb filerevision, html @@ -31,17 +65,17 @@ | sed "s/class=\"k\"/class=\"kn\"/g" echo % hgweb fileannotate, html -("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/get-with-headers.py') \ +("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py') \ | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mi\"/class=\"mf\"/g" echo % hgweb fileannotate, raw -("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/get-with-headers.py?style=raw') \ +("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py?style=raw') \ | sed "s/test@//" > a echo "200 Script output follows" > b echo "" >> b echo "" >> b -hg annotate "get-with-headers.py" >> b +hg annotate "primes.py" >> b echo "" >> b echo "" >> b echo "" >> b @@ -51,12 +85,12 @@ echo echo % hgweb filerevision, raw -("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/get-with-headers.py?style=raw') \ +("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py?style=raw') \ > a echo "200 Script output follows" > b echo "" >> b -hg cat get-with-headers.py >> b +hg cat primes.py >> b diff -u b a