a
    Dg(!                     @   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                   @   s   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   assertEqualZnatural_keyselfsite r   W/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/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   Z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   s   t ddd}| |jd d S )Nr	   P   r   zhttp://example.comr   r   Zroot_urlr   r   r   r   test_root_url_http   s    zTestSiteUrl.test_root_url_httpc                 C   s   t ddd}| |jd d S )Nr	   i  r   zhttps://example.comr#   r   r   r   r   test_root_url_https   s    zTestSiteUrl.test_root_url_httpsc                 C   s   t ddd}| |jd d S )Nr	   i@  r   zhttp://example.com:8000r#   r   r   r   r   test_root_url_custom_port   s    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#   s    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]r,   r   r   r   r   test_site_name_default,   s    z*TestSiteNameDisplay.test_site_name_defaultc                 C   s"   t dddd}| | d d S )Nr	   r"   Fr   r   r+   r,   r   r   r   r   %test_no_site_name_not_default_port_805   s    z9TestSiteNameDisplay.test_no_site_name_not_default_port_80c                 C   s"   t dddd}| | d d S )Nr	   r"   Tr0   zexample.com [default]r,   r   r   r   r   !test_no_site_name_default_port_809   s    z5TestSiteNameDisplay.test_no_site_name_default_port_80c                 C   s"   t dddd}| | d d S )Nr	   r
   Fr0   zexample.com:8080r,   r   r   r   r   $test_no_site_name_not_default_port_n=   s    z8TestSiteNameDisplay.test_no_site_name_not_default_port_nc                 C   s"   t dddd}| | d d S )Nr	   r
   Tr0   zexample.com:8080 [default]r,   r   r   r   r    test_no_site_name_default_port_nA   s    z4TestSiteNameDisplay.test_no_site_name_default_port_nN)	r   r   r    r.   r/   r1   r2   r3   r4   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	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   sf   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Zflat	r   r   r   r   r   listr6   Zvalues_listr>   r   Zsite_1Zsite_2Zsite_3r   r   r   test_site_order_by_hostnameK   s    z,TestSiteOrdering.test_site_order_by_hostnamec                 C   sf   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 )Nr:   r;   z	Bravo.comr=   r>   Tr?   r@   rB   r   r   r   !test_site_order_by_hostname_upperT   s    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 )Nr:   zX-ray)r   r*   r   r<   ZYankeer=   ZZulur>   Tr?   r@   rB   r   r   r   0test_site_order_by_hostname_site_name_irrelevant]   s    zATestSiteOrdering.test_site_order_by_hostname_site_name_irrelevantN)r   r   r    r9   rC   rD   rE   r   r   r   r   r5   F   s   		r5   )r	   unknown.com	127.0.0.1[::1])Z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   r8   r   r   r   r9   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   s0   t  }|jddd | t|| j d S )Nr	   r"   Z	HTTP_HOSTSERVER_PORTr   METAupdater   r   rK   r   rL   r   r   r   test_with_hosty   s    z%TestFindSiteForRequest.test_with_hostc                 C   s0   t  }|jddd | t|| j d S )NrF   r"   rO   r   rR   rS   r   r   rK   rJ   rL   r   r   r   test_with_unknown_host~   s    z-TestFindSiteForRequest.test_with_unknown_hostc                 C   s0   t  }|jddd | t|| j d S )Nr	   r"   ZSERVER_NAMErP   rQ   rL   r   r   r   test_with_server_name   s    z,TestFindSiteForRequest.test_with_server_namec                 C   s\   | j dd< t }|jddd | t|| j W d    n1 sN0    Y  d S )NT)ZUSE_X_FORWARDED_HOSTr	   r"   )ZHTTP_X_FORWARDED_HOSTrP   )settingsr   rR   rS   r   r   rK   r   rL   r   r   r   test_with_x_forwarded_host   s    z1TestFindSiteForRequest.test_with_x_forwarded_hostc                 C   s0   t  }|jddd | t|| j d S )NrG   r"   rW   rU   rL   r   r   r   test_ipv4_host   s    z%TestFindSiteForRequest.test_ipv4_hostc                 C   s0   t  }|jddd | t|| j d S )NrH   r"   rW   rU   rL   r   r   r   test_ipv6_host   s    z%TestFindSiteForRequest.test_ipv6_hostN)r   r   r    r9   rN   rT   rV   rX   rZ   r[   r\   r   r   r   r   rI   m   s   rI   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
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   r+   r   r+   )
r   r   r6   r7   r   r   r   
assertTruefilterexistsr8   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 )NTr`   Fr^   r   r   r_   )
r   r   r   r+   saver   r   ra   rb   rc   )r   defaultr   r   r   test_change_default_site   s    z(TestDefaultSite.test_change_default_sitec                 C   sN   t ddtjjddd}| t |  W d    n1 s@0    Y  d S )Nr^   Tr   r   r_   )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   sl   t jjddtjjddd t ddtjjddd}| t j |  W d    n1 s^0    Y  d S )Nr	   Tr   r   r_   r^   )r   r   r   r   r   rh   ZMultipleObjectsReturnedri   r   r   r   r    test_oops_there_is_more_than_one   s    z0TestDefaultSite.test_oops_there_is_more_than_oneN)r   r   r    rd   rg   rj   rk   r   r   r   r   r]      s   
r]   c                   @   s   e Zd Zdd Zdd ZdS )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.comr;   zdef.comzxyz.com)
r   r   r   rJ   r   r   abc_sitedef_siter   re   r8   r   r   r   r9      s    zTestGetSiteRootPaths.setUpc                 C   sT   t  }| |d d | jj | |d d | jj | |d d | jj d S )Nr      r   )r   Zget_site_root_pathsr   rJ   r>   rm   rn   )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    r9   rq   r   r   r   r   rl      s   rl   N)Zdjango.core.exceptionsr   Zdjango.testr   r   Zwagtail.coreutilsr   Zwagtail.modelsr   r   r   r!   r'   r5   rI   r]   rl   r   r   r   r   <module>   s   $'-(