comparison tests/test-win32text @ 5967:f8ad3b76e923

Provide better context for custom Python encode/decode filters. While some can function with just some text and an optional command name, others may want a repository object, a ui object, and a file path. Use the enhanced information to good effect in win32text.dumbdecode's warning.
author Jesse Glick <jesse.glick@sun.com>
date Fri, 21 Dec 2007 23:21:17 -0500
parents 963c516bb38c
children 942287cb1f57
comparison
equal deleted inserted replaced
5966:11af38a592ae 5967:f8ad3b76e923
5 5
6 for path in sys.argv[1:]: 6 for path in sys.argv[1:]:
7 data = file(path, 'rb').read() 7 data = file(path, 'rb').read()
8 data = data.replace('\n', '\r\n') 8 data = data.replace('\n', '\r\n')
9 file(path, 'wb').write(data) 9 file(path, 'wb').write(data)
10 EOF
11
12 cat > print.py <<EOF
13 import sys
14 print(sys.stdin.read().replace('\n', '<LF>').replace('\r', '<CR>').replace('\0', '<NUL>'))
10 EOF 15 EOF
11 16
12 hg init 17 hg init
13 echo '[hooks]' >> .hg/hgrc 18 echo '[hooks]' >> .hg/hgrc
14 echo 'pretxncommit.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc 19 echo 'pretxncommit.crlf = python:hgext.win32text.forbidcrlf' >> .hg/hgrc
60 echo 65 echo
61 66
62 hg log -v 67 hg log -v
63 echo 68 echo
64 69
65 # XXX missing tests for encode/decode hooks 70 rm .hg/hgrc
71 (echo some; echo text) > f3
72 python -c 'file("f4.bat", "wb").write("rem empty\x0D\x0A")'
73 hg add f3 f4.bat
74 hg ci -m 6 -d'0 0'
75
76 python print.py < bin
77 python print.py < f3
78 python print.py < f4.bat
79 echo
80
81 echo '[extensions]' >> .hg/hgrc
82 echo 'win32text = ' >> .hg/hgrc
83 echo '[decode]' >> .hg/hgrc
84 echo '** = cleverdecode:' >> .hg/hgrc
85 echo '[encode]' >> .hg/hgrc
86 echo '** = cleverencode:' >> .hg/hgrc
87 cat .hg/hgrc
88 echo
89
90 rm f3 f4.bat bin
91 hg co 2>&1 | python -c 'import sys, os; sys.stdout.write(sys.stdin.read().replace(os.getcwd(), "...."))'
92 python print.py < bin
93 python print.py < f3
94 python print.py < f4.bat
95 echo
96
97 python -c 'file("f5.sh", "wb").write("# empty\x0D\x0A")'
98 hg add f5.sh
99 hg ci -m 7 -d'0 0'
100 python print.py < f5.sh
101 hg cat f5.sh | python print.py