U
    jRf                     @   s|  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	 d dl
mZ d dlmZ d dlmZmZmZmZmZmZmZmZ d	d
lmZ e	dd ZG dd deZe	dd ZG dd deZe	dd ZG dd deZe	dd ZG dd deZ G dd deZ!G dd deZ"G dd  d eZ#G d!d" d"eZ$G d#d$ d$eZ%G d%d& d&eZ&G d'd( d(eZ'G d)d* d*eZ(d+S ),    )settingsHttpResponse)TestCase)VoiceResponse)twilio_view)View)method_decorator)
conferencedialgatherplayrecordsaysmsmessage   )TwilioRequestFactoryc                 C   s   t dddS )z@
    A simple test view that returns a HttpResponse object.
    9<Response><Message>Hello from Django</Message></Response>text/xmlcontent_typer   request r   ?/tmp/pip-unpacked-wheel-bwz75sck/test_project/test_app/views.pyresponse_view   s    r   c                       s4   e Zd Zee fddZdd Zdd Z  ZS )ResponseViewc                    s   t t| j|f||S N)superr   dispatchselfr   argskwargs	__class__r   r   r        s    zResponseView.dispatchc                 C   s   t dddS Nr   r   r   r   r"   r   r   r   r   get$   s    zResponseView.getc                 C   s   t dddS r'   r   r(   r   r   r   post*   s    zResponseView.post	__name__
__module____qualname__r	   r   r    r)   r*   __classcell__r   r   r%   r   r      s   r   c                 C   s   dS )z3
    A simple test view that returns a string.
    +<Response><Message>Hi!</Message></Response>r   r   r   r   r   str_view1   s    r1   c                       s4   e Zd Zee fddZdd Zdd Z  ZS )StrViewc                    s   t t| j|f||S r   )r   r2   r    r!   r%   r   r   r    ;   s    zStrView.dispatchc                 C   s   dS Nr0   r   r(   r   r   r   r)   ?   s    zStrView.getc                 C   s   dS r3   r   r(   r   r   r   r*   B   s    zStrView.postr+   r   r   r%   r   r2   9   s   r2   c                 C   s   dS )z6
    A simple test view that returns ASCII bytes.
    +   <Response><Message>Hi!</Message></Response>r   r   r   r   r   
bytes_viewF   s    r5   c                       s4   e Zd Zee fddZdd Zdd Z  ZS )	BytesViewc                    s   t t| j|f||S r   )r   r6   r    r!   r%   r   r   r    P   s    zBytesView.dispatchc                 C   s   dS Nr4   r   r(   r   r   r   r)   T   s    zBytesView.getc                 C   s   dS r7   r   r(   r   r   r   r*   W   s    zBytesView.postr+   r   r   r%   r   r6   N   s   r6   c                 C   s   t  }|  |S )zC
    A simple test view that returns a ``twilio.Verb`` object.
    r   reject)r   rr   r   r   	verb_view[   s    r;   c                       s4   e Zd Zee fddZdd Zdd Z  ZS )VerbViewc                    s   t t| j|f||S r   )r   r<   r    r!   r%   r   r   r    g   s    zVerbView.dispatchc                 C   s   t  }|  |S r   r8   r"   r   r:   r   r   r   r)   k   s    zVerbView.getc                 C   s   t  }|  |S r   r8   r=   r   r   r   r*   p   s    zVerbView.postr+   r   r   r%   r   r<   e   s   r<   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )SayTestCasec                 C   s(   d| _ ttjd| _| j| j | _d S )Nz/test_app/views/say/token)Zsay_urir   r   TWILIO_AUTH_TOKENfactoryr*   r   r"   r   r   r   setUpx   s    zSayTestCase.setUpc                 C   s   |  tt| j d S r   )assertRaises	TypeErrorr   r   rC   r   r   r   test_say_no_text   s    zSayTestCase.test_say_no_textc                 C   s   |  t| jddjd d S )Nhi)text   )assertEqualr   r   status_coderC   r   r   r   test_say_with_text   s    zSayTestCase.test_say_with_textN)r,   r-   r.   rD   rG   rM   r   r   r   r   r>   v   s   r>   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )PlayTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/play/r?   )play_urir   r   rA   rB   rC   r   r   r   rD      s    zPlayTestCase.setUpc                 C   s    | j | j}| tt| d S r   )rB   r*   rO   rE   rF   r   r(   r   r   r   test_play_no_url   s    zPlayTestCase.test_play_no_urlc                 C   s(   | j | j}| t|ddjd d S )Nzhttp://b.com/b.wav)urlrJ   )rB   r*   rO   rK   r   rL   r(   r   r   r   test_play_with_url   s
    zPlayTestCase.test_play_with_urlN)r,   r-   r.   rD   rP   rR   r   r   r   r   rN      s   rN   c                   @   s   e Zd Zdd Zdd ZdS )GatherTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/gather/r?   )
