Test Overview
This test uses pytest to run the same test function multiple times with different inputs. It uses an indirect fixture to prepare the input before the test runs. The test checks if the input string is converted to uppercase correctly.
This test uses pytest to run the same test function multiple times with different inputs. It uses an indirect fixture to prepare the input before the test runs. The test checks if the input string is converted to uppercase correctly.
import pytest @pytest.fixture def input_data(request): # Prepare the input by converting to uppercase return request.param.upper() @pytest.mark.parametrize('input_data', ['hello', 'world'], indirect=True) def test_uppercase(input_data): assert input_data.isupper(), f"Expected uppercase but got {input_data}"
| Step | Action | System State | Assertion | Result |
|---|---|---|---|---|
| 1 | Test starts | pytest test runner initialized | - | PASS |
| 2 | pytest collects test_uppercase with parametrize inputs ['hello', 'world'] and indirect=True | Test function identified with two parameter sets | - | PASS |
| 3 | For first parameter 'hello', pytest calls fixture input_data(request) with request.param='hello' | Fixture input_data prepares 'HELLO' | - | PASS |
| 4 | test_uppercase runs with input_data='HELLO' | Test function receives 'HELLO' | Check if 'HELLO'.isupper() is True | PASS |
| 5 | For second parameter 'world', pytest calls fixture input_data(request) with request.param='world' | Fixture input_data prepares 'WORLD' | - | PASS |
| 6 | test_uppercase runs with input_data='WORLD' | Test function receives 'WORLD' | Check if 'WORLD'.isupper() is True | PASS |
| 7 | Test ends with all parameter sets passed | Test report shows 2 passed tests | - | PASS |