def testSpanCalculation(self): self.project = ProjectFactory( weekly_closure_days=[5, 6] ) self.frontend_group = GroupFactory(name='Frontend team', project=self.project) self.fe_approver_1 = UserFactory(first_name='Mark', last_name='Green', project=self.project) self.fe_user_1 = UserFactory(first_name='John', last_name='Doe', approval_group=self.frontend_group, project=self.project) r1 = ApprovalRuleFactory(order=0, group=self.frontend_group, approver=self.fe_approver_1) # Set up some closure periods (dates are considered inclusive) ClosurePeriodFactory( project=self.project, start=datetime.date(2012, 11, 6), end=datetime.date(2012, 11, 7) ) ClosurePeriodFactory( project=self.project, start=datetime.date(2012, 11, 13), end=datetime.date(2012, 11, 13) ) initial_days_left = self.fe_user_1.days_off_left # This request spans across a weekend (not to cosider), # and also is within a closure period. self.req = HolidayRequestFactory.build( author=self.fe_user_1, start_date=datetime.date(2012, 11, 5), end_date=datetime.date(2012, 11, 13), project=self.project ) self.assertEqual(self.req.effective_days_span, 4) submitted_req, approval_list = self.req.submit() approval_list[0].approve() self.assertEqual(submitted_req.status, HolidayRequest.STATUS.approved) self.assertEqual(self.fe_user_1.days_off_left, initial_days_left - 4)
def setUp(self): self.project = ProjectFactory() self.frontend_group = GroupFactory(name='Frontend team', project=self.project) self.backend_group = GroupFactory(name='Backend team', project=self.project) self.fe_approver_1 = UserFactory(first_name='Mark', last_name='Green', project=self.project) self.fe_approver_2 = UserFactory(first_name='Adam', last_name='Red', approval_group=self.frontend_group, project=self.project) self.fe_user_1 = UserFactory(first_name='John', last_name='Doe', approval_group=self.frontend_group, project=self.project) r1 = ApprovalRuleFactory(order=0, group=self.frontend_group, approver=self.fe_approver_1) r2 = ApprovalRuleFactory(order=1, group=self.frontend_group, approver=self.fe_approver_2) self.req = HolidayRequestFactory.build( author=self.fe_user_1, requested_days_ago=3, start_date=datetime.date(2012, 11, 1), end_date=datetime.date(2012, 11, 3), project=self.project )