o
    h(!                     @   s   d dl mZ d dlmZmZ d dlmZ d dlmZm	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eg ddG dd deZG dd deZG dd deZdS )    )ValidationError)TestCaseoverride_settings)get_dummy_request)PageSitec                   @      e Zd Zdd Zdd ZdS )TestSiteNaturalKeyc                 C   s    t ddd}| | d d S )Nexample.com  hostnameport)r
   r   )r   assertEqualnatural_keyselfsite r   X/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/tests/test_sites.pytest_natural_key	   s   z#TestSiteNaturalKey.test_natural_keyc                 C   s6   t jjddtjjddd}| t jdd| d S )Nr
   r      pkr   r   	root_page)r   objectscreater   getr   get_by_natural_keyr   r   r   r   test_get_by_natural_key   s   z*TestSiteNaturalKey.test_get_by_natural_keyN)__name__
__module____qualname__r   r    r   r   r   r   r	      s    r	   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestSiteUrlc                 C      t ddd}| |jd d S )Nr
   P   r   zhttp://example.comr   r   root_urlr   r   r   r   test_root_url_http      zTestSiteUrl.test_root_url_httpc                 C   r%   )Nr
   i  r   zhttps://example.comr'   r   r   r   r   test_root_url_https   r*   zTestSiteUrl.test_root_url_httpsc                 C   r%   )Nr
   i@  r   zhttp://example.com:8000r'   r   r   r   r   test_root_url_custom_port   r*   z%TestSiteUrl.test_root_url_custom_portN)r!   r"   r#   r)   r+   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 )TestSiteNameDisplayc                 C   s$   t ddddd}| | d d S )Nr
   r&   example dot comFr   r   	site_nameis_default_siter   r   __str__r   r   r   r   test_site_name_not_default#      z.TestSiteNameDisplay.test_site_name_not_defaultc                 C   s$   t ddddd}| | d d S )Nr
   r&   r.   Tr/   zexample dot com [default]r2   r   r   r   r   test_site_name_default,   r5   z*TestSiteNameDisplay.test_site_name_defaultc                 C   s"   t dddd}| | d d S )Nr
   r&   Fr   r   r1   r2   r   r   r   r   %test_no_site_name_not_default_port_805      z9TestSiteNameDisplay.test_no_site_name_not_default_port_80c                 C   "   t dddd}| | d d S )Nr
   r&   Tr7   zexample.com [default]r2   r   r   r   r   !test_no_site_name_default_port_809   r9   z5TestSiteNameDisplay.test_no_site_name_default_port_80c                 C   r:   )Nr
   r   Fr7   zexample.com:8080r2   r   r   r   r   $test_no_site_name_not_default_port_n=   r9   z8TestSiteNameDisplay.test_no_site_name_not_default_port_nc                 C   r:   )Nr
   r   Tr7   zexample.com:8080 [default]r2   r   r   r   r    test_no_site_name_default_port_nA   r9   z4TestSiteNameDisplay.test_no_site_name_default_port_nN)	r!   r"   r#   r4   r6   r8   r;   r<   r=   r   r   r   r   r-   "   s    		r-   c                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestSiteOrderingc                 C   s"   t jjdd| _tj   d S )Nr   r   )r   r   r   r   r   alldeleter   r   r   r   setUpG   s   zTestSiteOrdering.setUpc                 C   f   t jjd| jd}t jjd| jd}t jjd| jd}| tt j jddd|j|j|jg d S )N
