o
    q~9S!  ã                   @   s    d dl mZmZ d dlmZ zd dlmZ W n ey%   d dlm	Z Y nw d dl
mZ d dlmZ d dlmZ dZd	d
„ ZG dd„ deƒZG dd„ deƒZdS )é    )Úabsolute_importÚunicode_literals)Úsettings)ÚDiscoverRunner)ÚDjangoTestSuiteRunner)Úcurrent_app)ÚTask)ÚDatabaseBackendz=Custom test runner to allow testing of celery delayed tasks.
c                   C   s    dt _dtj_dt _dtj_d S )NT)r   ÚCELERY_ALWAYS_EAGERr   ÚconfÚ"CELERY_EAGER_PROPAGATES_EXCEPTIONS© r   r   úN/var/www/html/env/lib/python3.10/site-packages/djcelery/contrib/test_runner.pyÚ
_set_eager   s   r   c                       ó    e Zd ZdZ‡ fdd„Z‡  ZS )ÚCeleryTestSuiteRunnerzöDjango test runner allowing testing of celery delayed tasks.

    All tasks are run locally, not in a worker.

    To use this runner set ``settings.TEST_RUNNER``::

        TEST_RUNNER = 'djcelery.contrib.test_runner.CeleryTestSuiteRunner'

    c                    s    t ƒ  tt| ƒjdi |¤Ž d S )Nr   )r   Úsuperr   Úsetup_test_environment)ÚselfÚkwargs©Ú	__class__r   r   r   $   s   z,CeleryTestSuiteRunner.setup_test_environment©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__r   r   r   r   r      s    	r   c                       r   )Ú"CeleryTestSuiteRunnerStoringResultaY  Django test runner allowing testing of celery delayed tasks,
    and storing the results of those tasks in ``TaskMeta``.

    Requires setting CELERY_RESULT_BACKEND = 'database'.

    USAGE:

    In ``settings.py``::

        TEST_RUNNER = '''
            djcelery.contrib.test_runner.CeleryTestSuiteRunnerStoringResult
        '''.strip()

    c                    s8   dd„ }t |ƒt_tt| ƒjdi |¤Ž dt_tƒ  d S )Nc                 S   s    t  ¡ }t|d� ||d¡ d S )N)ÚappÚSUCCESS)r   Ú_get_current_objectr	   Ústore_result)r   ÚretvalÚtask_idÚargsr   r   r   r   r   Úon_success_patched;   s   zUCeleryTestSuiteRunnerStoringResult.setup_test_environment.<locals>.on_success_patchedÚdatabaser   )	Úclassmethodr   Ú
on_successr   r   r   r   ÚCELERY_RESULT_BACKENDr   )r   r   r&   r   r   r   r   9   s   
ÿ
z9CeleryTestSuiteRunnerStoringResult.setup_test_environmentr   r   r   r   r   r   )   s    r   N)Ú
__future__r   r   Údjango.confr   Údjango.test.runnerr   ÚImportErrorÚdjango.test.simpler   Úceleryr   Úcelery.taskr   Údjcelery.backends.databaser	   ÚUSAGEr   r   r   r   r   r   r   Ú<module>   s    ÿ