def test_WebInspectScan_stop_scan_success(scan_mock, scan_override_mock, wi_config_mock, config_git_mock,
                                                       stop_scan_mock):
    # Given
    overrides = _setup_overrides()

    scan_object = WebInspectScan(overrides)
    scan_object._set_api(None, None)

    # When
    scan_object._stop_scan("scan_guid")

    # Expect
    assert stop_scan_mock.call_count == 1
def test_WebInspectScan_scan_complete_success(scan_mock, scan_override_mock, wi_config_mock, config_git_mock,
                                              get_status_mock, export_mock):
    # Given
    overrides = _setup_overrides()
    scan_object = WebInspectScan(overrides)
    scan_object._set_api(None, None)
    scan_object.scan_id = "test_guid"
    get_status_mock.return_value = 'complete'

    # When
    scan_object._scan()

    # Expect
    assert export_mock.call_count == 2
def test_WebInspectScan_exit_gracefully_success(scan_mock, scan_override_mock, wi_config_mock, config_git_mock,
                                                       stop_scan_mock):
    # Given
    overrides = _setup_overrides()

    scan_object = WebInspectScan(overrides)
    scan_object._set_api(None, None)
    scan_object.scan_id = "scan_guid"  # this gets set when a scan is created - we're not creating a scan here.

    # When
    with pytest.raises(SystemExit):
        scan_object._exit_scan_gracefully("scan_guid")

    # Expect
    assert stop_scan_mock.call_count == 1
def test_WebInspectScan_scan_failure_none_type_scan_status(scan_mock, scan_override_mock, wi_config_mock, config_git_mock,
                                              get_status_mock, log_mock):
    # Given
    overrides = _setup_overrides()
    scan_object = WebInspectScan(overrides)
    scan_object._set_api(None, None)
    scan_object.scan_id = "test_guid"
    get_status_mock.return_value = None  # Sometimes we got a None response - we want to exit on that(?)

    # When
    with pytest.raises(SystemExit):
        scan_object._scan()

    # Expect
    assert log_mock.call_count == 1
def test_WebInspectScan_scan_bad_state_failure(scan_mock, scan_override_mock, wi_config_mock, config_git_mock,
                                              get_status_mock, log_mock):
    # Given
    overrides = _setup_overrides()
    scan_object = WebInspectScan(overrides)
    scan_object._set_api(None, None)
    scan_object.scan_id = "test_guid"
    get_status_mock.return_value = 'SomeRandomState'  # any non: Running, NotRunning, Complete state

    # When
    with pytest.raises(SystemExit):
        scan_object._scan()

    # Expect
    assert log_mock.call_count == 1
Example #6
0
def test_WebInspectScan_scan_not_running_failure(scan_mock, scan_override_mock,
                                                 wi_config_mock,
                                                 config_git_mock,
                                                 get_status_mock,
                                                 stop_scan_mock):
    # Given
    overrides = _setup_overrides()
    scan_object = WebInspectScan(overrides)
    scan_object._set_api(None, None)
    scan_object.scan_id = "test_guid"
    get_status_mock.return_value = 'notrunning'

    # When
    with pytest.raises(SystemExit):
        scan_object._scan()

    # Expect
    assert stop_scan_mock.call_count == 1
def test_WebInspectScan_upload_settings_and_policies_success(scan_mock, scan_override_mock, wi_config_mock,
                                                             config_git_mock, verify_scan_mock, upload_settings_mock,
                                                             upload_webmacros_mock, upload_policy_mock):
    # Given
    overrides = _setup_overrides(expected_upload_settings="settings.xml", expected_upload_webmacro="upload.macro",
                                 expected_upload_policy="test policy?")

    scan_object = WebInspectScan(overrides)
    # below was done to logically isolate this test - which was harder to do than I thought.
    #   since self.webinspect_api isn't declared in the init and we have mocked the function that creates
    #   it, we have to set the api.
    scan_object._set_api(None, None)
    scan_object.webinspect_api.setting_overrides.webinspect_upload_policy = True
    scan_object.webinspect_api.setting_overrides.scan_policy = None
    # When
    scan_object._upload_settings_and_policies()

    # Expect
    assert verify_scan_mock.call_count == 1
    assert upload_settings_mock.call_count == 1
    assert upload_webmacros_mock.call_count == 1
    assert upload_policy_mock.call_count == 1