Skip to content

Commit

Permalink
Updated endpoint data VisionOne empty/optional fields
Browse files Browse the repository at this point in the history
  • Loading branch information
t0mz06 committed Oct 29, 2024
1 parent df07870 commit cfd5367
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
19 changes: 13 additions & 6 deletions src/pytmv1/model/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from pydantic import BaseModel as PydanticBaseModel
from pydantic import ConfigDict, Field
from pydantic import RootModel as PydanticRootModel
from pydantic import model_validator
from pydantic import field_validator, model_validator
from pydantic.alias_generators import to_camel

from .enum import (
Expand Down Expand Up @@ -131,17 +131,24 @@ class Endpoint(BaseConsumable):
endpoint_name: Value
mac_address: ValueList
ip: ValueList
os_name: OperatingSystem
os_version: str
os_description: str
product_code: ProductCode
installed_product_codes: List[ProductCode]
os_name: Optional[OperatingSystem] = None
os_version: Optional[str] = None
os_description: Optional[str] = None
product_code: Optional[ProductCode] = None
installed_product_codes: List[ProductCode] = Field(default=[])
componentUpdatePolicy: Optional[str] = None
componentUpdateStatus: Optional[str] = None
componentVersion: Optional[str] = None
policyName: Optional[str] = None
protectionManager: Optional[str] = None

@field_validator("os_name", "product_code", mode="before")
@classmethod
def allow_empty_enum_string(cls, value: Any) -> Union[Any, None]:
if value == "":
return None
return value


class EmailActivity(BaseConsumable):
mail_msg_subject: Optional[str] = None
Expand Down
1 change: 0 additions & 1 deletion src/pytmv1/model/enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ class ProductCode(str, Enum):
SAO = "sao"
SDS = "sds"
XES = "xes"
NOT_FOUND = ""


class Provenance(str, Enum):
Expand Down
11 changes: 11 additions & 0 deletions tests/integration/test_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,14 @@ def test_list_endpoint_data(client):
assert result.response.items[0].componentUpdatePolicy == "N-2"
assert result.response.items[0].componentUpdateStatus == "pause"
assert result.response.items[0].componentVersion == "outdatedVersion"


def test_list_endpoint_data_optional_fields(client):
result = client.endpoint.list_data(endpointName="optional_fields")
assert result.result_code == ResultCode.SUCCESS
assert isinstance(result.response, ListEndpointDataResp)
assert len(result.response.items) > 0
assert not result.response.items[0].product_code
assert not result.response.items[0].os_name
assert not result.response.items[0].os_version
assert not result.response.items[0].os_description

0 comments on commit cfd5367

Please sign in to comment.