gather_urir   r   rA   rB   rC   r   r   r   rD      s    zGatherTestCase.setUpc                 C   s$   | j | j}| t|jd d S NrJ   )rB   r*   rT   rK   r   rL   r(   r   r   r   test_gather   s
    zGatherTestCase.test_gatherN)r,   r-   r.   rD   rV   r   r   r   r   rS      s   rS   c                   @   s   e Zd Zdd Zdd ZdS )RecordTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/record/r?   )
record_urir   r   rA   rB   rC   r   r   r   rD      s    zRecordTestCase.setUpc                 C   s$   | j | j}| t|jd d S rU   )rB   r*   rX   rK   r   rL   r(   r   r   r   test_record   s
    zRecordTestCase.test_recordN)r,   r-   r.   rD   rY   r   r   r   r   rW      s   rW   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )SmsTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/sms/r?   )sms_urir   r   rA   rB   rC   r   r   r   rD      s    zSmsTestCase.setUpc                 C   s    | j | j}| tt| d S r   )rB   r*   r[   rE   rF   r   r(   r   r   r   test_sms_no_message   s    zSmsTestCase.test_sms_no_messagec                 C   s(   | j | j}| t|ddjd d S )Ntest)r   rJ   )rB   r*   r[   rK   r   rL   r(   r   r   r   test_sms_with_message   s
    z!SmsTestCase.test_sms_with_messageN)r,   r-   r.   rD   r\   r^   r   r   r   r   rZ      s   rZ   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )MessageTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/message/r?   )message_urir   r   rA   rB   rC   r   r   r   rD      s    zMessageTestCase.setUpc                 C   s    | j | j}| tt| d S r   )rB   r*   r`   rE   rF   r   r(   r   r   r   test_message_no_message   s    z'MessageTestCase.test_message_no_messagec                 C   s*   | j | j}| t|dddjd d S )Nr]   zhttp://i.imgur.com/Qa8GVPU.gif)r   ZmediarJ   )rB   r*   r`   rK   r   rL   r(   r   r   r   test_message_with_media   s    z'MessageTestCase.test_message_with_mediaN)r,   r-   r.   rD   ra   rb   r   r   r   r   r_      s   r_   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )DialTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/dial/r?   )dial_urir   r   rA   rB   rC   r   r   r   rD      s    zDialTestCase.setUpc                 C   s    | j | j}| tt| d S r   )rB   r*   rd   rE   rF   r   r(   r   r   r   test_dial_no_number   s    z DialTestCase.test_dial_no_numberc                 C   s(   | j | j}| t|ddjd d S )Nz+18182223333)numberrJ   )rB   r*   rd   rK   r   rL   r(   r   r   r   test_dial_with_number   s
    z"DialTestCase.test_dial_with_numberN)r,   r-   r.   rD   re   rg   r   r   r   r   rc      s   rc   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )ConferenceTestCasec                 C   s   d| _ ttjd| _d S )Nz/test_app/views/conference/r?   )conf_urir   r   rA   rB   rC   r   r   r   rD     s    zConferenceTestCase.setUpc                 C   s    | j | j}| tt| d S r   )rB   r*   ri   rE   rF   r
   r(   r   r   r   test_conference_no_name  s    z*ConferenceTestCase.test_conference_no_namec                 C   s(   | j | j}| t|ddjd d S )Na)namerJ   )rB   r*   ri   rK   r
   rL   r(   r   r   r   test_conference_with_name  s
    z,ConferenceTestCase.test_conference_with_nameN)r,   r-   r.   rD   rj   rm   r   r   r   r   rh     s   rh   N))Zdjango.confr   Zdjango.httpr   Zdjango.testr   Ztwilio.twiml.voice_responser   Zdjango_twilio.decoratorsr   Zdjango.views.genericr   Zdjango.utils.decoratorsr	   Zdjango_twilio.viewsr
   r   r   r   r   r   r   r   utilsr   r   r   r1   r2   r5   r6   r;   r<   r>   rN   rS   rW   rZ   r_   rc   rh   r   r   r   r   <module>   s8   (




	