allow None to be passed in ids list for specific test and recieve idmaker name for test
This commit is contained in:
		
							parent
							
								
									a70e92777f
								
							
						
					
					
						commit
						be1954afbc
					
				|  | @ -1017,8 +1017,7 @@ class Metafunc(FuncargnamesCompatAttr): | ||||||
|         if ids and len(ids) != len(argvalues): |         if ids and len(ids) != len(argvalues): | ||||||
|             raise ValueError('%d tests specified with %d ids' %( |             raise ValueError('%d tests specified with %d ids' %( | ||||||
|                              len(argvalues), len(ids))) |                              len(argvalues), len(ids))) | ||||||
|         if not ids: |         ids = idmaker(argnames, argvalues, idfn, ids) | ||||||
|             ids = idmaker(argnames, argvalues, idfn) |  | ||||||
|         newcalls = [] |         newcalls = [] | ||||||
|         for callspec in self._calls or [CallSpec2(self)]: |         for callspec in self._calls or [CallSpec2(self)]: | ||||||
|             for param_index, valset in enumerate(argvalues): |             for param_index, valset in enumerate(argvalues): | ||||||
|  | @ -1130,13 +1129,16 @@ def _idval(val, argname, idx, idfn): | ||||||
|             pass |             pass | ||||||
|     return str(argname)+str(idx) |     return str(argname)+str(idx) | ||||||
| 
 | 
 | ||||||
| def _idvalset(idx, valset, argnames, idfn): | def _idvalset(idx, valset, argnames, idfn, ids): | ||||||
|     this_id = [_idval(val, argname, idx, idfn) |     if ids is None or ids[idx] is None: | ||||||
|                for val, argname in zip(valset, argnames)] |         this_id = [_idval(val, argname, idx, idfn) | ||||||
|     return "-".join(this_id) |                    for val, argname in zip(valset, argnames)] | ||||||
|  |         return "-".join(this_id) | ||||||
|  |     else: | ||||||
|  |         return ids[idx] | ||||||
| 
 | 
 | ||||||
| def idmaker(argnames, argvalues, idfn=None): | def idmaker(argnames, argvalues, idfn=None, ids=None): | ||||||
|     ids = [_idvalset(valindex, valset, argnames, idfn) |     ids = [_idvalset(valindex, valset, argnames, idfn, ids) | ||||||
|            for valindex, valset in enumerate(argvalues)] |            for valindex, valset in enumerate(argvalues)] | ||||||
|     if len(set(ids)) < len(ids): |     if len(set(ids)) < len(ids): | ||||||
|         # user may have provided a bad idfn which means the ids are not unique |         # user may have provided a bad idfn which means the ids are not unique | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue