11"""Fixtures for the cmake plugin"""
22
3+ from pathlib import Path
34from typing import cast
45
56import pytest
67
78from cppython .plugins .cmake .schema import CMakeConfiguration
9+ from cppython .test .schema import Variant , Variants
810
911
10- def _cmake_data_list () -> list [CMakeConfiguration ]:
12+ def _cmake_data_list () -> Variants [CMakeConfiguration ]:
1113 """Creates a list of mocked configuration types
1214
1315 Returns:
1416 A list of variants to test
1517 """
16- variants = []
18+ data = Variants [ CMakeConfiguration ]()
1719
1820 # Default
19- variants .append (CMakeConfiguration (configuration_name = 'default' ))
21+ default = CMakeConfiguration (configuration_name = 'default' )
22+ default_variant = Variant [CMakeConfiguration ](configuration = default )
2023
21- # variants.append(CMakeConfiguration(preset_file=Path("inner/CMakePresets.json"), configuration_name="default"))
24+ # Non-root preset file
25+ config = CMakeConfiguration (preset_file = Path ('inner/CMakePresets.json' ), configuration_name = 'default' )
26+ config_variant = Variant [CMakeConfiguration ](configuration = config , directory = Path ('cmake/non-root' ))
2227
23- return variants
28+ data .variants .append (default_variant )
29+ data .variants .append (config_variant )
30+
31+ return data
2432
2533
2634@pytest .fixture (
2735 name = 'cmake_data' ,
2836 scope = 'session' ,
2937 params = _cmake_data_list (),
3038)
31- def fixture_cmake_data (request : pytest .FixtureRequest ) -> CMakeConfiguration :
39+ def fixture_cmake_data (request : pytest .FixtureRequest ) -> Variant [ CMakeConfiguration ] :
3240 """A fixture to provide a list of configuration types
3341
3442 Args:
@@ -37,4 +45,4 @@ def fixture_cmake_data(request: pytest.FixtureRequest) -> CMakeConfiguration:
3745 Returns:
3846 A configuration type instance
3947 """
40- return cast (CMakeConfiguration , request .param )
48+ return cast (Variant [ CMakeConfiguration ] , request .param )
0 commit comments