Skip to content

Commit b92472e

Browse files
committed
Modify test helper to make assert statements
1 parent f4c501e commit b92472e

File tree

3 files changed

+32
-9
lines changed

3 files changed

+32
-9
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
33

4-
from data_designer.plugins.testing.utils import is_valid_plugin
4+
from data_designer.plugins.testing.utils import assert_valid_plugin
55

66
__all__ = [
7-
is_valid_plugin.__name__,
7+
assert_valid_plugin.__name__,
88
]

src/data_designer/plugins/testing/utils.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@
66
from data_designer.plugins.plugin import Plugin
77

88

9-
def is_valid_plugin(plugin: Plugin) -> bool:
10-
if not isinstance(plugin.config_cls, ConfigBase):
11-
return False
12-
if not isinstance(plugin.task_cls, ConfigurableTask):
13-
return False
14-
15-
return True
9+
def assert_valid_plugin(plugin: Plugin) -> None:
10+
assert issubclass(plugin.config_cls, ConfigBase), "Plugin config class is not a subclass of ConfigBase"
11+
assert issubclass(plugin.task_cls, ConfigurableTask), "Plugin task class is not a subclass of ConfigurableTask"

tests/plugins/test_plugin.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from data_designer.plugins.errors import PluginLoadError
1111
from data_designer.plugins.plugin import Plugin, PluginType
1212
from data_designer.plugins.testing.examples import MODULE_NAME, ValidTestConfig, ValidTestTask
13+
from data_designer.plugins.testing.utils import assert_valid_plugin
1314

1415

1516
@pytest.fixture
@@ -130,6 +131,32 @@ def test_validation_fails_with_invalid_modules() -> None:
130131
plugin_type=PluginType.COLUMN_GENERATOR,
131132
)
132133

134+
with pytest.raises(PluginLoadError, match="Could not find class"):
135+
Plugin(
136+
task_class_name=f"{MODULE_NAME}.ValidTestTask",
137+
config_class_name=f"{MODULE_NAME}.NotADefinedClass",
138+
plugin_type=PluginType.COLUMN_GENERATOR,
139+
)
140+
141+
142+
def test_helper_utility_identifies_invalid_classes() -> None:
143+
"""Test the helper utility provides deeper validation of config classes."""
144+
valid_plugin = Plugin(
145+
task_class_name=f"{MODULE_NAME}.ValidTestTask",
146+
config_class_name=f"{MODULE_NAME}.ValidTestConfig",
147+
plugin_type=PluginType.COLUMN_GENERATOR,
148+
)
149+
assert_valid_plugin(valid_plugin)
150+
151+
plugin_with_improper_task_class_type = Plugin(
152+
task_class_name=f"{MODULE_NAME}.ValidTestConfig",
153+
config_class_name=f"{MODULE_NAME}.ValidTestConfig",
154+
plugin_type=PluginType.COLUMN_GENERATOR,
155+
)
156+
with pytest.raises(AssertionError):
157+
assert_valid_plugin(plugin_with_improper_task_class_type)
158+
159+
133160

134161
# =============================================================================
135162
# Integration Tests

0 commit comments

Comments
 (0)