Пример #1
0
def test_errored_rpm_call(config, call):
    compliance_client = ComplianceClient(config)
    compliance_client.get_initial_profiles = lambda: [{'attributes': {'ref_id': 'foo'}}]
    compliance_client.get_profiles_matching_os = lambda: []
    compliance_client.find_scap_policy = lambda ref_id: '/usr/share/xml/scap/foo.xml'
    compliance_client.run_scan = lambda ref_id, policy_xml: None
    with raises(SystemExit):
        compliance_client.oscap_scan()
Пример #2
0
def test_oscap_scan(config, assert_rpms):
    compliance_client = ComplianceClient(config)
    compliance_client.get_initial_profiles = lambda: [{'attributes': {'ref_id': 'foo', 'tailored': False}}]
    compliance_client.get_profiles_matching_os = lambda: []
    compliance_client.find_scap_policy = lambda ref_id: '/usr/share/xml/scap/foo.xml'
    compliance_client.run_scan = lambda ref_id, policy_xml, output_path, tailoring_file_path: None
    compliance_client.archive.archive_tmp_dir = '/tmp'
    compliance_client.archive.archive_name = 'insights-compliance-test'
    archive, content_type = compliance_client.oscap_scan()
    assert archive == '/tmp/insights-compliance-test.tar.gz'
    assert content_type == COMPLIANCE_CONTENT_TYPE
Пример #3
0
def test_get_profiles_matching_os(config, os_release_info_mock):
    compliance_client = ComplianceClient(config)
    compliance_client.inventory_id = '068040f1-08c8-43e4-949f-7d6470e9111c'
    compliance_client.conn.session.get = Mock(
        return_value=Mock(status_code=200,
                          json=Mock(
                              return_value={'data': [{
                                  'attributes': 'data'
                              }]})))
    assert compliance_client.get_profiles_matching_os() == [{
        'attributes':
        'data'
    }]
    compliance_client.conn.session.get.assert_called_with(
        'https://localhost/app/compliance/profiles',
        params={
            'search':
            'system_ids=068040f1-08c8-43e4-949f-7d6470e9111c canonical=false os_minor_version=5'
        })
Пример #4
0
def test_oscap_scan_with_results_repaired(config, assert_rpms, tmpdir):
    results_file = tmpdir.mkdir('results').join('result.xml')
    results_file.write("""
<xml>
  <version>0.9</version>
</xml>
    """)

    compliance_client = ComplianceClient(config)
    compliance_client._ssg_version = '0.1.25'
    compliance_client._get_inventory_id = lambda: ''
    compliance_client.get_initial_profiles = lambda: [{'attributes': {'ref_id': 'foo', 'tailored': False}}]
    compliance_client.get_profiles_matching_os = lambda: []
    compliance_client.find_scap_policy = lambda ref_id: '/usr/share/xml/scap/foo.xml'
    compliance_client._results_file = lambda archive_dir, profile: str(results_file)
    compliance_client.run_scan = lambda ref_id, policy_xml, output_path, tailoring_file_path: None
    compliance_client.archive.archive_tmp_dir = '/tmp'
    compliance_client.archive.archive_name = 'insights-compliance-test'
    archive, content_type = compliance_client.oscap_scan()
    assert archive == '/tmp/insights-compliance-test.tar.gz'
    assert content_type == COMPLIANCE_CONTENT_TYPE

    repaired_results = open(str(results_file)).read()
    assert '<version>0.1.25</version>' in repaired_results
Пример #5
0
def test_get_profiles_matching_os(config, linux_distro_mock):
    compliance_client = ComplianceClient(config)
    compliance_client.hostname = 'foo'
    compliance_client.conn.session.get = Mock(return_value=Mock(status_code=200, json=Mock(return_value={'data': [{'attributes': 'data'}]})))
    assert compliance_client.get_profiles_matching_os() == [{'attributes': 'data'}]
    compliance_client.conn.session.get.assert_called_with('https://localhost/app/compliance/profiles', params={'search': 'system_names=foo canonical=false os_minor_version=5'})