@@ -171,46 +171,53 @@ def test_glob_directory_names(self):
171171 self .norm ('aab' , 'F' )])
172172
173173 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 ])
188194
189195 def test_glob_bytes_directory_with_trailing_slash (self ):
190196 # Same as test_glob_directory_with_trailing_slash, but with a
191197 # 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 )])
205213
206214 @skip_unless_symlink
207215 def test_glob_symlinks (self ):
208216 eq = self .assertSequencesEqual_noorder
209217 eq (self .glob ('sym3' ), [self .norm ('sym3' )])
210218 eq (self .glob ('sym3' , '*' ), [self .norm ('sym3' , 'EF' ),
211219 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 ])
214221 eq (self .glob ('*' , '*F' ),
215222 [self .norm ('aaa' , 'zzzF' ),
216223 self .norm ('aab' , 'F' ), self .norm ('sym3' , 'EF' )])
0 commit comments