@@ -171,46 +171,53 @@ def test_glob_directory_names(self):
171
171
self .norm ('aab' , 'F' )])
172
172
173
173
def test_glob_directory_with_trailing_slash (self ):
174
- # Patterns ending with a slash shouldn't match non-dirs
175
- res = glob .glob (self .norm ('Z*Z' ) + os .sep )
176
- self .assertEqual (res , [])
177
- res = glob .glob (self .norm ('ZZZ' ) + os .sep )
178
- self .assertEqual (res , [])
179
- # When there is a wildcard pattern which ends with os.sep, glob()
180
- # doesn't blow up.
181
- res = glob .glob (self .norm ('aa*' ) + os .sep )
182
- self .assertEqual (len (res ), 2 )
183
- # either of these results is reasonable
184
- self .assertIn (set (res ), [
185
- {self .norm ('aaa' ), self .norm ('aab' )},
186
- {self .norm ('aaa' ) + os .sep , self .norm ('aab' ) + os .sep },
187
- ])
174
+ seps = (os .sep , os .altsep ) if os .altsep else (os .sep ,)
175
+ for sep in seps :
176
+ # Patterns ending with a slash shouldn't match non-dirs
177
+ self .assertEqual (glob .glob (self .norm ('Z*Z' ) + sep ), [])
178
+ self .assertEqual (glob .glob (self .norm ('ZZZ' ) + sep ), [])
179
+ self .assertEqual (glob .glob (self .norm ('aaa' ) + sep ),
180
+ [self .norm ('aaa' ) + sep ])
181
+ # Preserving the redundant separators is an implementation detail.
182
+ self .assertEqual (glob .glob (self .norm ('aaa' ) + sep * 2 ),
183
+ [self .norm ('aaa' ) + sep * 2 ])
184
+ # When there is a wildcard pattern which ends with a pathname
185
+ # separator, glob() doesn't blow.
186
+ # The result should end with the pathname separator.
187
+ # Normalizing the trailing separator is an implementation detail.
188
+ eq = self .assertSequencesEqual_noorder
189
+ eq (glob .glob (self .norm ('aa*' ) + sep ),
190
+ [self .norm ('aaa' ) + os .sep , self .norm ('aab' ) + os .sep ])
191
+ # Stripping the redundant separators is an implementation detail.
192
+ eq (glob .glob (self .norm ('aa*' ) + sep * 2 ),
193
+ [self .norm ('aaa' ) + os .sep , self .norm ('aab' ) + os .sep ])
188
194
189
195
def test_glob_bytes_directory_with_trailing_slash (self ):
190
196
# Same as test_glob_directory_with_trailing_slash, but with a
191
197
# bytes argument.
192
- res = glob .glob (os .fsencode (self .norm ('Z*Z' ) + os .sep ))
193
- self .assertEqual (res , [])
194
- res = glob .glob (os .fsencode (self .norm ('ZZZ' ) + os .sep ))
195
- self .assertEqual (res , [])
196
- res = glob .glob (os .fsencode (self .norm ('aa*' ) + os .sep ))
197
- self .assertEqual (len (res ), 2 )
198
- # either of these results is reasonable
199
- self .assertIn (set (res ), [
200
- {os .fsencode (self .norm ('aaa' )),
201
- os .fsencode (self .norm ('aab' ))},
202
- {os .fsencode (self .norm ('aaa' ) + os .sep ),
203
- os .fsencode (self .norm ('aab' ) + os .sep )},
204
- ])
198
+ seps = (os .sep , os .altsep ) if os .altsep else (os .sep ,)
199
+ for sep in seps :
200
+ self .assertEqual (glob .glob (os .fsencode (self .norm ('Z*Z' ) + sep )), [])
201
+ self .assertEqual (glob .glob (os .fsencode (self .norm ('ZZZ' ) + sep )), [])
202
+ self .assertEqual (glob .glob (os .fsencode (self .norm ('aaa' ) + sep )),
203
+ [os .fsencode (self .norm ('aaa' ) + sep )])
204
+ self .assertEqual (glob .glob (os .fsencode (self .norm ('aaa' ) + sep * 2 )),
205
+ [os .fsencode (self .norm ('aaa' ) + sep * 2 )])
206
+ eq = self .assertSequencesEqual_noorder
207
+ eq (glob .glob (os .fsencode (self .norm ('aa*' ) + sep )),
208
+ [os .fsencode (self .norm ('aaa' ) + os .sep ),
209
+ os .fsencode (self .norm ('aab' ) + os .sep )])
210
+ eq (glob .glob (os .fsencode (self .norm ('aa*' ) + sep * 2 )),
211
+ [os .fsencode (self .norm ('aaa' ) + os .sep ),
212
+ os .fsencode (self .norm ('aab' ) + os .sep )])
205
213
206
214
@skip_unless_symlink
207
215
def test_glob_symlinks (self ):
208
216
eq = self .assertSequencesEqual_noorder
209
217
eq (self .glob ('sym3' ), [self .norm ('sym3' )])
210
218
eq (self .glob ('sym3' , '*' ), [self .norm ('sym3' , 'EF' ),
211
219
self .norm ('sym3' , 'efg' )])
212
- self .assertIn (self .glob ('sym3' + os .sep ),
213
- [[self .norm ('sym3' )], [self .norm ('sym3' ) + os .sep ]])
220
+ eq (self .glob ('sym3' + os .sep ), [self .norm ('sym3' ) + os .sep ])
214
221
eq (self .glob ('*' , '*F' ),
215
222
[self .norm ('aaa' , 'zzzF' ),
216
223
self .norm ('aab' , 'F' ), self .norm ('sym3' , 'EF' )])
0 commit comments