##// END OF EJS Templates
byteify-strings: add test for byteify-strings.py...
Raphaël Gomès -
r42913:3364b4da default
parent child Browse files
Show More
@@ -0,0 +1,217 b''
1 #require py3
2
3 $ byteify_strings () {
4 > $PYTHON "$TESTDIR/../contrib/byteify-strings.py" "$@"
5 > }
6
7 Test in-place
8
9 $ cat > testfile.py <<EOF
10 > obj['test'] = b"1234"
11 > mydict.iteritems()
12 > EOF
13 $ byteify_strings testfile.py -i
14 $ cat testfile.py
15 obj[b'test'] = b"1234"
16 mydict.iteritems()
17
18 Test with dictiter
19
20 $ cat > testfile.py <<EOF
21 > obj['test'] = b"1234"
22 > mydict.iteritems()
23 > EOF
24 $ byteify_strings testfile.py --dictiter
25 obj[b'test'] = b"1234"
26 mydict.items()
27
28 Test kwargs-like objects
29
30 $ cat > testfile.py <<EOF
31 > kwargs['test'] = "123"
32 > kwargs[test['testing']]
33 > kwargs[test[[['testing']]]]
34 > kwargs[kwargs['testing']]
35 > kwargs.get('test')
36 > kwargs.pop('test')
37 > kwargs.get('test', 'testing')
38 > kwargs.pop('test', 'testing')
39 > kwargs.setdefault('test', 'testing')
40 >
41 > opts['test'] = "123"
42 > opts[test['testing']]
43 > opts[test[[['testing']]]]
44 > opts[opts['testing']]
45 > opts.get('test')
46 > opts.pop('test')
47 > opts.get('test', 'testing')
48 > opts.pop('test', 'testing')
49 > opts.setdefault('test', 'testing')
50 >
51 > commitopts['test'] = "123"
52 > commitopts[test['testing']]
53 > commitopts[test[[['testing']]]]
54 > commitopts[commitopts['testing']]
55 > commitopts.get('test')
56 > commitopts.pop('test')
57 > commitopts.get('test', 'testing')
58 > commitopts.pop('test', 'testing')
59 > commitopts.setdefault('test', 'testing')
60 > EOF
61 $ byteify_strings testfile.py --treat-as-kwargs kwargs opts commitopts
62 kwargs['test'] = b"123"
63 kwargs[test[b'testing']]
64 kwargs[test[[[b'testing']]]]
65 kwargs[kwargs['testing']]
66 kwargs.get('test')
67 kwargs.pop('test')
68 kwargs.get('test', b'testing')
69 kwargs.pop('test', b'testing')
70 kwargs.setdefault('test', b'testing')
71
72 opts['test'] = b"123"
73 opts[test[b'testing']]
74 opts[test[[[b'testing']]]]
75 opts[opts['testing']]
76 opts.get('test')
77 opts.pop('test')
78 opts.get('test', b'testing')
79 opts.pop('test', b'testing')
80 opts.setdefault('test', b'testing')
81
82 commitopts['test'] = b"123"
83 commitopts[test[b'testing']]
84 commitopts[test[[[b'testing']]]]
85 commitopts[commitopts['testing']]
86 commitopts.get('test')
87 commitopts.pop('test')
88 commitopts.get('test', b'testing')
89 commitopts.pop('test', b'testing')
90 commitopts.setdefault('test', b'testing')
91
92 Test attr*() as methods
93
94 $ cat > testfile.py <<EOF
95 > setattr(o, 'a', 1)
96 > util.setattr(o, 'ae', 1)
97 > util.getattr(o, 'alksjdf', 'default')
98 > util.addattr(o, 'asdf')
99 > util.hasattr(o, 'lksjdf', 'default')
100 > util.safehasattr(o, 'lksjdf', 'default')
101 > @eh.wrapfunction(func, 'lksjdf')
102 > def f():
103 > pass
104 > @eh.wrapclass(klass, 'lksjdf')
105 > def f():
106 > pass
107 > EOF
108 $ byteify_strings testfile.py --allow-attr-methods
109 setattr(o, 'a', 1)
110 util.setattr(o, 'ae', 1)
111 util.getattr(o, 'alksjdf', b'default')
112 util.addattr(o, 'asdf')
113 util.hasattr(o, 'lksjdf', b'default')
114 util.safehasattr(o, 'lksjdf', b'default')
115 @eh.wrapfunction(func, 'lksjdf')
116 def f():
117 pass
118 @eh.wrapclass(klass, 'lksjdf')
119 def f():
120 pass
121
122 Test without attr*() as methods
123
124 $ cat > testfile.py <<EOF
125 > setattr(o, 'a', 1)
126 > util.setattr(o, 'ae', 1)
127 > util.getattr(o, 'alksjdf', 'default')
128 > util.addattr(o, 'asdf')
129 > util.hasattr(o, 'lksjdf', 'default')
130 > util.safehasattr(o, 'lksjdf', 'default')
131 > @eh.wrapfunction(func, 'lksjdf')
132 > def f():
133 > pass
134 > @eh.wrapclass(klass, 'lksjdf')
135 > def f():
136 > pass
137 > EOF
138 $ byteify_strings testfile.py
139 setattr(o, 'a', 1)
140 util.setattr(o, b'ae', 1)
141 util.getattr(o, b'alksjdf', b'default')
142 util.addattr(o, b'asdf')
143 util.hasattr(o, b'lksjdf', b'default')
144 util.safehasattr(o, b'lksjdf', b'default')
145 @eh.wrapfunction(func, b'lksjdf')
146 def f():
147 pass
148 @eh.wrapclass(klass, b'lksjdf')
149 def f():
150 pass
151
152 Test ignore comments
153
154 $ cat > testfile.py <<EOF
155 > #py3-transform: off
156 > "none"
157 > "of"
158 > 'these'
159 > s = """should"""
160 > d = '''be'''
161 > #py3-transform: on
162 > "this should"
163 > 'and this also'
164 >
165 > #no-py3-transform
166 > l = "this should be ignored"
167 > l2 = "this shouldn't"
168 >
169 > EOF
170 $ byteify_strings testfile.py
171 #py3-transform: off
172 "none"
173 "of"
174 'these'
175 s = """should"""
176 d = '''be'''
177 #py3-transform: on
178 b"this should"
179 b'and this also'
180
181 #no-py3-transform
182 l = "this should be ignored"
183 l2 = b"this shouldn't"
184
185 Test triple-quoted strings
186
187 $ cat > testfile.py <<EOF
188 > """This is ignored
189 > """
190 >
191 > line = """
192 > This should not be
193 > """
194 > line = '''
195 > Neither should this
196 > '''
197 > EOF
198 $ byteify_strings testfile.py
199 """This is ignored
200 """
201
202 line = b"""
203 This should not be
204 """
205 line = b'''
206 Neither should this
207 '''
208
209 Test prefixed strings
210
211 $ cat > testfile.py <<EOF
212 > obj['test'] = b"1234"
213 > obj[r'test'] = u"1234"
214 > EOF
215 $ byteify_strings testfile.py
216 obj[b'test'] = b"1234"
217 obj[r'test'] = u"1234"
General Comments 0
You need to be logged in to leave comments. Login now