def test_super_user_can_bulk_set_due_dates_for_a_team(self): project = RecruitProjectFactory(due_time=None) card = AgileCardFactory(recruit_project=project, flavours=["JAVASCRIPT", "PYTHON"]) card.reviewers.add(self.user_one_blue) card.assignees.add(self.user_two_blue) self.assertIsNone(card.due_time) self.login(self.super_user) url = f"{self.get_instance_url(pk=self.blue_team.id)}bulk_set_due_dates/" due_date = "2021-12-03T14:17" response = self.client.post( path=url, format="json", data={ "due_time": due_date, "content_item": card.content_item.id, "team": str(self.blue_team.id), "flavours": [card.flavours.first().id, card.flavours.last().id], }, ) self.assertEqual(response.status_code, 200) card.refresh_from_db() date_expected = parse_datetime(due_date).replace(tzinfo=timezone.utc) self.assertEqual(card.due_time, date_expected)
def test_due_date_not_set_if_flavour_name_differs_to_request(self): """ Three cards (1 'js' flavour & 2 'python' flavoured); the request is for team_cards with a 'js' flavour to have their due dates set and all other flavoured cards to not have their due dates altered. """ project = RecruitProjectFactory(due_time=None) card_1 = AgileCardFactory(recruit_project=project, flavours=["JAVASCRIPT"]) card_1.assignees.add(self.user_one_red) card_2 = AgileCardFactory( recruit_project=RecruitProjectFactory(due_time=None), content_item=card_1.content_item, flavours=["PYTHON"], ) card_2.assignees.add(self.user_two_red) card_3 = AgileCardFactory( recruit_project=RecruitProjectFactory(due_time=None), content_item=card_1.content_item, flavours=["PYTHON"], ) card_3.assignees.add(self.user_two_red) self.assertEqual(card_1.content_item, card_2.content_item) self.assertEqual(card_1.content_item, card_3.content_item) self.login(self.super_user) url = f"{self.get_instance_url(pk=self.red_team.id)}bulk_set_due_dates/" due_date = "2022-01-20T12:17" response = self.client.post( path=url, format="json", data={ "due_time": due_date, "content_item": card_1.content_item.id, "flavours": [card_1.flavours.first().id], }, ) self.assertEqual(response.status_code, 200) card_1.refresh_from_db() card_2.refresh_from_db() card_3.refresh_from_db() date_expected = parse_datetime(due_date).replace(tzinfo=timezone.utc) self.assertEqual(card_1.due_time, date_expected) self.assertIsNone(card_2.due_time) self.assertIsNone(card_3.due_time)