Skip to content
This repository was archived by the owner on Dec 27, 2023. It is now read-only.

Commit 7111d31

Browse files
committed
Dynamic load only SUT implementations
Signed-off-by: Andrea Cervesato <[email protected]>
1 parent 7352d0d commit 7111d31

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

ltp/main.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,15 @@ def _discover_sut(folder: str) -> list:
134134
continue
135135

136136
if issubclass(klass, SUT):
137-
LOADED_SUT.append(klass())
137+
obj = klass()
138+
try:
139+
# pylint: disable=pointless-statement
140+
obj.name
141+
obj.config_help
142+
except NotImplementedError:
143+
continue
144+
145+
LOADED_SUT.append(obj)
138146

139147
if len(LOADED_SUT) > 0:
140148
LOADED_SUT.sort(key=lambda x: x.name)

ltp/tests/test_main.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ def test_sut_plugins(self, tmpdir):
7070
" @property\n"
7171
" def name(self) -> str:\n"
7272
f" return 'mysut{index}'\n"
73+
" @property\n"
74+
" def config_help(self) -> dict:\n"
75+
" return {'myhelp': 'help'}\n"
7376
)
7477

7578
ltp.main._discover_sut(str(tmpdir))

0 commit comments

Comments
 (0)