File tree Expand file tree Collapse file tree 5 files changed +9
-29
lines changed
Expand file tree Collapse file tree 5 files changed +9
-29
lines changed Original file line number Diff line number Diff line change 2323# SOFTWARE.
2424#
2525###############################################################################
26- from abc import ABC
27-
2826from pydantic import BaseModel
2927
3028
31- class AnalyzerArgs (BaseModel , ABC ):
29+ class AnalyzerArgs (BaseModel ):
3230 model_config = {"extra" : "forbid" , "exclude_none" : True }
3331
3432 @classmethod
Original file line number Diff line number Diff line change 2626from typing import Optional
2727
2828from nodescraper .models import TimeRangeAnalysisArgs
29- from nodescraper .plugins .inband .dmesg .dmesgdata import DmesgData
3029
3130
3231class DmesgAnalyzerArgs (TimeRangeAnalysisArgs ):
3332 check_unknown_dmesg_errors : Optional [bool ] = True
3433 exclude_category : Optional [set [str ]] = None
35-
36- @classmethod
37- def build_from_model (cls , datamodel : DmesgData ) -> "TimeRangeAnalysisArgs" :
38- """build analyzer args from data model
39-
40- Args:
41- datamodel (DmesgDataModel): data model for plugin
42-
43- Raises:
44- NotImplementedError: does not implement abstract function
45-
46- Returns:
47- TimeRangeAnalysisArgs: instance of analyzer args class
48- """
49- raise NotImplementedError ("Dmesg does not support reference config creation" )
Original file line number Diff line number Diff line change 2626from typing import Optional
2727from unittest .mock import MagicMock
2828
29- from pydantic import BaseModel
30-
3129from nodescraper .enums import ExecutionStatus
3230from nodescraper .interfaces import ConnectionManager , PluginInterface
33- from nodescraper .models import PluginResult , TaskResult
31+ from nodescraper .models import AnalyzerArgs , PluginResult , TaskResult
3432from nodescraper .models .datamodel import DataModel
3533
3634
@@ -69,12 +67,12 @@ def disconnect(self):
6967 pass
7068
7169
72- class TestModelArg (BaseModel ):
70+ class TestModelArg (AnalyzerArgs ):
7371 model_attr : int = 123
7472
7573 @classmethod
7674 def build_from_model (cls , model ):
77- return cls ()
75+ return cls (model_attr = int ( model . some_version ) )
7876
7977
8078class DummyDataModel (DataModel ):
Original file line number Diff line number Diff line change @@ -13,8 +13,8 @@ def build_from_model(cls, datamodel):
1313
1414def test_build_from_model (dummy_data_model ):
1515 dummy = dummy_data_model (foo = 1 )
16- args = MyArgs ( args_foo = 1 )
17- args = args .build_from_model (dummy )
16+ # args = args.build_from_model(dummy )
17+ args = MyArgs .build_from_model (dummy )
1818 assert isinstance (args , MyArgs )
1919 assert args .args_foo == dummy .foo
2020 dump = args .model_dump (mode = "json" , exclude_none = True )
Original file line number Diff line number Diff line change @@ -228,10 +228,10 @@ def test_generate_reference_config(plugin_registry):
228228 source = "TestPluginA" ,
229229 message = "Plugin tasks completed successfully" ,
230230 result_data = DataPluginResult (
231- system_data = DummyDataModel (some_version = "M17 " ),
231+ system_data = DummyDataModel (some_version = "17 " ),
232232 collection_result = TaskResult (
233233 status = ExecutionStatus .OK ,
234- message = "BIOS: M17 " ,
234+ message = "BIOS: 17 " ,
235235 task = "BiosCollector" ,
236236 parent = "TestPluginA" ,
237237 artifacts = [],
@@ -242,4 +242,4 @@ def test_generate_reference_config(plugin_registry):
242242
243243 ref_config = cli .generate_reference_config (results , plugin_registry , logging .getLogger ())
244244 dump = ref_config .dict ()
245- assert dump ["plugins" ] == {"TestPluginA" : {"analysis_args" : {"model_attr" : 123 }}}
245+ assert dump ["plugins" ] == {"TestPluginA" : {"analysis_args" : {"model_attr" : 17 }}}
You can’t perform that action at this time.
0 commit comments