o
    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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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
   	section_a	add_child	section_b	test_page)selfsiter    r    Z/var/www/html/ndineBlogger/venv/lib/python3.10/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 d    n1 s-w   Y  W t| nt| w | |jd |jt jt| j|d d S )NidupdatedTexecute   )signalsenderr   instance_before)r   	MagicMockr   connectr
   r   r   r   r$   r   captureOnCommitCallbackssave
disconnectassertEqual
call_countassert_called_withANY)r   handler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 d    n1 s$w   Y  W t| nt| w | 	|j
d d S )NzGoodnight Moon!Tr&   r   )r   r,   r   r-   r   r   r.   r/   r0   r1   r2   r   r5   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 d    n1 s$w   Y  W t| nt| w | 	|j
d d S )NTr&   z
last-child)posr   )r   r,   r   r-   r.   r   mover   r0   r1   r2   r8   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"   r7   r9   r<   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	 q%t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   	LANGUAGESkeysr   get_or_createlocaleanother_localecopy_for_translation)r   r   r   language_codesrB   r    r    r!   r"   l   s   z&TestCopyForTranslationDoneSignal.setUpc              	   C   s   t  }t| tjj| jjd}z#| j	dd |
| j W d    n1 s*w   Y  W t| nt| w | |jd d S )Nr#   Tr&   r(   )r   r,   r   r-   r
   r   r   rE   r$   r.   rL   rK   r0   r1   r2   )r   r5   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}z#| jdd |	| j
 W d    n1 s*w   Y  W t| nt| w | |jd d S )NzSome category)namerJ   Tr&   r(   )r   r,   r   r-   r	   r   createrJ   r.   rL   rK   r0   r1   r2   )r   r5   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)r=   r>   r?   r@   r"   rO   rS   r    r    r    r!   rA   g   s
    rA   N)unittestr   django.confr   django.testr   wagtail.modelsr   r   wagtail.signalsr   r   wagtail.test.testapp.modelsr	   r
   wagtail.test.utilsr   r   rA   r    r    r    r!   <module>   s    [