def test_parse_date(self): """ Parse string representing date in ISO 8601 format (as returned by GitHub). """ date = github.parse_date("2016-10-11T15:10:30Z") self.assertIsInstance(date, datetime) self.assertEqual(date.year, 2016) self.assertEqual(date.month, 10) self.assertEqual(date.day, 11) self.assertEqual(date.hour, 15) self.assertEqual(date.minute, 10) self.assertEqual(date.second, 30)
def shut_down_obsolete_pr_sandboxes(): """ Shut down instances whose PRs got merged (more than) one week ago. """ for instance in OpenEdXInstance.objects.filter(watchedpullrequest__isnull=False): pr = github.get_pr_info_by_number( instance.watchedpullrequest.target_fork_name, instance.watchedpullrequest.github_pr_number ) if pr['state'] == 'closed': closed_at = github.parse_date(pr['closed_at']) now = datetime.now() if sufficient_time_passed(closed_at, now, 7): instance.shut_down()
def shut_down_obsolete_pr_sandboxes(): """ Shut down instances whose PRs got merged (more than) one week ago. """ for instance in OpenEdXInstance.objects.filter(watchedpullrequest__isnull=False): pr = github.get_pr_info_by_number( instance.watchedpullrequest.target_fork_name, instance.watchedpullrequest.github_pr_number ) if pr['state'] == 'closed' and not instance.ref.is_archived: closed_at = github.parse_date(pr['closed_at']) now = datetime.now() if sufficient_time_passed(closed_at, now, 7): instance.logger.info("Shutting down obsolete sandbox instance") instance.archive()