def test_find_scap_policy_not_found(config, Popen): Popen().wait = MagicMock(return_value=1) Popen().stderr.read = MagicMock(return_value='bad things happened') compliance_client = ComplianceClient(config) compliance_client.profile_files = lambda: ['/something'] with raises(SystemExit): compliance_client.find_scap_policy('ref_id')
def test_errored_rpm_call(config, call): compliance_client = ComplianceClient(config) compliance_client.get_policies = lambda: [{'ref_id': 'foo'}] 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()
def test_find_scap_policy(config, Popen): PATH = '/usr/share/xml/scap/ref_id.xml' Popen().wait = MagicMock(return_value=0) Popen().stdout.read = MagicMock(return_value=PATH.encode('utf-8')) compliance_client = ComplianceClient(config) compliance_client.profile_files = lambda: ['/something'] assert compliance_client.find_scap_policy('ref_id') == PATH
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()
def test_oscap_scan(config, assert_rpms): compliance_client = ComplianceClient(config) compliance_client.get_policies = lambda: [{'ref_id': 'foo'}] 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: 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
def test_missing_packages(config, call): compliance_client = ComplianceClient(config) compliance_client.get_policies = lambda: [{ 'attributes': { 'ref_id': 'foo' } }] 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()
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
def test_oscap_scan(config): compliance_client = ComplianceClient(config) compliance_client.get_policies = lambda: [{ 'attributes': { 'ref_id': 'foo' } }] compliance_client.find_scap_policy = lambda ref_id: '/usr/share/xml/scap/foo.xml' compliance_client.run_scan = lambda ref_id, policy_xml: None payload, content_type = compliance_client.oscap_scan() assert payload == OSCAP_RESULTS_OUTPUT assert content_type == COMPLIANCE_CONTENT_TYPE
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
def test_find_scap_policy_not_found(config, call): compliance_client = ComplianceClient(config) compliance_client.profile_files = lambda: ['/something'] with raises(SystemExit): compliance_client.find_scap_policy('ref_id')
def test_find_scap_policy(config, call): compliance_client = ComplianceClient(config) compliance_client.profile_files = lambda: ['/something'] assert compliance_client.find_scap_policy('ref_id') == PATH