def test_attempts_finished_count(self): user = UserFactory.create() TaskAttemptFactory.create_batch(4, user=user, state=TaskAttempt.FINISHED) TaskAttemptFactory.create(user=user, state=TaskAttempt.STARTED) eq_(user.attempts_finished_count, 4)
def test_attempts_finished_count(self): """ attempts_finished_count should return the number of attempts the user has finished. """ user = UserFactory.create() TaskAttemptFactory.create_batch(4, user=user, state=TaskAttempt.FINISHED) TaskAttemptFactory.create(user=user, state=TaskAttempt.STARTED) eq_(user.attempts_finished_count, 4)
def test_close_stale_onetime_attempts(self): """ The close_stale_onetime_attempts routine should close all expired one-time attempts, set them as requiring notification, and return the number that were closed. """ task = TaskFactory.create(repeatable=False) user = UserFactory.create() recent_attempt, expired_attempt_1, expired_attempt_2 = TaskAttemptFactory.create_batch( 3, user=user, state=TaskAttempt.STARTED, task=task) recent_attempt.created = aware_datetime(2014, 1, 29) recent_attempt.save() expired_attempt_1.created = aware_datetime(2014, 1, 1) expired_attempt_1.save() expired_attempt_2.created = aware_datetime(2014, 1, 1) expired_attempt_2.save() eq_(task.taskattempt_set.filter(state=TaskAttempt.STARTED).count(), 3) with patch('oneanddone.tasks.models.timezone.now') as now: now.return_value = aware_datetime(2014, 1, 31) eq_(TaskAttempt.close_stale_onetime_attempts(), 2) eq_(TaskAttempt.objects.filter(task=task, state=TaskAttempt.STARTED).count(), 1) eq_(TaskAttempt.objects.filter(task=task, state=TaskAttempt.CLOSED, requires_notification=True).count(), 2)
def test_attempts_in_progress(self): """ attempts_in_progress should return the number of attempts in progress. """ user = UserFactory.create() tasks = TaskAttemptFactory.create_batch(4, user=user, state=TaskAttempt.STARTED) eq_(set(user.attempts_in_progress), set(tasks))
def test_close_stale_onetime_attempts(self): """ The close_stale_onetime_attempts routine should close all expired one-time attempts, set them as requiring notification, and return the number that were closed. """ task = TaskFactory.create(repeatable=False) user = UserFactory.create() recent_attempt, expired_attempt_1, expired_attempt_2 = TaskAttemptFactory.create_batch( 3, user=user, state=TaskAttempt.STARTED, task=task) recent_attempt.created = aware_datetime(2014, 1, 29) recent_attempt.save() expired_attempt_1.created = aware_datetime(2014, 1, 1) expired_attempt_1.save() expired_attempt_2.created = aware_datetime(2014, 1, 1) expired_attempt_2.save() eq_(task.taskattempt_set.filter(state=TaskAttempt.STARTED).count(), 3) with patch('oneanddone.tasks.models.timezone.now') as now: now.return_value = aware_datetime(2014, 1, 31) eq_(TaskAttempt.close_stale_onetime_attempts(), 2) eq_( TaskAttempt.objects.filter(task=task, state=TaskAttempt.STARTED).count(), 1) eq_( TaskAttempt.objects.filter(task=task, state=TaskAttempt.CLOSED, requires_notification=True).count(), 2)
def test_close_expired_onetime_attempts(self): """ The close_expired_onetime_attempts routine should close all expired one-time attempts and return the number that were closed. """ user = UserFactory.create() recent_attempt, expired_attempt_1, expired_attempt_2 = TaskAttemptFactory.create_batch( 3, user=user, state=TaskAttempt.STARTED, task=self.task_not_repeatable_no_attempts) recent_attempt.created = aware_datetime(2014, 1, 29) recent_attempt.save() expired_attempt_1.created = aware_datetime(2014, 1, 1) expired_attempt_1.save() expired_attempt_2.created = aware_datetime(2014, 1, 1) expired_attempt_2.save() eq_( self.task_not_repeatable_no_attempts.taskattempt_set.filter( state=TaskAttempt.STARTED).count(), 3) with patch('oneanddone.tasks.models.timezone.now') as now: now.return_value = aware_datetime(2014, 1, 31) eq_(TaskAttempt.close_expired_onetime_attempts(), 2) eq_( TaskAttempt.objects.filter( task=self.task_not_repeatable_no_attempts, state=TaskAttempt.STARTED).count(), 1) eq_( TaskAttempt.objects.filter( task=self.task_not_repeatable_no_attempts, state=TaskAttempt.CLOSED).count(), 2)
def setUp(self): self.user1, self.user2 = UserFactory.create_batch(2) self.task1, self.task2 = TaskFactory.create_batch(2) TaskAttemptFactory.create_batch(2, user=self.user1, task=self.task1, state=TaskAttempt.FINISHED) ValidTaskAttemptFactory.create_batch(2, user=self.user1, task=self.task1, state=TaskAttempt.FINISHED) ValidTaskAttemptFactory.create(user=self.user1, task=self.task2, state=TaskAttempt.FINISHED) ValidTaskAttemptFactory.create(user=self.user2, task=self.task1, state=TaskAttempt.FINISHED) ValidTaskAttemptFactory.create_batch(2, user=self.user1, task=self.task1, state=TaskAttempt.ABANDONED) ValidTaskAttemptFactory.create(user=self.user2, task=self.task1, state=TaskAttempt.ABANDONED) ValidTaskAttemptFactory.create(user=self.user1, task=self.task2, state=TaskAttempt.ABANDONED) ValidTaskAttemptFactory.create_batch(2, user=self.user1, task=self.task1, state=TaskAttempt.CLOSED) ValidTaskAttemptFactory.create(user=self.user2, task=self.task1, state=TaskAttempt.CLOSED) ValidTaskAttemptFactory.create(user=self.user1, task=self.task2, state=TaskAttempt.CLOSED)
def test_attempts_in_progress(self): user = UserFactory.create() tasks = TaskAttemptFactory.create_batch(4, user=user, state=TaskAttempt.STARTED) eq_(set(user.attempts_in_progress), set(tasks))