
    Mj                     \   S SK rS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  \R                  R                  S \" \R                  " \5      R                  5       R                   S   5      5        S SKJrJrJrJr   " S S\R,                  5      r\S:X  a  \R2                  " 5         gg)    N)mock   )DEFAULT_HOSTDEFAULT_PORTcreate_serverresolve_bind_addressc            
           \ rS rSr\S 5       r\S 5       rSS\S\S\S-  S\	S-  4S	 jjr
S
 rS rS rS rS rS rS rSrg)ServerTestCase   c                    [         R                  " 5       U l        [        R                  " 5       U l        [        R                  " U R                  R                  5        [        SSSS9 nUR                  S5        S S S 5        [        SS5      U l        U R                  R                  S   U l        [        R                  " U R                  R                   S	S
9U l        U R"                  R%                  5         g ! , (       d  f       N= f)Nz
index.htmlwutf-8)encodingok	127.0.0.1r   r   T)targetdaemon)tempfileTemporaryDirectorytemp_dirosgetcwdoriginal_cwdchdirnameopenwriter   serverserver_addressport	threadingThreadserve_foreverthreadstart)clsfs     f/paperclip/instances/default/workspaces/62beda07-02a5-4742-972f-63c26c38c409/repo/tests/test_server.py
setUpClassServerTestCase.setUpClass   s    22499;
""#,g6!GGDM 7";2
::,,Q/%%SZZ-E-EdS


 76s   *C<<
D
c                    U R                   R                  5         U R                   R                  5         U R                  R	                  SS9  [
        R                  " U R                  5        U R                  R                  5         g )N   timeout)
r   shutdownserver_closer$   joinr   r   r   r   cleanup)r&   s    r(   tearDownClassServerTestCase.tearDownClass   sV    



!

"
!!"    Npathmethodbodyheadersc                     [         R                  R                  SU R                  SS9nUR	                  X!X4=(       d    0 S9  UR                  5       nUR                  5       nUR                  5         Xc4$ )Nr   r,   r-   )r8   r9   )httpclientHTTPConnectionr    requestgetresponsereadclose)selfr6   r7   r8   r9   connresponses          r(   r>   ServerTestCase.request%   s_    {{))+tyy!)LVmD##%}}

~r5   c                    U R                  S5      u  pU R                  UR                  S5        U R                  UR                  S5      S5        U R                  [        R
                  " UR                  S5      5      SS05        g )Nz/health   Content-Typezapplication/json; charset=utf-8r   statusr   )r>   assertEqualrI   	getheaderjsonloadsdecoderB   rD   r8   s      r(   test_health_endpoint#ServerTestCase.test_health_endpoint-   si    i0#.++N;=^_DKK$89Hd;KLr5   c                 b    U R                  S5      u  pU R                  UR                  S5        g )Nz/missingi  )r>   rJ   rI   )rB   rD   _s      r(   test_not_foundServerTestCase.test_not_found3   s&    ll:.#.r5   c                     U R                  S5      u  pU R                  UR                  S5        U R                  SU5        g )Nz/index.htmlrG   s   ok)r>   rJ   rI   assertInrO   s      r(   test_static_file_served&ServerTestCase.test_static_file_served7   s4    m4#.eT"r5   c                    [         R                  R                  [        R                  0 SS9   [        5       u  pS S S 5        U R                  W[        5        U R                  W[        5        g ! , (       d  f       N;= f)NT)clear)	r   patchdictr   environr   rJ   r   r   )rB   hostr    s      r(   test_default_bind_address(ServerTestCase.test_default_bind_address<   sT    ZZ__RZZ4_8-/JD 9|,|, 98s   A00
A>c                 ^   SSSS.nU R                  SS[        R                  " U5      R                  S5      SS	0S
9u  p#U R	                  UR
                  S5        [        R                  " UR                  S5      5      nU R                  SU5        U R	                  US   S   US   5        g )NCaseyzAdd filtersz+Add status and owner filters to the portal.	requestertitledetails/api/suggestionsPOSTr   rH   application/jsonr7   r8   r9      
suggestionre   	r>   rL   dumpsencoderJ   rI   rM   rN   rW   rB   payloadrD   r8   datas        r(   test_submit_suggestion%ServerTestCase.test_submit_suggestionB   s     "D

 G$++G4#%78	 & 
 	#.zz$++g./lD)l+K8'+:NOr5   c                 (   SSSS.nU R                  SS[        R                  " U5      R                  S5      SS	0S
9u  p#U R	                  UR
                  S5        [        R                  " UR                  S5      5      nU R                  SU5        g )Nrc    zMissing titlerd   rh   ri   r   rH   rj   rk   i  errorrn   rq   s        r(   !test_submit_suggestion_validation0ServerTestCase.test_submit_suggestion_validationS   s     '"QG$++G4#%78	 & 
 	#.zz$++g./gt$r5   c                   ^ SSSS.mU R                  SS[        R                  " T5      R                  S5      SS	0S
9u  pU R	                  UR
                  S5        U R                  S5      u  p4U R	                  UR
                  S5        [        R                  " UR                  S5      5      nU R                  US   S5        U R                  [        U4S jUS    5       5      5        g )NPriyazImprove mobile spacingz1Tighten paddings and reduce card width on phones.rd   rh   ri   r   rH   rj   rk   rl   rG   countr   c              3   P   >#    U  H  oR                  S 5      TS    :H  v   M     g7f)rf   N)get).0itemrr   s     r(   	<genexpr>7ServerTestCase.test_list_suggestions.<locals>.<genexpr>q   s$     bNadHHW-1AANas   #&suggestions)r>   rL   ro   rp   rJ   rI   rM   rN   assertGreaterEqual
assertTrueany)rB   create_responserS   rD   r8   rs   rr   s         @r(   test_list_suggestions$ServerTestCase.test_list_suggestions_   s     -J

 "\\G$++G4#%78	 * 
 	//5&89#.zz$++g./Wq1bdS`Nabbcr5    )GETNN)__name__
__module____qualname____firstlineno__classmethodr)   r3   strbytesr]   r>   rP   rT   rX   r`   rt   ry   r   __static_attributes__r   r5   r(   r
   r
      sz    	 	  C  EDL Z^aeZe M/#
-P"
%dr5   r
   __main__)http.clientr;   rL   r   pathlibr   sysr!   unittestr   r6   insertr   Path__file__resolveparentsr   r   r   r   r   TestCaser
   r   mainr   r5   r(   <module>r      s      	   
    3w||H-557??BC D R RadX&& adH zMMO r5   