charly.comr   r   	bravo.comalfa.comidTflat	r   r   r   r   r   listr@   values_listrI   r   site_1site_2site_3r   r   r   test_site_order_by_hostnameK      z,TestSiteOrdering.test_site_order_by_hostnamec                 C   rD   )NrE   rF   z	Bravo.comrH   rI   TrJ   rL   rO   r   r   r   !test_site_order_by_hostname_upperT   rT   z2TestSiteOrdering.test_site_order_by_hostname_upperc                 C   sl   t jjdd| jd}t jjdd| jd}t jjdd| jd}| tt j jdd	d
|j|j|jg d S )NrE   zX-ray)r   r0   r   rG   YankeerH   ZulurI   TrJ   rL   rO   r   r   r   0test_site_order_by_hostname_site_name_irrelevant]   s   zATestSiteOrdering.test_site_order_by_hostname_site_name_irrelevantN)r!   r"   r#   rC   rS   rU   rX   r   r   r   r   r?   F   s
    		r?   )r
   unknown.com	127.0.0.1[::1])ALLOWED_HOSTSc                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestFindSiteForRequestc                 C   s.   t j | _t jjddtjjddd| _d S )Nr
   r&   r   r   r   )r   r   r   default_siter   r   r   rB   r   r   r   rC   o   s   zTestFindSiteForRequest.setUpc                 C   s$   t | jd}| t|| j d S )N)r   )r   r   r   r   find_for_requestr   requestr   r   r   test_dummy_requestu   s   z)TestFindSiteForRequest.test_dummy_requestc                 C   0   t  }|jddd | t|| j d S )Nr
   r&   	HTTP_HOSTSERVER_PORTr   METAupdater   r   r_   r   r`   r   r   r   test_with_hosty      z%TestFindSiteForRequest.test_with_hostc                 C   rc   )NrY   r&   rd   r   rh   ri   r   r   r_   r^   r`   r   r   r   test_with_unknown_host~   rk   z-TestFindSiteForRequest.test_with_unknown_hostc                 C   rc   )Nr
   r&   SERVER_NAMErf   rg   r`   r   r   r   test_with_server_name   rk   z,TestFindSiteForRequest.test_with_server_namec                 C   s^   | j dd t }|jddd | t|| j W d    d S 1 s(w   Y  d S )NT)USE_X_FORWARDED_HOSTr
   r&   )HTTP_X_FORWARDED_HOSTrf   )settingsr   rh   ri   r   r   r_   r   r`   r   r   r   test_with_x_forwarded_host   s   "z1TestFindSiteForRequest.test_with_x_forwarded_hostc                 C   rc   )NrZ   r&   rn   rl   r`   r   r   r   test_ipv4_host   rk   z%TestFindSiteForRequest.test_ipv4_hostc                 C   rc   )Nr[   r&   rn   rl   r`   r   r   r   test_ipv6_host   rk   z%TestFindSiteForRequest.test_ipv6_hostN)r!   r"   r#   rC   rb   rj   rm   rp   rt   ru   rv   r   r   r   r   r]   m   s    r]   c                   @   r>   )
TestDefaultSitec                 C   sF   t j   t jjddtjjddd | t jjdd	  d S )Ntest.comTr   r   r   r1   r   r1   )
r   r   r@   rA   r   r   r   
assertTruefilterexistsrB   r   r   r   test_create_default_site   s
   z(TestDefaultSite.test_create_default_sitec                 C   sT   t jjdd}d|_|  t jjddtjjddd | t jjdd	  d S )NTrz   Frx   r   r   ry   )
r   r   r   r1   saver   r   r{   r|   r}   )r   defaultr   r   r   test_change_default_site   s   z(TestDefaultSite.test_change_default_sitec                 C   sP   t ddtjjddd}| t |  W d    d S 1 s!w   Y  d S )Nrx   Tr   r   ry   )r   r   r   r   assertRaisesr   clean_fieldsr   r   r   r   test_there_can_only_be_one   s   
"z*TestDefaultSite.test_there_can_only_be_onec                 C   sn   t jjddtjjddd t ddtjjddd}| t j |  W d    d S 1 s0w   Y  d S )Nr
   Tr   r   ry   rx   )r   r   r   r   r   r   MultipleObjectsReturnedr   r   r   r   r    test_oops_there_is_more_than_one   s   
"z0TestDefaultSite.test_oops_there_is_more_than_oneN)r!   r"   r#   r~   r   r   r   r   r   r   r   rw      s
    
rw   c                   @   r   )TestGetSiteRootPathsc                 C   sN   t j | _t jjd| jjd| _t jjd| jjd| _d| j_| j	  d S )Nzabc.comrF   zdef.comzxyz.com)
r   r   r   r^   r   r   abc_sitedef_siter   r   rB   r   r   r   rC      s   zTestGetSiteRootPaths.setUpc                 C   sT   t  }| |d d | jj | |d d | jj | |d d | jj d S )Nr      r   )r   get_site_root_pathsr   r^   rI   r   r   )r   resultr   r   r   >test_result_order_when_multiple_sites_share_the_same_root_page   s   zSTestGetSiteRootPaths.test_result_order_when_multiple_sites_share_the_same_root_pageN)r!   r"   r#   rC   r   r   r   r   r   r      s    r   N)django.core.exceptionsr   django.testr   r   wagtail.coreutilsr   wagtail.modelsr   r   r	   r$   r-   r?   r]   rw   r   r   r   r   r   <module>   s    $'-(