Add typing for FixtureRequest.param (#10133)
For now, mark it as Any until #8073 is solved Fixes #9514
This commit is contained in:
		
							parent
							
								
									cbcb3a356e
								
							
						
					
					
						commit
						c1d134172c
					
				
							
								
								
									
										1
									
								
								AUTHORS
								
								
								
								
							
							
						
						
									
										1
									
								
								AUTHORS
								
								
								
								
							|  | @ -252,6 +252,7 @@ Nicholas Murphy | ||||||
| Niclas Olofsson | Niclas Olofsson | ||||||
| Nicolas Delaby | Nicolas Delaby | ||||||
| Nikolay Kondratyev | Nikolay Kondratyev | ||||||
|  | Nipunn Koorapati | ||||||
| Olga Matoula | Olga Matoula | ||||||
| Oleg Pidsadnyi | Oleg Pidsadnyi | ||||||
| Oleg Sushchenko | Oleg Sushchenko | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Type-annotate ``FixtureRequest.param`` as ``Any`` as a stop gap measure until :issue:`8073` is fixed. | ||||||
|  | @ -345,7 +345,7 @@ def reorder_items_atscope( | ||||||
|     return items_done |     return items_done | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_direct_param_fixture_func(request): | def get_direct_param_fixture_func(request: "FixtureRequest") -> Any: | ||||||
|     return request.param |     return request.param | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -407,6 +407,15 @@ class FixtureRequest: | ||||||
|         self._arg2fixturedefs = fixtureinfo.name2fixturedefs.copy() |         self._arg2fixturedefs = fixtureinfo.name2fixturedefs.copy() | ||||||
|         self._arg2index: Dict[str, int] = {} |         self._arg2index: Dict[str, int] = {} | ||||||
|         self._fixturemanager: FixtureManager = pyfuncitem.session._fixturemanager |         self._fixturemanager: FixtureManager = pyfuncitem.session._fixturemanager | ||||||
|  |         # Notes on the type of `param`: | ||||||
|  |         # -`request.param` is only defined in parametrized fixtures, and will raise | ||||||
|  |         #   AttributeError otherwise. Python typing has no notion of "undefined", so | ||||||
|  |         #   this cannot be reflected in the type. | ||||||
|  |         # - Technically `param` is only (possibly) defined on SubRequest, not | ||||||
|  |         #   FixtureRequest, but the typing of that is still in flux so this cheats. | ||||||
|  |         # - In the future we might consider using a generic for the param type, but | ||||||
|  |         #   for now just using Any. | ||||||
|  |         self.param: Any | ||||||
| 
 | 
 | ||||||
|     @property |     @property | ||||||
|     def scope(self) -> "_ScopeName": |     def scope(self) -> "_ScopeName": | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue