U
    |h                     @   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 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)
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   b/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/tests/test_signals.pysetUp   s(          zTestPageSlugChangedSignal.setUpc              	   C   s   t  }t| tjj| jjd}z.d| j_
| jdd | j  W 5 Q R X W 5 t	| X | |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!   
disconnectr   captureOnCommitCallbackssave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| z.d| j_| jdd | j  W 5 Q R X W 5 t| X | 	|j
d d S )NzGoodnight Moon!Tr#   r   )r   r'   r   r(   r)   r   r   r*   r+   r,   r-   r   r/   r   r   r   'test_signal_not_emitted_on_title_change?   s    
zATestPageSlugChangedSignal.test_signal_not_emitted_on_title_changec              	   C   s`   t  }t| z.| jdd | jj| jdd W 5 Q R X W 5 t| X | 	|j
d d S )NTr#   z
last-child)posr   )r   r'   r   r(   r)   r*   r   mover   r,   r-   r1   r   r   r   $test_signal_not_emitted_on_page_moveS   s    
 z>TestPageSlugChangedSignal.test_signal_not_emitted_on_page_moveN)__name__
__module____qualname____doc__r   r0   r2   r5   r   r   r   r   r      s
   r   c                   @   s    e Zd Z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   sl   t  }t| tjj| jjd}z(| j
dd || j W 5 Q R X W 5 t	| X | |jd d S )Nr    Tr#   r%   )r   r'   r   r(   r	   r   r   r>   r!   r)   r*   rC   rB   r,   r-   )r   r/   Zpage_to_translater   r   r   0test_signal_emitted_on_copy_for_translation_done   s    
zQTestCopyForTranslationDoneSignal.test_signal_emitted_on_copy_for_translation_doneN)r6   r7   r8   r9   r   rD   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	   Zwagtail.test.utilsr
   r   r:   r   r   r   r   <module>   s   [