示例#1
0
def check_response_facts(facts_known, response):
    for i, fact_known in enumerate(facts_known):
        assert fact_known.module == response.data['results'][i]['module']
        assert timestamp_apiformat(
            fact_known.timestamp) == response.data['results'][i]['timestamp']
        check_url(response.data['results'][i]['related']['fact_view'],
                  fact_known, fact_known.module)
示例#2
0
def test_content(hosts, fact_scans, get, user, fact_ansible_json, monkeypatch_jsonbfield_get_db_prep_save):
    (fact_known, response) = setup_common(hosts, fact_scans, get, user)

    assert fact_known.host_id == response.data['host']
    # TODO: Just make response.data['facts'] when we're only dealing with postgres, or if jsonfields ever fixes this bug
    assert fact_ansible_json == (json.loads(response.data['facts']) if isinstance(response.data['facts'], str) else response.data['facts'])
    assert timestamp_apiformat(fact_known.timestamp) == response.data['timestamp']
    assert fact_known.module == response.data['module']
示例#3
0
def _test_search_by_module(hosts, fact_scans, get, user, fact_json, module_name):
    params = {
        'module': module_name
    }
    (fact_known, response) = setup_common(hosts, fact_scans, get, user, module_name=module_name, get_params=params)

    # TODO: Just make response.data['facts'] when we're only dealing with postgres, or if jsonfields ever fixes this bug
    assert fact_json == (json.loads(response.data['facts']) if isinstance(response.data['facts'], str) else response.data['facts'])
    assert timestamp_apiformat(fact_known.timestamp) == response.data['timestamp']
    assert module_name == response.data['module']
示例#4
0
def check_url(url1_full, fact_known, module):
    url1_split = urllib.parse.urlsplit(url1_full)
    url1 = url1_split.path
    url1_params = urllib.parse.parse_qsl(url1_split.query)

    url2 = reverse('api:host_fact_compare_view', kwargs={'pk': fact_known.host.pk})
    url2_params = [('module', module), ('datetime', timestamp_apiformat(fact_known.timestamp))]

    assert url1 == url2
    # Sort before comparing because urlencode can't be trusted
    url1_params_sorted = sorted(url1_params, key=lambda val: val[0])
    url2_params_sorted = sorted(url2_params, key=lambda val: val[0])
    assert urllib.parse.urlencode(url1_params_sorted) == urllib.parse.urlencode(url2_params_sorted)