from kallithea.tests import *
from kallithea.model.changeset_status import ChangesetStatusModel
from kallithea.model.db import ChangesetStatus
# shorthands
STATUS_APPROVED = ChangesetStatus.STATUS_APPROVED
STATUS_REJECTED = ChangesetStatus.STATUS_REJECTED
STATUS_NOT_REVIEWED = ChangesetStatus.STATUS_NOT_REVIEWED
STATUS_UNDER_REVIEW = ChangesetStatus.STATUS_UNDER_REVIEW
class ChangesetStatusMock(object):
def __init__(self, status):
self.status = status
S = ChangesetStatusMock
class TestChangesetStatusCalculation(BaseTestCase):
def setUp(self):
self.m = ChangesetStatusModel()
@parameterized.expand([
('empty list', STATUS_UNDER_REVIEW, []),
('approve', STATUS_APPROVED, [S(STATUS_APPROVED)]),
('approve2', STATUS_APPROVED, [S(STATUS_APPROVED), S(STATUS_APPROVED)]),
('approve_reject', STATUS_UNDER_REVIEW, [S(STATUS_APPROVED), S(STATUS_REJECTED)]),
('approve_underreview', STATUS_UNDER_REVIEW, [S(STATUS_APPROVED), S(STATUS_UNDER_REVIEW)]),
('approve_notreviewed', STATUS_UNDER_REVIEW, [S(STATUS_APPROVED), S(STATUS_NOT_REVIEWED)]),
('underreview', STATUS_UNDER_REVIEW, [S(STATUS_UNDER_REVIEW), S(STATUS_UNDER_REVIEW)]),
('reject', STATUS_UNDER_REVIEW, [S(STATUS_REJECTED)]),
('reject_underreview', STATUS_UNDER_REVIEW, [S(STATUS_REJECTED), S(STATUS_UNDER_REVIEW)]),
('reject_notreviewed', STATUS_UNDER_REVIEW, [S(STATUS_REJECTED), S(STATUS_NOT_REVIEWED)]),
('notreviewed', STATUS_UNDER_REVIEW, [S(STATUS_NOT_REVIEWED)]),
])
def test_result(self, name, expected_result, statuses):
result = self.m._calculate_status(statuses)
self.assertEqual(result, expected_result)