o
    #ij                     @   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 d
d Zeg ddG dd deZdS )    )SiteHttpResponse)RequestFactory)override_settings)empty)HostsRequestMiddleware   )HostsTestCase)AuthorBlogPostWikiPagec                 C   s   t  S Nr   request r   W/var/www/GraceOrthoHospital/venv_grace/lib/python3.10/site-packages/tests/test_sites.pyget_response_empty   s   r   )
wiki.site1
wiki.site2admin.site4static)ALLOWED_HOSTSc                       s   e Zd Z fddZdd Zeddddd	 Zedddd
d Zeddddd Zeddddd Z	eddddd Z
dd Zdd Zdd Zdd Zdd Zdd Z  ZS )
SitesTestsc                    s   t    tjjddd| _tjjddd| _tjjddd| _tjjdd	d| _t	jjd
| jd| _
t	jjd| jd| _t	jjd| jd| _t	jjd| jd| _tjjd| jd| _tjjd| jd| _tjjd| jd| _tjjd| jd| _d S )Nr   site1)domainnamer   site2z
wiki.site3site3r   site4page1)contentsitepage2page3page4john)r   r"   terrypost1)r!   authorpost2)supersetUpr   objectscreater   r   r   r   r   r    r#   r$   r%   r   author1author2r   r(   r*   self	__class__r   r   r,      s"   
zSitesTests.setUpc                 C   s$   t tttfD ]	}|j   qd S r   )r   r   r   r   r-   alldelete)r2   modelr   r   r   tearDown&   s   zSitesTests.tearDownztests.hosts.simplewww)ROOT_HOSTCONFDEFAULT_HOSTc                 C   P   t ddid}|d}tt}|| | |jd | |jj| j	j d S )Nhostr   headers/simple/tests.urls.simple)
r   getr   r   process_requestassertEqualurlconfr"   pkr   r2   rfr   
middlewarer   r   r   test_sites_callback*      

zSitesTests.test_sites_callbackc                    s   t ddid}|d tt}|   fdd}|  jjt | 	d| |  jj| j
 t j_| 	d| |  jj| j
j d S )	Nr=   r   r>   r@   c                      s    j jS r   )r"   r   r   r   r   r   <lambda>>   s    z7SitesTests.test_sites_cached_callback.<locals>.<lambda>r	   r   )r   rB   r   r   rC   rD   r"   _wrappedr   assertNumQueriesr   rF   )r2   rH   rI   get_siter   r   r   test_sites_cached_callback5   s   

z%SitesTests.test_sites_cached_callbackc                 C   r<   Nr=   r   r>   r@   rA   )
r   rB   r   r   rC   rD   rE   r"   rF   r   rG   r   r   r   $test_sites_callback_with_parent_hostJ   rK   z/SitesTests.test_sites_callback_with_parent_hostc                 C   sl   t ddid}|d}tt}|| | |jd | |jj| j	j | t
tj|| jg d S rQ   )r   rB   r   r   rC   rD   rE   r"   rF   r   listr   on_site
by_requestr$   rG   r   r   r   test_manager_simpleU   s   

zSitesTests.test_manager_simplec                    sh   t ddid}|d tt}|  |  jd | t fdd | t	t
j g  d S )Nr=   r   r>   r@   rA   c                      s    j S r   )r"   r   r   r   r   rL   k   s    z6SitesTests.test_manager_missing_site.<locals>.<lambda>)r   rB   r   r   rC   rD   rE   assertRaisesAttributeErrorrS   r   rT   rU   )r2   rH   rI   r   r   r   test_manager_missing_siteb   s   

z$SitesTests.test_manager_missing_sitec                 C   sT   | j | jjd | ttj | j| j	g W d    d S 1 s#w   Y  d S N)SITE_ID)
settingsr   idrD   rS   r   rT   r5   r    r#   r1   r   r   r   test_manager_default_siten   s
   
"z$SitesTests.test_manager_default_sitec                 C   s   | j | jjd | ttj | jg W d    n1 s w   Y  | j | j	jd | ttj | j
g W d    d S 1 sFw   Y  d S rZ   )r\   r   r]   rD   rS   r   rT   r5   r(   r   r*   r1   r   r   r   test_manager_related_sites   s   "z$SitesTests.test_manager_related_sitec                 C   sP   | j | jjd | ttj | jg W d    d S 1 s!w   Y  d S rZ   )	r\   r   r]   rD   rS   r   no_select_relatedr5   r(   r1   r   r   r   test_no_select_relatedy   s
   "z!SitesTests.test_no_select_relatedc                 C   F   | j | jjd | ttjj W d    d S 1 sw   Y  d S rZ   )r\   r   r]   rW   
ValueErrorr   non_existingr5   r1   r   r   r   test_non_existing_field~      "z"SitesTests.test_non_existing_fieldc                 C   rb   rZ   )r\   r   r]   rW   rc   r   dead_endr5   r1   r   r   r   test_dead_end_field   rf   zSitesTests.test_dead_end_fieldc                 C   rb   rZ   )r\   r   r]   rW   	TypeErrorr   non_relr5   r1   r   r   r   test_non_rel_field   rf   zSitesTests.test_non_rel_field)__name__
__module____qualname__r,   r8   r   rJ   rP   rR   rV   rY   r^   r_   ra   re   rh   rk   __classcell__r   r   r3   r   r      sD    





	r   N)django.contrib.sites.modelsr   django.httpr   django.testr   django.test.utilsr   django.utils.functionalr   django_hosts.middlewarer   baser
   modelsr   r   r   r   r   r   r   r   r   <module>   s    