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]}
Exemple #3
0
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}]}
Exemple #4
0
    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)
Exemple #5
0
 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"}]
Exemple #6
0
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]}
Exemple #7
0
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'
Exemple #8
0
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
Exemple #9
0
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'
Exemple #10
0
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}]