def test_timeout_too_short(slowserver): global sleep_time sleep_time = 2 publisher = HttpPublisher(name="Test", url=slowserver.url, timeout_seconds=1) with pytest.raises(PublishFailure): publisher.send(Failure("failure", Validation("validation", priority=Priority.NORMAL), "description"))
def test_not_enough_attempts(failingserver): global times_to_fail times_to_fail = 3 publisher = HttpPublisher(name="Test", url=failingserver.url, attempts=3) with pytest.raises(PublishFailure): publisher.send(Failure("failure", Validation("validation", priority=Priority.NORMAL), "description"))
def test_does_not_publish_success(goodserver): publisher = HttpPublisher(name="Test", url=goodserver.url, publish_successes=False) publisher.send( Success("success", Validation("validation", priority=Priority.NORMAL), "description")) assert not request_sent
def test_timeout_too_short(slowserver): global sleep_time sleep_time = 2 publisher = HttpPublisher(name="Test", url=slowserver.url + "/failure", timeout_seconds=3) publisher.send(Failure("failure", Validation("validation", priority=Priority.NORMAL), "description")) assert request_sent assert requested_url == "/failure"
def test_publishes_failure_to_correct_url(goodserver): publisher = HttpPublisher(name="Test", success_url=goodserver.url + '/success', failure_url=goodserver.url + '/failure', publish_successes=True) publisher.send( Failure("failure", Validation("validation", priority=Priority.NORMAL), "description")) assert request_sent assert requested_url == '/failure'
def test_enough_attempts(failingserver): global times_to_fail times_to_fail = 2 publisher = HttpPublisher(name="Test", url=failingserver.url + "/failure", attempts=3) publisher.send(Failure("failure", Validation("validation", priority=Priority.NORMAL), "description")) assert request_sent assert requested_url == "/failure"
def test_publishes_failure_to_correct_url(goodserver): publisher = HttpPublisher( name="Test", success_url=goodserver.url + "/success", failure_url=goodserver.url + "/failure", publish_successes=True, ) publisher.send(Failure("failure", Validation("validation", priority=Priority.NORMAL), "description")) assert request_sent assert requested_url == "/failure"
def test_not_enough_attempts(failingserver): global times_to_fail times_to_fail = 3 publisher = HttpPublisher(name="Test", url=failingserver.url, attempts=3) with pytest.raises(PublishFailure): publisher.send( Failure("failure", Validation("validation", priority=Priority.NORMAL), "description"))
def test_timeout_too_short(slowserver): global sleep_time sleep_time = 2 publisher = HttpPublisher(name="Test", url=slowserver.url, timeout_seconds=1) with pytest.raises(PublishFailure): publisher.send( Failure("failure", Validation("validation", priority=Priority.NORMAL), "description"))
def test_timeout_too_short(slowserver): global sleep_time sleep_time = 2 publisher = HttpPublisher(name="Test", url=slowserver.url + '/failure', timeout_seconds=3) publisher.send( Failure("failure", Validation("validation", priority=Priority.NORMAL), "description")) assert request_sent assert requested_url == '/failure'
def test_enough_attempts(failingserver): global times_to_fail times_to_fail = 2 publisher = HttpPublisher(name="Test", url=failingserver.url + '/failure', attempts=3) publisher.send( Failure("failure", Validation("validation", priority=Priority.NORMAL), "description")) assert request_sent assert requested_url == '/failure'
def test_requires_failure_url(): with pytest.raises(ValueError): HttpPublisher(success_url="success")
def test_requires_method(): with pytest.raises(ValueError): HttpPublisher(url="both", attempts=1, method=None)
def test_requires_at_least_one_attempt(): with pytest.raises(ValueError): HttpPublisher(url="both", attempts=0)
def test_does_not_publish_success(goodserver): publisher = HttpPublisher(name="Test", url=goodserver.url, publish_successes=False) publisher.send(Success("success", Validation("validation", priority=Priority.NORMAL), "description")) assert not request_sent
def test_publish_success_if_success_url_is_given(): publisher = HttpPublisher(success_url="success", failure_url="failure") assert publisher._publish_successes
def test_rep(): publisher = HttpPublisher(url="both") publisher.__repr__()
def test_success_and_failure_urls_are_set(): publisher = HttpPublisher(url="both") assert publisher._success_url == "both" assert publisher._failure_url == "both"
def test_retry_after_seconds_is_positive(): with pytest.raises(ValueError): HttpPublisher(url="both", attempts=1, retry_after_seconds=-43)