def test_existing_labels(): """Test with existing labels.""" hook = CommentLabelHook(whitelist=["foo"]) payload = { "comment": {"body": "##foo bar baz"}, "issue": {"assignee": {}, "labels": [{"name": "existing"}], "url": "http://"}, } assert hook.should_perform_action(payload), "Got labels." assert hook.actions(payload, Mock())[0]["args"]["labels"] == ["foo", "status: claimed"]
def test_payload(): """Test using a 'real' payload.""" hook = CommentLabelHook(whitelist=["foo"]) payload = get_payload("issue_comment_label.json") assert hook.should_perform_action(payload), "Issue comment with labels." actions = hook.actions(payload, Mock()) assert actions[0]["args"] == { "issue_url": "https://api.github.com/repos/user-foo/repo-bar/issues/14", "labels": ["foo", "status: claimed"], }
def test_no_labels(): """Test no labels to apply.""" hook = CommentLabelHook() payload = { "comment": { "body": "foo bar baz" }, "issue": { "assignee": {}, "url": "http://", }, } assert not hook.should_perform_action(payload), "No labels"
def test_labels_from_comment(): """Test with new labels.""" hook = CommentLabelHook(whitelist=["foo"]) payload = { "comment": { "body": "##foo bar baz" }, "issue": { "url": "http://", }, } assert hook.should_perform_action(payload), "Got labels." assert hook.actions(payload, Mock())[0]["args"]["labels"] == ["foo"]
def test_labels_pr(): """Test with labels, but for a pull request.""" hook = CommentLabelHook(whitelist=["foo"]) payload = {"comment": {"body": "##foo bar baz"}, "issue": {"assignee": {}, "pull_request": {}, "url": "http://"}} assert hook.should_perform_action(payload), "Got labels." assert hook.actions(payload, Mock())[0]["args"]["labels"] == ["foo"]