1from __future__ import absolute_import, unicode_literals
2
3import warnings
4
5import pytest
6
7from celery.task import base
8
9
10def add(x, y):
11    return x + y
12
13
14@pytest.mark.usefixtures('depends_on_current_app')
15class test_decorators:
16
17    def test_task_alias(self):
18        from celery import task
19        assert task.__file__
20        assert task(add)
21
22    def setup(self):
23        with warnings.catch_warnings(record=True):
24            from celery import decorators
25            self.decorators = decorators
26
27    def assert_compat_decorator(self, decorator, type, **opts):
28        task = decorator(**opts)(add)
29        assert task(8, 8) == 16
30        assert isinstance(task, type)
31
32    def test_task(self):
33        self.assert_compat_decorator(self.decorators.task, base.BaseTask)
34
35    def test_periodic_task(self):
36        self.assert_compat_decorator(
37            self.decorators.periodic_task, base.BaseTask, run_every=1,
38        )
39