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_get_policies_error(config): compliance_client = ComplianceClient(config) compliance_client.hostname = 'foo' compliance_client.conn.session.get = Mock(return_value=Mock( status_code=500)) assert compliance_client.get_policies() == [] compliance_client.conn.session.get.assert_called_with( 'https://localhost/app/compliance/systems', params={'search': 'name=foo'})
def test_get_policies_no_policies(config): 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': []}))) assert compliance_client.get_policies() == [] compliance_client.conn.session.get.assert_called_with( 'https://localhost/app/compliance/profiles', params={'search': 'system_names=foo'})
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): 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