def test_upvote_changes_to_downvote(): merge_request = MergeRequest() merge_request.upvote("dev1") merge_request.upvote("dev2") merge_request.downvote("dev1") assert merge_request.status == MergeRequestStatus.REJECTED
def test_cannot_vote_on_closed_merge_request(): merge_request = MergeRequest() merge_request.close() pytest.raises(MergeRequestException, merge_request.upvote, "dev1") with pytest.raises( MergeRequestException, match="can't vote on a closed merge request" ): merge_request.downvote("dev1")
def test_downvote_to_upvote(): merge_request = MergeRequest() merge_request.upvote("dev1") merge_request.downvote("dev2") merge_request.upvote("dev2") assert merge_request.status == MergeRequestStatus.APPROVED
def test_cannot_vote_on_closed_merge_request(): merge_request = MergeRequest() merge_request.close() pytest.raises(MergeRequestException, merge_request.upvote, "dev1") with pytest.raises(MergeRequestException, match="can't vote on a closed merge request"): merge_request.downvote("dev1")
def test_no_double_approve(): merge_request = MergeRequest() merge_request.upvote("dev1") merge_request.upvote("dev1") assert merge_request.status == MergeRequestStatus.PENDING
def test_approved(): merge_request = MergeRequest() merge_request.upvote("dev1") merge_request.upvote("dev2") assert merge_request.status == MergeRequestStatus.APPROVED
def test_pending_awaiting_review(): merge_request = MergeRequest() merge_request.upvote("core-dev") assert merge_request.status == MergeRequestStatus.PENDING
def test_just_created_is_pending(): assert MergeRequest().status == MergeRequestStatus.PENDING
def rejected_mr(): merge_request = MergeRequest() merge_request.downvote("dev1") return merge_request
def setUp(self): self.merge_request = MergeRequest()
def test_invalid_types(): merge_request = MergeRequest() pytest.raises(TypeError, merge_request.upvote, {"invalid-object"})
class TestMergeRequestStatus(TestCase): def setUp(self): self.merge_request = MergeRequest() def assert_rejected(self): self.assertEqual(self.merge_request.status, MergeRequestStatus.REJECTED) def assert_pending(self): self.assertEqual(self.merge_request.status, MergeRequestStatus.PENDING) def assert_approved(self): self.assertEqual(self.merge_request.status, MergeRequestStatus.APPROVED) def test_simple_rejected(self): self.merge_request.downvote("maintainer") self.assert_rejected() def test_just_created_is_pending(self): self.assert_pending() def test_pending_awaiting_review(self): self.merge_request.upvote("core-dev") self.assert_pending() def test_approved(self): self.merge_request.upvote("dev1") self.merge_request.upvote("dev2") self.assert_approved() def test_no_double_approved(self): self.merge_request.upvote("dev1") self.merge_request.upvote("dev1") self.assert_pending() def test_upvote_changes_to_downvote(self): self.merge_request.upvote("dev1") self.merge_request.upvote("dev2") self.merge_request.downvote("dev1") self.assert_rejected() def test_downvote_to_upvote(self): self.merge_request.upvote("dev1") self.merge_request.downvote("dev2") self.merge_request.upvote("dev2") self.assert_approved() def test_invalid_types(self): self.assertRaises(TypeError, self.merge_request.upvote, {"invalid-object"}) def test_cannot_vote_on_closed_merge_request(self): self.merge_request.close() self.assertRaises(MergeRequestException, self.merge_request.upvote, "dev1") self.assertRaisesRegex( MergeRequestException, "can't vote on a closed merge request", self.merge_request.downvote, "dev1", )