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_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_get_initial_profiles(config): 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_initial_profiles() == [{'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 external=false' })
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_get_initial_profiles(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': [{'attributes': 'data'}]}))) assert compliance_client.get_initial_profiles() == [{'attributes': 'data'}] compliance_client.conn.session.get.assert_called_with('https://localhost/app/compliance/profiles', params={'search': 'system_names=foo canonical=false external=false'})