@@ -171,34 +171,37 @@ def is_continue_on_failure(self, func, exception):
171171 def get_step_positions (self , file_name ):
172172 positions = []
173173 for step , infos in self .__steps_map .items ():
174- positions = positions + [{'stepValue' : step , 'span' : i .span }
175- for i in infos if i .file_name == file_name ]
174+ positions .extend (
175+ [{'stepValue' : step , 'span' : i .span } for i in infos if paths_equal (i .file_name , file_name )]
176+ )
176177 return positions
177178
178179 def _get_all_hooks (self , file_name ):
179180 all_hooks = []
180181 for hook in self .hooks :
181- all_hooks = all_hooks + \
182- [h for h in getattr (self , "__{}" .format (hook ))
183- if h . file_name == file_name ]
182+ all_hooks . extend (
183+ [h for h in getattr (self , "__{}" .format (hook )) if paths_equal ( h . file_name , file_name )]
184+ )
184185 return all_hooks
185186
186187 def get_all_methods_in (self , file_name ):
187188 methods = []
188189 for _ , infos in self .__steps_map .items ():
189- methods = methods + [i for i in infos if i .file_name == file_name ]
190+ methods .extend (
191+ [i for i in infos if paths_equal (i .file_name , file_name )]
192+ )
190193 return methods + self ._get_all_hooks (file_name )
191194
192195 def is_file_cached (self , file_name ):
193196 for _ , infos in self .__steps_map .items ():
194- if any (i .file_name == file_name for i in infos ):
197+ if any (paths_equal ( i .file_name , file_name ) for i in infos ):
195198 return True
196199 return False
197200
198201 def remove_steps (self , file_name ):
199202 new_map = {}
200203 for step , infos in self .__steps_map .items ():
201- filtered_info = [i for i in infos if i .file_name != file_name ]
204+ filtered_info = [i for i in infos if not paths_equal ( i .file_name , file_name ) ]
202205 if len (filtered_info ) > 0 :
203206 new_map [step ] = filtered_info
204207 self .__steps_map = new_map
@@ -209,6 +212,11 @@ def clear(self):
209212 setattr (self , '__{}' .format (hook ), [])
210213
211214
215+ def paths_equal (first_file_path , second_file_path ):
216+ """ Normalize paths in order to compare them. """
217+ return os .path .normcase (str (first_file_path )) == os .path .normcase (str (second_file_path ))
218+
219+
212220def _filter_hooks (tags , hooks ):
213221 filtered_hooks = []
214222 for hook in hooks :
0 commit comments