Skip to content

Commit 32c6f18

Browse files
committed
Split CMake Tests
1 parent 8a46b2e commit 32c6f18

File tree

2 files changed

+115
-109
lines changed

2 files changed

+115
-109
lines changed
Lines changed: 0 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
"""Unit test the provider plugin"""
22

3-
from pathlib import Path
43
from typing import Any
54

65
import pytest
76

8-
from cppython.plugins.cmake.builder import Builder
97
from cppython.plugins.cmake.plugin import CMakeGenerator
108
from cppython.plugins.cmake.schema import (
119
CMakeConfiguration,
12-
CMakePresets,
13-
CMakeSyncData,
1410
)
1511
from cppython.test.pytest.tests import GeneratorUnitTests
1612
from cppython.test.schema import Variant
17-
from cppython.utility.utility import TypeName
1813

1914
pytest_plugins = ['tests.fixtures.cmake']
2015

@@ -44,107 +39,3 @@ def fixture_plugin_type() -> type[CMakeGenerator]:
4439
The type of the Generator
4540
"""
4641
return CMakeGenerator
47-
48-
@staticmethod
49-
def test_provider_write(tmp_path: Path) -> None:
50-
"""Verifies that the provider preset writing works as intended
51-
52-
Args:
53-
tmp_path: The input path the use
54-
"""
55-
builder = Builder()
56-
57-
includes_file = tmp_path / 'includes.cmake'
58-
with includes_file.open('w', encoding='utf-8') as file:
59-
file.write('example contents')
60-
61-
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
62-
builder.write_provider_preset(tmp_path, data)
63-
64-
@staticmethod
65-
def test_cppython_write(tmp_path: Path) -> None:
66-
"""Verifies that the cppython preset writing works as intended
67-
68-
Args:
69-
tmp_path: The input path the use
70-
"""
71-
builder = Builder()
72-
73-
provider_directory = tmp_path / 'providers'
74-
provider_directory.mkdir(parents=True, exist_ok=True)
75-
76-
includes_file = provider_directory / 'includes.cmake'
77-
with includes_file.open('w', encoding='utf-8') as file:
78-
file.write('example contents')
79-
80-
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
81-
builder.write_provider_preset(provider_directory, data)
82-
83-
builder.write_cppython_preset(tmp_path, provider_directory, data)
84-
85-
@staticmethod
86-
def test_root_write(tmp_path: Path) -> None:
87-
"""Verifies that the root preset writing works as intended
88-
89-
Args:
90-
tmp_path: The input path the use
91-
"""
92-
builder = Builder()
93-
94-
cppython_preset_directory = tmp_path / 'cppython'
95-
cppython_preset_directory.mkdir(parents=True, exist_ok=True)
96-
97-
provider_directory = cppython_preset_directory / 'providers'
98-
provider_directory.mkdir(parents=True, exist_ok=True)
99-
100-
includes_file = provider_directory / 'includes.cmake'
101-
with includes_file.open('w', encoding='utf-8') as file:
102-
file.write('example contents')
103-
104-
root_file = tmp_path / 'CMakePresets.json'
105-
presets = CMakePresets()
106-
107-
serialized = presets.model_dump_json(exclude_none=True, by_alias=False, indent=4)
108-
with open(root_file, 'w', encoding='utf8') as file:
109-
file.write(serialized)
110-
111-
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
112-
builder.write_provider_preset(provider_directory, data)
113-
114-
cppython_preset_file = builder.write_cppython_preset(cppython_preset_directory, provider_directory, data)
115-
116-
builder.write_root_presets(root_file, cppython_preset_file)
117-
118-
@staticmethod
119-
def test_relative_root_write(tmp_path: Path) -> None:
120-
"""Verifies that the root preset writing works as intended
121-
122-
Args:
123-
tmp_path: The input path the use
124-
"""
125-
builder = Builder()
126-
127-
cppython_preset_directory = tmp_path / 'tool' / 'cppython'
128-
cppython_preset_directory.mkdir(parents=True, exist_ok=True)
129-
130-
provider_directory = cppython_preset_directory / 'providers'
131-
provider_directory.mkdir(parents=True, exist_ok=True)
132-
133-
includes_file = provider_directory / 'includes.cmake'
134-
with includes_file.open('w', encoding='utf-8') as file:
135-
file.write('example contents')
136-
137-
relative_indirection = tmp_path / 'nested'
138-
relative_indirection.mkdir(parents=True, exist_ok=True)
139-
140-
root_file = relative_indirection / 'CMakePresets.json'
141-
presets = CMakePresets()
142-
serialized = presets.model_dump_json(exclude_none=True, by_alias=False, indent=4)
143-
with open(root_file, 'w', encoding='utf8') as file:
144-
file.write(serialized)
145-
146-
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
147-
builder.write_provider_preset(provider_directory, data)
148-
149-
cppython_preset_file = builder.write_cppython_preset(cppython_preset_directory, provider_directory, data)
150-
builder.write_root_presets(root_file, cppython_preset_file)
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
"""Tests for CMakePresets"""
2+
3+
from pathlib import Path
4+
5+
from cppython.plugins.cmake.builder import Builder
6+
from cppython.plugins.cmake.schema import CMakePresets, CMakeSyncData
7+
from cppython.utility.utility import TypeName
8+
9+
10+
class TestCMakePresets:
11+
"""Tests for the CMakePresets class"""
12+
13+
@staticmethod
14+
def test_provider_write(tmp_path: Path) -> None:
15+
"""Verifies that the provider preset writing works as intended
16+
17+
Args:
18+
tmp_path: The input path the use
19+
"""
20+
builder = Builder()
21+
22+
includes_file = tmp_path / 'includes.cmake'
23+
with includes_file.open('w', encoding='utf-8') as file:
24+
file.write('example contents')
25+
26+
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
27+
builder.write_provider_preset(tmp_path, data)
28+
29+
@staticmethod
30+
def test_cppython_write(tmp_path: Path) -> None:
31+
"""Verifies that the cppython preset writing works as intended
32+
33+
Args:
34+
tmp_path: The input path the use
35+
"""
36+
builder = Builder()
37+
38+
provider_directory = tmp_path / 'providers'
39+
provider_directory.mkdir(parents=True, exist_ok=True)
40+
41+
includes_file = provider_directory / 'includes.cmake'
42+
with includes_file.open('w', encoding='utf-8') as file:
43+
file.write('example contents')
44+
45+
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
46+
builder.write_provider_preset(provider_directory, data)
47+
48+
builder.write_cppython_preset(tmp_path, provider_directory, data)
49+
50+
@staticmethod
51+
def test_root_write(tmp_path: Path) -> None:
52+
"""Verifies that the root preset writing works as intended
53+
54+
Args:
55+
tmp_path: The input path the use
56+
"""
57+
builder = Builder()
58+
59+
cppython_preset_directory = tmp_path / 'cppython'
60+
cppython_preset_directory.mkdir(parents=True, exist_ok=True)
61+
62+
provider_directory = cppython_preset_directory / 'providers'
63+
provider_directory.mkdir(parents=True, exist_ok=True)
64+
65+
includes_file = provider_directory / 'includes.cmake'
66+
with includes_file.open('w', encoding='utf-8') as file:
67+
file.write('example contents')
68+
69+
root_file = tmp_path / 'CMakePresets.json'
70+
presets = CMakePresets()
71+
72+
serialized = presets.model_dump_json(exclude_none=True, by_alias=False, indent=4)
73+
with open(root_file, 'w', encoding='utf8') as file:
74+
file.write(serialized)
75+
76+
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
77+
builder.write_provider_preset(provider_directory, data)
78+
79+
cppython_preset_file = builder.write_cppython_preset(cppython_preset_directory, provider_directory, data)
80+
81+
builder.write_root_presets(root_file, cppython_preset_file)
82+
83+
@staticmethod
84+
def test_relative_root_write(tmp_path: Path) -> None:
85+
"""Verifies that the root preset writing works as intended
86+
87+
Args:
88+
tmp_path: The input path the use
89+
"""
90+
builder = Builder()
91+
92+
cppython_preset_directory = tmp_path / 'tool' / 'cppython'
93+
cppython_preset_directory.mkdir(parents=True, exist_ok=True)
94+
95+
provider_directory = cppython_preset_directory / 'providers'
96+
provider_directory.mkdir(parents=True, exist_ok=True)
97+
98+
includes_file = provider_directory / 'includes.cmake'
99+
with includes_file.open('w', encoding='utf-8') as file:
100+
file.write('example contents')
101+
102+
relative_indirection = tmp_path / 'nested'
103+
relative_indirection.mkdir(parents=True, exist_ok=True)
104+
105+
root_file = relative_indirection / 'CMakePresets.json'
106+
presets = CMakePresets()
107+
serialized = presets.model_dump_json(exclude_none=True, by_alias=False, indent=4)
108+
with open(root_file, 'w', encoding='utf8') as file:
109+
file.write(serialized)
110+
111+
data = CMakeSyncData(provider_name=TypeName('test-provider'), top_level_includes=includes_file)
112+
builder.write_provider_preset(provider_directory, data)
113+
114+
cppython_preset_file = builder.write_cppython_preset(cppython_preset_directory, provider_directory, data)
115+
builder.write_root_presets(root_file, cppython_preset_file)

0 commit comments

Comments
 (0)