fixtures: remove special cases when deciding when pytest.fixture() is a direct decoration
pytest.fixture() can be used either as
    @pytest.fixture
    def func(): ...
or as
    @pytest.fixture()
    def func(): ...
or (while maybe not intended)
    func = pytest.fixture(func)
so it needs to inspect internally whether it got a function in the first
positional argument or not.
Previously, there were was oddity. In the following,
    func = pytest.fixture(func, autouse=True)
    # OR
    func = pytest.fixture(func, parms=['a', 'b'])
The result is as if `func` wasn't passed.
There isn't any reason for this special that I can understand, so remove
it.
			
			
This commit is contained in:
		
							parent
							
								
									54ae27f081
								
							
						
					
					
						commit
						5507752c53
					
				| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					When using ``pytest.fixture`` on a function directly, as in ``pytest.fixture(func)``,
 | 
				
			||||||
 | 
					if the ``autouse`` or ``params`` arguments are also passed, the function is no longer
 | 
				
			||||||
 | 
					ignored, but is marked as a fixture.
 | 
				
			||||||
| 
						 | 
					@ -1152,13 +1152,15 @@ def fixture(
 | 
				
			||||||
    if params is not None:
 | 
					    if params is not None:
 | 
				
			||||||
        params = list(params)
 | 
					        params = list(params)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if fixture_function and params is None and autouse is False:
 | 
					    fixture_marker = FixtureFunctionMarker(
 | 
				
			||||||
        # direct decoration
 | 
					        scope=scope, params=params, autouse=autouse, ids=ids, name=name,
 | 
				
			||||||
        return FixtureFunctionMarker(scope, params, autouse, name=name)(
 | 
					    )
 | 
				
			||||||
            fixture_function
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return FixtureFunctionMarker(scope, params, autouse, ids=ids, name=name)
 | 
					    # Direct decoration.
 | 
				
			||||||
 | 
					    if fixture_function:
 | 
				
			||||||
 | 
					        return fixture_marker(fixture_function)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return fixture_marker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def yield_fixture(
 | 
					def yield_fixture(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue