def test_invalidate_tasks_not_equals_criterion(self): """ The invalidate_tasks routine should invalidate tasks which match the invalidation criteria. This tests a not equals criterion. """ bug_to_become_invalid, bug_to_stay_valid = BugzillaBugFactory.create_batch( 2) batch = TaskImportBatchFactory.create() criterion = TaskInvalidationCriterionFactory.create( field_name='name', relation=TaskInvalidationCriterion.NOT_EQUAL, field_value='value') criterion.batches.add(batch) criterion.save() task1, task2 = TaskFactory.create_batch( 2, batch=batch, imported_item=bug_to_become_invalid, is_invalid=False) task2.imported_item = bug_to_stay_valid task2.save() with patch('oneanddone.tasks.models.BugzillaUtils.request_bug' ) as request_bug: request_bug.side_effect = lambda x: { bug_to_become_invalid.bugzilla_id: { 'name': 'value' }, bug_to_stay_valid.bugzilla_id: { 'name': 'not value' } }[x] eq_(Task.invalidate_tasks(), 1) eq_(Task.objects.get(pk=task1.pk).is_invalid, False) eq_(Task.objects.get(pk=task2.pk).is_invalid, True)
def test_invalidate_tasks_not_equals_criterion(self): """ The invalidate_tasks routine should invalidate tasks which match the invalidation criteria. This tests a not equals criterion. """ bug_to_become_invalid, bug_to_stay_valid = BugzillaBugFactory.create_batch(2) batch = TaskImportBatchFactory.create() criterion = TaskInvalidationCriterionFactory.create( field_name='name', relation=TaskInvalidationCriterion.NOT_EQUAL, field_value='value') criterion.batches.add(batch) criterion.save() task1, task2 = TaskFactory.create_batch(2, batch=batch, imported_item=bug_to_become_invalid, is_invalid=False) task2.imported_item = bug_to_stay_valid task2.save() with patch('oneanddone.tasks.models.BugzillaUtils.request_bug') as request_bug: request_bug.side_effect = lambda x: { bug_to_become_invalid.bugzilla_id: {'name': 'value'}, bug_to_stay_valid.bugzilla_id: {'name': 'not value'}}[x] eq_(Task.invalidate_tasks(), 1) eq_(Task.objects.get(pk=task1.pk).is_invalid, False) eq_(Task.objects.get(pk=task2.pk).is_invalid, True)
def handle(self, *args, **options): invalidated = Task.invalidate_tasks() self.stdout.write('%s: %s tasks were invalidated via bug data\n' % (datetime.now().isoformat(), invalidated)) closed = TaskAttempt.close_stale_onetime_attempts() self.stdout.write('%s: %s stale one-time attempts were closed\n' % (datetime.now().isoformat(), closed)) closed = TaskAttempt.close_expired_task_attempts() self.stdout.write('%s: %s attempts for expired tasks were closed\n' % (datetime.now().isoformat(), closed))