From b3e9926171fe621e7bce318c3cd7ffab14cc0d10 Mon Sep 17 00:00:00 2001 From: uie54187 Date: Tue, 8 Apr 2025 16:00:40 +0800 Subject: [PATCH] feature #34: Support to read IMPORT_INFO for OsResource --- README.md | 2 ++ src/eb_model/models/abstract.py | 12 ++++++++++++ src/eb_model/models/os_xdm.py | 8 -------- src/eb_model/tests/parser/test_os_xdm_parser.py | 4 +++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 18bc670..4f1ae24 100644 --- a/README.md +++ b/README.md @@ -205,3 +205,5 @@ PrefSystemImporter --base-path c:/EB/ACG-8_8_8_WIN32X86/workspace/simple_demo_rt **Version 1.1.7** 1. Solve the case issue of read_optional_value enables attribute. +2. Support to read IMPORT_INFO for OsResource. +3. Add the test cases for OsXdmParser. \ No newline at end of file diff --git a/src/eb_model/models/abstract.py b/src/eb_model/models/abstract.py index db5625a..279f0eb 100644 --- a/src/eb_model/models/abstract.py +++ b/src/eb_model/models/abstract.py @@ -41,6 +41,7 @@ class EcucParamConfContainerDef(EcucObject): def __init__(self, parent, name) -> None: super().__init__(parent, name) + self.importerInfo: str = None self.elements = {} # type: Dict[str, EcucObject] def getTotalElement(self) -> int: @@ -66,6 +67,17 @@ def getElement(self, name: str) -> EcucObject: if (name not in self.elements): return None return self.elements[name] + + def getImporterInfo(self) -> str: + return self.importerInfo + + def setImporterInfo(self, value: str) -> None: + self.importerInfo = value + + def isCalculatedSvcAs(self) -> bool: + if self.importerInfo is not None and self.importerInfo.startswith("@CALC(SvcAs"): + return True + return False class EcucRefType: diff --git a/src/eb_model/models/os_xdm.py b/src/eb_model/models/os_xdm.py index 8d7032e..86e29b6 100644 --- a/src/eb_model/models/os_xdm.py +++ b/src/eb_model/models/os_xdm.py @@ -486,18 +486,10 @@ class OsResource(EcucParamConfContainerDef): def __init__(self, parent, name): super().__init__(parent, name) - self.importerInfo: str = None - self.osResourceProperty: EcucEnumerationParamDef = None self.osResourceAccessingApplicationRefs: List[EcucRefType] = [] self.osResourceLinkedResourceRefs: List[EcucRefType] = [] - def getImporterInfo(self) -> str: - return self.importerInfo - - def setImporterInfo(self, value: str) -> None: - self.importerInfo = value - def getOsResourceProperty(self): return self.osResourceProperty diff --git a/src/eb_model/tests/parser/test_os_xdm_parser.py b/src/eb_model/tests/parser/test_os_xdm_parser.py index 97a35f2..e6d38f3 100644 --- a/src/eb_model/tests/parser/test_os_xdm_parser.py +++ b/src/eb_model/tests/parser/test_os_xdm_parser.py @@ -63,6 +63,7 @@ def test_read_os_resources(self): resource1 = resources[0] assert resource1.getName() == "Resource1" assert resource1.getImporterInfo() == "@CALC(SvcAs,os.resources,1)" + assert resource1.isCalculatedSvcAs() is True assert resource1.getOsResourceProperty() == "STANDARD" assert len(resource1.getOsResourceAccessingApplicationRefs()) == 1 for ref in resource1.getOsResourceAccessingApplicationRefs(): @@ -71,6 +72,7 @@ def test_read_os_resources(self): resource2 = resources[1] assert resource2.getName() == "Resource2" assert resource2.getImporterInfo() is None + assert resource2.isCalculatedSvcAs() is False assert resource2.getOsResourceProperty() == "INTERNAL" assert len(resource2.getOsResourceAccessingApplicationRefs()) == 0 @@ -145,4 +147,4 @@ def test_read_os_applications(self): assert len(app2.getOsAppResourceRefs()) == 0 assert len(app2.getOsAppTaskRefs()) == 0 assert len(app2.getOsAppIsrRefs()) == 0 - ''' # noqa: E501 + noqa: E501 '''