def test_generate_field_users_groups_input(self): """ Given: Valid value from dictionary type under "fieldsToValues" argument When: - running archer-update-record Then: - assert fields are generated correctly """ client = Client(BASE_URL, '', '', '', '', 400) field_key, field_value = generate_field_value(client, "", {'Type': 8}, { "users": [20], "groups": [30] }) assert field_key == 'Value' assert field_value == { "UserList": [{ "ID": 20 }], "GroupList": [{ "ID": 30 }] }
def test_generate_field_value_values_list_input(self, requests_mock): cache = demisto.getIntegrationContext() cache['fieldValueList'] = {} demisto.setIntegrationContext(cache) requests_mock.post(BASE_URL + 'api/core/security/login', json={ 'RequestedObject': { 'SessionToken': 'session-id' }, 'IsSuccessful': True }) requests_mock.get(BASE_URL + 'api/core/system/fielddefinition/304', json=GET_FIElD_DEFINITION_RES) requests_mock.get(BASE_URL + 'api/core/system/valueslistvalue/valueslist/62', json=VALUE_LIST_RES) client = Client(BASE_URL, '', '', '', '', 400) field_key, field_value = generate_field_value(client, "", { 'Type': 4, 'FieldId': 304 }, ["High"]) assert field_key == 'Value' assert field_value == {'ValuesListIds': [473]}
def test_generate_field_users_groups_input(): client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value(client, "", {'Type': 8}, { "users": [20], "groups": [30] }) assert field_key == 'Value' assert field_value == {"UserList": [{"ID": 20}], "GroupList": [{"ID": 30}]}
def test_generate_invalid_field_users_groups_input(self): """ Given: Invalid value under "fieldsToValues" argument with type 8 (lists) When: - running archer-update-record Then: - Raise exception indicates that the value is not with the right format """ client = Client(BASE_URL, '', '', '', '') with pytest.raises(DemistoException) as e: generate_field_value(client, "test", {'Type': 8}, 'user1, user2') assert "The value of the field: test must be a dictionary type and include a list under \"users\" key or " \ "\"groups\" key e.g: {\"Policy Owner\":{\"users\":[20],\"groups\":[30]}}" in str(e.value)
def test_generate_field_external_link_input(self): client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value(client, "", {'Type': 7}, [{"value": "github", "link": "https://github.com"}, {"value": "google", "link": "https://google.com"}]) assert field_key == 'Value' assert field_value == [{"Name": "github", "URL": "https://github.com"}, {"Name": "google", "URL": "https://google.com"}]
def test_generate_field_value(requests_mock): """ Given - generate_field_value on Values List type When - the source is not a list Then - ensure generate_field_value will handle it """ cache = demisto.getIntegrationContext() cache['fieldValueList'] = {} demisto.setIntegrationContext(cache) requests_mock.get(BASE_URL + 'api/core/system/fielddefinition/16172', json=GET_FIElD_DEFINITION_RES) requests_mock.post(BASE_URL + 'api/core/security/login', json={ 'RequestedObject': { 'SessionToken': 'session-id' }, 'IsSuccessful': 'yes' }) requests_mock.get(BASE_URL + 'api/core/system/valueslistvalue/valueslist/62', json=VALUE_LIST_RES_FOR_SOURCE) client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value( client, "Source", { 'FieldId': '16172', 'IsRequired': False, 'Name': 'Source', 'RelatedValuesListId': 2092, 'Type': 4 }, 'ArcSight') assert field_key == 'Value' assert field_value == {'ValuesListIds': [471]}
def test_generate_field_ip_address_input(): client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value(client, "", {'Type': 19}, '127.0.0.1') assert field_key == 'IpAddressBytes' assert field_value == '127.0.0.1'
def test_generate_field_cross_reference_input(field_value, result): client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value(client, "", {'Type': 9}, field_value) assert field_key == 'Value' assert field_value == result
def test_generate_field_value_text_input(): client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value(client, "", {'Type': 1}, "Demisto") assert field_key == 'Value' assert field_value == 'Demisto'
def test_generate_field_cross_reference_input(): client = Client(BASE_URL, '', '', '', '') field_key, field_value = generate_field_value(client, "", {'Type': 9}, [1, 2]) assert field_key == 'Value' assert field_value == [{"ContentID": 1}, {"ContentID": 2}]