Mercurial > hg
view tests/test-highlight @ 7120:db7557359636
highlight: convert text to local before passing to pygmentize (issue1341)
Example case:
Display file written in iso-8859-1 with current HGENCODING utf-8.
At the moment only an Error page appears because pygmentize
chokes on the replacement chars.
Alternatives:
1) Turn off highlighting and avoid UnicodeDecodeError
for files that are not in HGENCODING.
2) [this patch] use util.tolocal to display these files.
Alternative 2) seems ok, as this only concerns display and
readability.
See also: fe38b0a3a928, apparently put aside during refactor of
highlight.
Add test for UnicodeDecodeError with iso-8859-1 file contents.
author | Christian Ebert <blacktrash@gmx.net> |
---|---|
date | Fri, 17 Oct 2008 12:12:33 +0200 |
parents | f29b674cc221 |
children | c5e37dc38a52 |
line wrap: on
line source
#!/bin/sh "$TESTDIR/hghave" pygments || exit 80 cat <<EOF >> $HGRCPATH [extensions] hgext.highlight = [web] pygments_style = friendly EOF hg init test cd test cp $TESTDIR/get-with-headers.py ./ # check for UnicodeDecodeError with iso-8859-1 file contents python -c 'fp = open("isolatin", "w"); fp.write("h\xFCbsch\n"); fp.close();' hg ci -Ama echo % hg serve hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log cat hg.pid >> $DAEMON_PIDS echo % hgweb filerevision, html ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/get-with-headers.py') \ | sed "s/[0-9]* years ago/long ago/g" | sed "s/class=\"k\"/class=\"kn\"/g" echo % hgweb filerevision, html ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/isolatin') \ | sed "s/[0-9]* years ago/long ago/g" | sed "s/class=\"k\"/class=\"kn\"/g" echo % hgweb fileannotate, html ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/get-with-headers.py') \ | sed "s/[0-9]* years ago/long ago/g" | sed "s/class=\"k\"/class=\"kn\"/g" echo % hgweb fileannotate, raw ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/get-with-headers.py?style=raw') \ | sed "s/test@//" > a echo "200 Script output follows" > b echo "" >> b echo "" >> b hg annotate "get-with-headers.py" >> b echo "" >> b echo "" >> b echo "" >> b echo "" >> b diff -u b a echo echo % hgweb filerevision, raw ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/get-with-headers.py?style=raw') \ > a echo "200 Script output follows" > b echo "" >> b hg cat get-with-headers.py >> b diff -u b a echo echo % hgweb highlightcss friendly "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out head -n 4 out rm out echo % errors encountered cat errors.log kill `cat hg.pid` # Change the pygments style cat > .hg/hgrc <<EOF [web] pygments_style = fruity EOF echo % hg serve again hg serve -p $HGPORT -d -n test --pid-file=hg.pid -A access.log -E errors.log cat hg.pid >> $DAEMON_PIDS echo % hgweb highlightcss fruity "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out head -n 4 out rm out echo % errors encountered cat errors.log