def test_schedule_job(): handle_message("test do job 10") jj = scheduler.get_jobs_of_type("test_good_job") assert len(jj) == 1 assert_job_matches(jj[0], "test_good_job", {"n": "10"}, "channel", T(60), None)
def test_cancel_job_with_job_scheduled(): scheduler.schedule_job("good_job", {"k": "v"}, "channel", TS, 0) scheduler.cancel_job("good_job") jj = scheduler.get_jobs_of_type("good_job") assert len(jj) == 0
def test_cancel_job_with_no_jobs_of_same_type_scheduled(): scheduler.schedule_job("odd_job", {"k": "v"}, "channel") scheduler.cancel_job("good_job") jj = scheduler.get_jobs_of_type("odd_job") assert len(jj) == 1
def test_on_opened_pr(web_client): headers = { "X-Hub-Signature": "sha1=e5d9fcbaa6acbc5031228155470fb82cbe12e018" } rsp = web_client.post("/github/", data=PAYLOAD_PR_OPENED, headers=headers) assert rsp.status_code == 200 assert not scheduler.get_jobs_of_type("op_deploy")
def test_on_closed_merged_pr(web_client): headers = { "X-Hub-Signature": "sha1=adac1db7f924b4572c8379dc44caa415d44b2b1d" } rsp = web_client.post("/github/", data=PAYLOAD_PR_CLOSED, headers=headers) assert rsp.status_code == 200 jj = scheduler.get_jobs_of_type("op_deploy") assert len(jj) == 1
def test_schedule_job_with_no_jobs_of_same_type_already_scheduled(): scheduler.schedule_job("odd_job", {"k": "v"}, "channel") scheduler.schedule_job("good_job", {"k": "v"}, "channel") jj = scheduler.get_jobs_of_type("good_job") assert len(jj) == 1 assert_job_matches(jj[0], "good_job", {"k": "v"}, "channel", T(0), None)
def test_schedule_job_with_job_of_same_type_scheduled(): scheduler.schedule_job("good_job", {"k": "v"}, "channel", TS, 0) scheduler.schedule_job("good_job", {"k": "w"}, "channel1", TS, 10) jj = scheduler.get_jobs_of_type("good_job") assert len(jj) == 1 assert_job_matches(jj[0], "good_job", {"k": "w"}, "channel1", T(10), None)
def test_on_opened_issue(web_client): headers = { "X-Hub-Signature": "sha1=0022fa92c53686109b918c709518899662fe246f" } rsp = web_client.post("/github/", data=PAYLOAD_ISSUE_OPENED, headers=headers) assert rsp.status_code == 200 assert not scheduler.get_jobs_of_type("op_deploy")
def test_on_closed_unmerged_pr(web_client): headers = { "X-Hub-Signature": "sha1=9bd6f75640ef7a6c1a573cf5d423be7d8ed23c3b" } rsp = web_client.post("/github/test/", data=PAYLOAD_PR_CLOSED_UNMERGED, headers=headers) assert rsp.status_code == 200 assert not scheduler.get_jobs_of_type("test_deploy")
def test_on_closed_unmerged_pr(web_client): headers = { "X-Hub-Signature": "sha1=7216f76b9a0d1b78b6ff77197f99fcab43f745d3" } rsp = web_client.post("/github/", data=PAYLOAD_PR_CLOSED_UNMERGED, headers=headers) assert rsp.status_code == 200 assert not scheduler.get_jobs_of_type("op_deploy")
def test_on_opened_issue(web_client): headers = { "X-Hub-Signature": "sha1=6e6218f3e729aca3abce2644128a1d29af2c76ab" } rsp = web_client.post("/github/test/", data=PAYLOAD_ISSUE_OPENED, headers=headers) assert rsp.status_code == 200 assert not scheduler.get_jobs_of_type("test_deploy")
def test_on_opened_pr(web_client): headers = { "X-Hub-Signature": "sha1=4cc85e5c6e7a1f3a03aeaef924f1cfa7a3d72384" } rsp = web_client.post("/github/test/", data=PAYLOAD_PR_OPENED, headers=headers) assert rsp.status_code == 200 assert not scheduler.get_jobs_of_type("test_deploy")
def test_cancel_job_with_job_running(freezer): scheduler.schedule_job("good_job", {"k": "v"}, "channel", TS, 0) freezer.move_to(T(5)) scheduler.reserve_job() scheduler.cancel_job("good_job") jj = scheduler.get_jobs_of_type("good_job") assert len(jj) == 1
def test_schedule_job_with_job_of_same_type_running(freezer): scheduler.schedule_job("good_job", {"k": "v"}, "channel", TS, 0) freezer.move_to(T(5)) scheduler.reserve_job() scheduler.schedule_job("good_job", {"k": "w"}, "channel1", TS, 5) jj = scheduler.get_jobs_of_type("good_job") assert len(jj) == 2 assert_job_matches(jj[0], "good_job", {"k": "v"}, "channel", T(0), T(5)) assert_job_matches(jj[1], "good_job", {"k": "w"}, "channel1", T(10), None)
def test_schedule_job_with_job_of_same_type_running_and_another_scheduled(freezer): scheduler.schedule_job("good_job", {"k": "v"}, "channel") freezer.move_to(T(5)) scheduler.reserve_job() scheduler.schedule_job("good_job", {"k": "w"}, "channel1", 5) scheduler.schedule_job("good_job", ["args2"], "channel2", 15) jj = scheduler.get_jobs_of_type("good_job") assert len(jj) == 2 assert_job_matches(jj[0], "good_job", {"k": "v"}, "channel", T(0), T(5)) assert_job_matches(jj[1], "good_job", ["args2"], "channel2", T(20), None)
def test_on_closed_merged_pr(web_client): headers = { "X-Hub-Signature": "sha1=3e09e676b4a62b634401b44b4c4ff1f58404e746" } with patch("ebmbot.webserver.github.config", new=dummy_config): rsp = web_client.post("/github/test/", data=PAYLOAD_PR_CLOSED, headers=headers) assert rsp.status_code == 200 jj = scheduler.get_jobs_of_type("test_deploy") assert len(jj) == 1 assert_job_matches(jj[0], "test_deploy", {}, "#general", T(60), None)
def test_url_formatting_removed(): handle_message("test do url <http://www.foo.com>") jj = scheduler.get_jobs_of_type("test_job_with_url") assert len(jj) == 1 assert_job_matches(jj[0], "test_job_with_url", {"url": "http://www.foo.com"}, "channel", T(0), None)
def test_cancel_job(): handle_message("test do job 10") assert scheduler.get_jobs_of_type("test_good_job") handle_message("test cancel job") assert not scheduler.get_jobs_of_type("test_good_job")