コード例 #1
0
def test_get_usage(status_info):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=status_info)

    result = get_usage(api)

    assert len(result) == 6

    assert result[0]['system'] == 'darktrace-hostname-1'
    assert result[0]['type'] == 'master'
    assert result[0]['timestamp']
    assert result[0]['cpu'] == 10
    assert result[0]['dtqueue'] == 0
    assert result[0]['memused'] == 10
    assert result[0]['bandwidth'] == 1000000000
    assert result[0]['connectionsPerMinuteCurrent'] == 100
    assert result[0]['label'] == 'Label with a name1'

    assert result[1]['system'] == 'probe-hostname-1'
    assert result[1]['ip'] == '192.168.1.1'
    assert result[1]['type'] == 'probe'
    assert result[1]['timestamp']
    assert result[1]['cpu'] == 2
    assert result[1]['memused'] == 10
    assert result[1]['bandwidth'] == 100000000
    assert result[1]['connectionsPerMinuteCurrent'] == 10
    assert result[1]['label'] == 'Label with a name1'
    assert 'dtqueue' not in result[1]  # probes don't have dtqueue
コード例 #2
0
def test_get_intelfeed(watchlist):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=watchlist)

    watched_items = get_intelfeed(api)
    assert len(watched_items) == len(watchlist)
    assert watched_items[2] == watchlist[2]
コード例 #3
0
def test_get_tags(tags):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=tags)

    result = get_tags(api)

    assert len(result) == 6
    assert result[3]['name'] == tags[3]['name']
コード例 #4
0
def test_get_instances_region(status_info):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=status_info)

    instances = get_instances_region(api)

    assert instances[1]['label'] == 'Label with a name1'
    assert 'region' not in instances[1]
    assert instances[2]['label'] == 'Location2 - Name2'
    assert instances[2]['region'] == 'Location2'
コード例 #5
0
ファイル: test_dtapi.py プロジェクト: rabobank-cdc/dtctl
def test_get_request_with_bad_status_code(requests_mock):
    api = Api(HOST, PUB_DTKEY, PRIVKEY)

    requests_mock.get(HOST + '/status',
                      text='504 Server Error: Gateway Time-out',
                      status_code=504)
    with pytest.raises(SystemExit) as exc_info:
        _ = api.get('/status')

    assert str(exc_info.value.args[0]).startswith('504')
コード例 #6
0
ファイル: test_dtapi.py プロジェクト: rabobank-cdc/dtctl
def test_get_request(capsys, requests_mock):
    api = Api(HOST, PUB_DTKEY, PRIVKEY)

    success_respone = {'key': 'value'}

    requests_mock.get(HOST + '/info', json=success_respone)
    result = api.get('/info', test='test')
    captured = capsys.readouterr()

    assert result['key'] == 'value'
    assert HOST + '/info?test=test' not in captured.out
コード例 #7
0
def test_search_tagged_devices():
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=[{
        "teid": 1000000000000,
        "tehid": 1000000000001,
        "entityType": "Device",
        "entityValue": "1000000000005",
        "valid": True
    }])

    result = search_tags(api, None, 'Admin')
    assert len(result) == 1
コード例 #8
0
def test_get_instances(status_info):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=status_info)

    instances = get_instances(api, True)

    assert instances['darktrace-instance-1']['id'] == 1
    assert instances['darktrace-instance-1']['label'] == 'Label with a name1'
    assert len(instances['darktrace-instance-1']['probes']) == 1
    assert instances['darktrace-instance-1']['probes'][0][
        'ip'] == '192.168.1.1'
    assert 'region' not in instances['darktrace-instance-1']
    assert instances['darktrace-instance-2']['id'] == 2
    assert instances['darktrace-instance-2']['label'] == 'Location2 - Name2'
    assert instances['darktrace-instance-2']['location'] == 'Location2'
    assert instances['darktrace-instance-2']['probes'][2]['error']
    assert instances['darktrace-instance-3']['error']
コード例 #9
0
def test_get_devices(devices):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=devices)

    result = get_devices(api, None, 3600)

    assert len(result) == 3
    assert 'ips' in result[0]
    assert result[0]['ip'] == '10.0.0.10'
    assert result[0]['typename'] == 'desktop'

    assert 'credentials' in result[1]
    assert result[1]['typename'] == 'laptop'
    assert result[1]['hostname'] == 'testdevice.domain.dev'

    assert len(result[2]['ips']) == 1
    assert result[2]['typename'] == 'server'
    assert result[2]['credentials'][0]['credential'] == 'testCredential2'
コード例 #10
0
def test_search_tag_names(tags):
    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=tags)

    result = search_tags(api, 'A*', None)
    assert len(result) == 5

    result = search_tags(api, '*Threat', None)
    assert len(result) == 1
    assert result[0]['name'] == 'Active Threat'

    result = search_tags(api, 'Antigen?', None)
    assert len(result) == 1

    result = search_tags(api, 'Antigen*', None)
    assert len(result) == 2

    result = search_tags(api, 'Android D?vice', None)
    assert len(result) == 1
    assert result[0]['name'] == 'Android Device'
コード例 #11
0
def test_get_info():
    data_file = 'tests/data/time.json'
    with open(data_file) as infile:
        json_data = json.load(infile)

    api = Api('http://127.0.0.1', 'pubkey', 'privkey')
    api.get = MagicMock(return_value=json_data)

    result = get_info(api)

    assert json_data['antigena'] == result['antigena']
    assert json_data['antigenainternet'] == result['antigenainternet']
    assert json_data['antigenanetwork'] == result['antigenanetwork']
    assert json_data['build'] == result['build']
    assert json_data['inoculation'] == result['inoculation']
    assert json_data['mobileAppConfigured'] == result['mobileAppConfigured']
    assert json_data['time'] == result['time']
    assert json_data['timems'] == result['timems']
    assert json_data['uptime'] == result['uptime']
    assert json_data['version'] == result['version']
コード例 #12
0
ファイル: test_dtapi.py プロジェクト: rabobank-cdc/dtctl
def test_api_endpoint_not_supported(requests_mock):
    api = Api(HOST, PUB_DTKEY, PRIVKEY)
    entry = 'test.test.test'

    # Darktrace provides positive status_codes, even on redirects
    requests_mock.post(HOST + '/intelfeed?addentry',
                       text='<title>Darktrace | Login</title>',
                       status_code=200)
    requests_mock.get(HOST + '/non-supported-endpoint',
                      text='<title>Darktrace | Login</title>',
                      status_code=201)

    with pytest.raises(SystemExit) as exc_info:
        _ = api.post('/intelfeed',
                     postdata={'addentry': entry},
                     addentry=entry)

    assert 'API endpoint not supported' == exc_info.value.args[0]

    with pytest.raises(SystemExit) as exc_info:
        _ = api.get('/non-supported-endpoint')

    assert 'API endpoint not supported' == exc_info.value.args[0]