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