def test_run_validations_success(env, processes): reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validations = [Validation("success")] run._run_validations(validations, reporter, processes) assert publishers[0].successes == 1 assert publishers[0].failures == 0
def test_run_validations_failure(env, processes): reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validations = [construct_failing_validation("failed")] run._run_validations(validations, reporter, processes) assert publishers[0].successes == 0 assert publishers[0].failures == 1
def test_run_validations_sets_time_on_failure(env, processes): reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validation = Validation("success") validation.perform = slow_fail run._run_validations([validation], reporter, processes) assert abs(reporter._reports[0].time - 2) <= 0.2
def test_run_validations_sets_time_with_function_if_available(env, processes): reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validation = Validation("success") validation.get_elapsed_time = return_5 run._run_validations([validation], reporter, processes) assert reporter._reports[0].time == 5
def test_run_validations_without_timeout_hangs(env, processes): #this test just verifies NeverFail behaves as we expect timeout = 60 reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validation = NeverFinish("shouldn't finish but will") run._run_validations([validation], reporter, processes, timeout) assert not reporter._reports[0].is_failure()
def test_run_validations_enforces_global_timeout(env, processes): timeout = 5 reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validation = NeverFinish("never finishes") run._run_validations([validation], reporter, processes, timeout) assert reporter._reports[0].is_failure() assert reporter._reports[0].time == timeout
def test_run_validations_fails_on_slow_success(env, processes): reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validation = Validation("success") validation.perform = slow_success validation.timeout = 1 run._run_validations([validation], reporter, processes) assert reporter._reports[0].is_failure()
def test_run_validations_group_success(env, processes): reporter = env["reporter"] publishers = [MockPublisher()] reporter.publishers = publishers validations = [Validation("success", group="a"), GroupValidation("group a", "a", low_threshold=2), Validation("success", group="a"), construct_failing_validation("failed", group="a")] run._run_validations(validations, reporter, processes) assert publishers[0].successes == 3 assert publishers[0].failures == 1