diff --git a/pyproject.toml b/pyproject.toml index f81bffc..f2da957 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "runzero-sdk" -version = "0.8.6" +version = "0.8.7" description = "The runZero platform sdk" license = "BSD-2-Clause" authors = ["runZero "] diff --git a/runzero/types/_data_models_gen.py b/runzero/types/_data_models_gen.py index dba651a..adfc56c 100644 --- a/runzero/types/_data_models_gen.py +++ b/runzero/types/_data_models_gen.py @@ -1097,3 +1097,15 @@ class Config: """ Flat map of arbitrary string key/value pairs representing custom attribute data not described in properties above. Note the maximum number of keys and length of values. Additionally, property names may only be 256 characters long. """ + trust_os: Optional[bool] = Field(False, alias="trustOS", example=False) + """ + If true, the provided OS value will be used even if it cannot be normalized using runZero's fingerprint engine. + """ + trust_os_version: Optional[bool] = Field(False, alias="trustOSVersion", example=False) + """ + If true, the provided OS version value will be used even if it cannot be normalized using runZero's fingerprint engine. + """ + trust_device_type: Optional[bool] = Field(False, alias="trustDeviceType", example=False) + """ + If true, the provided device type value will be used even if it cannot be normalized using runZero's fingerprint engine. + """ diff --git a/tests/runzero/test_orgs.py b/tests/runzero/test_orgs.py index 14bb5cc..354623d 100644 --- a/tests/runzero/test_orgs.py +++ b/tests/runzero/test_orgs.py @@ -41,7 +41,22 @@ def test_client_org_create_and_delete(account_client, integration_config, reques assert created_org.name == org_name org = org_mgr.get(org_id=created_org.id) - assert org == created_org + if ( + equal_ignore_fields( + org, + created_org, + [ + "export_token", + "export_token_created_at", + "export_token_last_used_at", + "export_token_last_used_by", + "export_token_counter", + ], + ) + != True + ): + # asserting here instead of equal_ignore_fields gives better error messages + assert org == created_org org_mgr.delete(org_id=org.id) with pytest.raises(ClientError): @@ -82,3 +97,22 @@ def test_client_org_create_twice_is_error(account_client, integration_config, re org_mgr.delete(created_org.id) with pytest.raises(ClientError): org_mgr.get(org_id=created_org.id) + + +def equal_ignore_fields(obj1, obj2, ignore_fields=None): + if ignore_fields is None: + ignore_fields = [] + + if type(obj1) != type(obj2): + return False + + for field in obj1.__dict__: # Assuming objects have __dict__ for attributes + if field in ignore_fields: + continue + value1 = getattr(obj1, field) + value2 = getattr(obj2, field) + + # For other fields or if the special condition wasn't met + if value1 != value2: + return False + return True