a
    Dg                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ d dlmZ G dd	 d	eeZG d
d deeZdS )    )mock)settings)TestCase)LocaleSite)copy_for_translation_donepage_slug_changed)EventCategory
SimplePage)WagtailTestUtilsc                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )TestPageSlugChangedSignalzB
    Tests for the `wagtail.signals.page_slug_changed` signal
    c                 C   sz   t jdjdd}|j}tdddd| _|j| jd td	d
dd| _|j| jd tdddd| _	| jj| j	d d S )N	root_pageTZis_default_sitez	Section Az	section-ahellotitleslugcontentinstancez	Section Bz	section-bzHello world! Azhello-world-a)
r   objectsselect_relatedgetr   r
   Z	section_a	add_child	section_b	test_page)selfsiter    r   Y/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/tests/test_signals.pysetUp   s    zTestPageSlugChangedSignal.setUpc              	   C   s   t  }t| tjj| jjd}zLd| j_	| j
dd | j  W d    n1 sZ0    Y  W t| nt| 0 | |jd |jt jt| j|d d S )NidupdatedTexecute   )signalZsenderr   Zinstance_before)r   	MagicMockr   connectr
   r   r   r   r"   r   captureOnCommitCallbackssave
disconnectassertEqual
call_countZassert_called_withANY)r   handlerZold_pager   r   r   "test_signal_emitted_on_slug_change'   s    
*z<TestPageSlugChangedSignal.test_signal_emitted_on_slug_changec              	   C   s~   t  }t| zLd| j_| jdd | j  W d    n1 sH0    Y  W t| nt| 0 | 	|j
d d S )NzGoodnight Moon!Tr$   r   )r   r(   r   r)   r   r   r*   r+   r,   r-   r.   r   r0   r   r   r   'test_signal_not_emitted_on_title_change?   s    
*zATestPageSlugChangedSignal.test_signal_not_emitted_on_title_changec              	   C   s~   t  }t| zL| jdd" | jj| jdd W d    n1 sH0    Y  W t| nt| 0 | 	|j
d d S )NTr$   z
last-child)posr   )r   r(   r   r)   r*   r   mover   r,   r-   r.   r2   r   r   r   $test_signal_not_emitted_on_page_moveS   s    
2z>TestPageSlugChangedSignal.test_signal_not_emitted_on_page_moveN)__name__
__module____qualname____doc__r    r1   r3   r6   r   r   r   r   r      s
   r   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	 TestCopyForTranslationDoneSignalzJ
    Tests for the `wagtail.signals.copy_for_translation_done` signal
    c                 C   s   t jdjdd}|j}tdddd| _|j| jd tt	j
 }|D ]}tjj|d	 qJtjjd
d	| _tjjdd	| _|| j d S )Nr   Tr   zSubpage in englishzsubpage-in-englishr   r   r   )language_codeenfr)r   r   r   r   r   r
   subpager   dictr   Z	LANGUAGESkeysr   Zget_or_createlocaleanother_localecopy_for_translation)r   r   r   Zlanguage_codesr<   r   r   r   r    l   s    z&TestCopyForTranslationDoneSignal.setUpc              	   C   s   t  }t| tjj| jjd}zF| j	dd |
| j W d    n1 sT0    Y  W t| nt| 0 | |jd d S )Nr!   Tr$   r&   )r   r(   r   r)   r
   r   r   r?   r"   r*   rD   rC   r,   r-   r.   )r   r0   Zpage_to_translater   r   r   5test_signal_emitted_on_page_copy_for_translation_done   s    
,zVTestCopyForTranslationDoneSignal.test_signal_emitted_on_page_copy_for_translation_donec              	   C   s   t  }t| tjjd| jd}zF| jdd |	| j
 W d    n1 sT0    Y  W t| nt| 0 | |jd d S )NzSome category)namerB   Tr$   r&   )r   r(   r   r)   r	   r   createrB   r*   rD   rC   r,   r-   r.   )r   r0   Zmodel_to_translater   r   r   Ctest_signal_emitted_on_translatable_model_copy_for_translation_done   s    
,zdTestCopyForTranslationDoneSignal.test_signal_emitted_on_translatable_model_copy_for_translation_doneN)r7   r8   r9   r:   r    rE   rH   r   r   r   r   r;   g   s   r;   N)Zunittestr   Zdjango.confr   Zdjango.testr   Zwagtail.modelsr   r   Zwagtail.signalsr   r   Zwagtail.test.testapp.modelsr	   r
   Zwagtail.test.utilsr   r   r;   r   r   r   r   <module>   s   [