コード例 #1
0
    def test_update_local_event(self):
        event = registry.create_local_event('django_celery_events', 'event')
        c_task = self.create_c_task('django_celery_events.task_1')
        task = event.add_local_c_task(c_task)
        event_obj = models.Event.objects.create(
            app_name='django_celery_events', event_name='event')
        remote_task_obj = models.Task.objects.create(name='another_app.task_1',
                                                     queue='q')
        event_obj.tasks.add(remote_task_obj)

        backend = DjangoDBBackend(registry)
        backend.update_local_event(event)

        self.assertEqual(1, len(registry.local_events))
        local_event = registry.local_events[0]
        self.assertEqual(event, local_event)
        self.assertEqual(2, len(local_event.tasks))

        tasks = sorted(local_event.tasks, key=lambda t: t.name)
        remote_task = tasks[0]
        self.assertEqual(remote_task_obj.name, remote_task.name)
        self.assertEqual(remote_task_obj.queue, remote_task.queue)
        self.assertEqual(remote_task_obj, remote_task.backend_obj)
        local_task = tasks[1]
        self.assertEqual(task, local_task)
        self.assertEqual(0, len(registry.remote_events))
コード例 #2
0
    def test_should_update_event_no_backend_obj(self):
        event_obj = models.Event.objects.create(app_name='app',
                                                event_name='event')
        event = registry.create_local_event('app', 'event')

        backend = DjangoDBBackend(registry)
        self.assertTrue(backend.should_update_event(event))
コード例 #3
0
    def test_ready_get_event_c_tasks_not_celery_task(self):
        event = registry.create_local_event('app_1', 'event_1')
        self.mock_module.EVENT = event
        self.mock_module.get_event_c_tasks = lambda e: ['task']

        try:
            DjangoCeleryEventsConfig.ready(None)
            self.fail()
        except ValueError:
            self.assertEqual(0, len(event.tasks))
コード例 #4
0
    def test_should_update_event(self):
        event = registry.create_local_event('app', 'event')
        event_obj = models.Event.objects.create(app_name='app',
                                                event_name='event')
        event.backend_obj = event_obj

        event_obj = models.Event.objects.get(app_name='app',
                                             event_name='event')
        event_obj.save()

        backend = DjangoDBBackend(registry)
        self.assertEqual(True, backend.should_update_event(event))
コード例 #5
0
    def test_ready(self):
        event_1 = registry.create_local_event('app_1', 'event_1')
        event_2 = registry.remote_event('app_2', 'event_2')
        self.mock_module.EVENT_1 = event_1
        self.mock_module.EVENT_2 = event_2
        self.mock_module.get_event_c_tasks = lambda event: [
            self.CTask(event.event_name + '_task')
        ]

        DjangoCeleryEventsConfig.ready(None)
        self.assertEqual([Task('event_1_task', use_routes=False)],
                         event_1.tasks)
        self.assertEqual([Task('event_2_task', use_routes=False)],
                         event_2.tasks)
コード例 #6
0
    def test_sync_local_events(self):
        local_event_to_add = registry.create_local_event(
            'django_celery_events', 'event_1')
        c_task = self.create_c_task('django_celery_events.task_1')
        local_task_to_add_to_local_event_to_add = local_event_to_add.add_local_c_task(
            c_task)

        local_event_to_remove_obj = models.Event.objects.create(
            app_name='django_celery_events', event_name='event_2')

        backend = DjangoDBBackend(registry)
        backend.sync_local_events()

        event_objs = models.Event.objects.order_by('event_name')
        self.assertEqual(1, event_objs.count())
        event_obj = event_objs[0]
        self.assertEqual(local_event_to_add.app_name, event_obj.app_name)
        self.assertEqual(local_event_to_add.event_name, event_obj.event_name)
        task_objs = event_obj.tasks.order_by('name')
        self.assertEqual(0, task_objs.count())