o
    ¨@TŒ	  ã                   @   sp   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ G dd„ deƒZG d	d
„ d
eƒZdS )é    )Úabsolute_importÚunicode_literals)ÚClient)ÚWSGIRequest)ÚBaseHandler)Ú
WhateverIO)Úunicodec                   @   s   e Zd ZdZdd„ ZdS )ÚRequestFactoryaæ  Class that lets you create mock Request objects for use in testing.

    Usage:

    rf = RequestFactory()
    get_request = rf.get('/hello/')
    post_request = rf.post('/submit/', {'foo': 'bar'})

    This class re-uses the django.test.client.Client interface, docs here:
    http://www.djangoproject.com/documentation/testing/#the-test-client

    Once you have a request object you can pass it to any view function,
    just as if that view had been hooked up using a URLconf.

    c                 K   sB   t | jƒdddddddddtƒ d	œ}| | j¡ | |¡ t|ƒS )
z]Similar to parent class, but returns the request object as
        soon as it has created it.zDjango UnitTest Client 1.0z	127.0.0.1ú/Ú ÚGETÚ
testserveréP   zHTTP/1.1)ÚHTTP_COOKIEÚHTTP_USER_AGENTÚREMOTE_ADDRÚ	PATH_INFOÚQUERY_STRINGÚREQUEST_METHODÚSCRIPT_NAMEÚSERVER_NAMEÚSERVER_PORTÚSERVER_PROTOCOLz
wsgi.input)r   Úcookiesr   ÚupdateÚdefaultsr   )ÚselfÚrequestÚenviron© r   úD/var/www/html/env/lib/python3.10/site-packages/djcelery/tests/req.pyr      s   õ
zRequestFactory.requestN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r    r	      s    r	   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚMockRequestc                 C   s"   t ƒ }| ¡  tƒ | _|j| _d S )N)r   Úload_middlewarer	   Úrequest_factoryÚ_request_middlewareÚ
middleware)r   Úhandlerr   r   r    Ú__init__5   s   zMockRequest.__init__c                    s2   t | j|ƒ}||i |¤Ž‰ ‡ fdd„| jD ƒ ˆ S )Nc                    s   g | ]}|ˆ ƒ‘qS r   r   )Ú.0Úmiddleware_processor©r   r   r    Ú
<listcomp>>   s    ÿz-MockRequest._make_request.<locals>.<listcomp>)Úgetattrr'   r)   )r   Úrequest_methodÚargsÚkwargsÚrequest_method_handlerr   r.   r    Ú_make_request;   s   
ÿzMockRequest._make_requestc                 O   ó   | j dg|¢R i |¤ŽS )NÚget©r5   ©r   r2   r3   r   r   r    r7   B   ó   zMockRequest.getc                 O   r6   )NÚpostr8   r9   r   r   r    r;   E   r:   zMockRequest.postc                 O   r6   )NÚputr8   r9   r   r   r    r<   H   r:   zMockRequest.putc                 O   r6   )NÚdeleter8   r9   r   r   r    r=   K   r:   zMockRequest.deleteN)	r!   r"   r#   r+   r5   r7   r;   r<   r=   r   r   r   r    r%   3   s    r%   N)Ú
__future__r   r   Údjango.testr   Údjango.core.handlers.wsgir   Údjango.core.handlers.baser   Úcelery.utils.compatr   Údjcelery.compatr   r	   Úobjectr%   r   r   r   r    Ú<module>   s    '