U
    |h                     @   s\   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZ G dd deZdS )	    )apps)checks)models)TestCase)DraftStateMixinLockableMixinRevisionMixinWorkflowMixinc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestWorkflowMixinc              	   C   sF   dD ]4}zdD ]}t j| |= qW q tk
r6   Y qX qt   d S )N)Zwagtailcorezwagtail.tests)ZworkflowwithoutrevisionmodelZworkflowwithoutdraftstatemodelZworkflowincorrectordermodel1Zworkflowincorrectordermodel2ZcorrectworkflowmodelZcorrectnotlockableworkflowmodel)r   Z
all_modelsKeyErrorclear_cache)selfpackagemodel r   i/var/www/dating/data/www/fatepal.com/env/lib/python3.8/site-packages/wagtail/tests/test_workflow_model.pytearDown
   s    zTestWorkflowMixin.tearDownc              
   C   s|   t jdddd}G dd dttj}G dd dtttj}||fD ]4}| j|d	 ||_| |	 |g W 5 Q R X qBd S )
NIWorkflowMixin requires DraftStateMixin and RevisionMixin (in that order).fMake sure your model's inheritance order is as follows: WorkflowMixin, DraftStateMixin, RevisionMixin.wagtailcore.E006hintidc                   @   s   e Zd ZdS )zbTestWorkflowMixin.test_missing_revision_or_draftstate_mixins.<locals>.WorkflowWithoutRevisionModelN__name__
__module____qualname__r   r   r   r   WorkflowWithoutRevisionModel'   s   r   c                   @   s   e Zd ZdS )zdTestWorkflowMixin.test_missing_revision_or_draftstate_mixins.<locals>.WorkflowWithoutDraftStateModelNr   r   r   r   r   WorkflowWithoutDraftStateModel*   s   r   r   )
r   Errorr	   r   Modelr   subTestobjassertEqualcheck)r   errorr   r   r   r   r   r   *test_missing_revision_or_draftstate_mixins   s    	
  z<TestWorkflowMixin.test_missing_revision_or_draftstate_mixinsc              
   C   s   t jdddd}G dd dtttttj}G dd dttttj}||fD ]4}| j|d	 ||_	| 
| |g W 5 Q R X qJd S )
Nr   r   r   r   c                   @   s   e Zd ZdS )zSTestWorkflowMixin.test_incorrect_mixins_order.<locals>.WorkflowIncorrectOrderModel1Nr   r   r   r   r   WorkflowIncorrectOrderModel1>   s   r(   c                   @   s   e Zd ZdS )zSTestWorkflowMixin.test_incorrect_mixins_order.<locals>.WorkflowIncorrectOrderModel2Nr   r   r   r   r   WorkflowIncorrectOrderModel2C   s   r)   r   )r   r    r   r	   r   r   r   r!   r"   r#   r$   r%   )r   r&   r(   r)   r   r   r   r   test_incorrect_mixins_order4   s,    	
    
   z-TestWorkflowMixin.test_incorrect_mixins_orderc              
   C   sl   G dd dt ttttj}G dd dt tttj}||fD ],}| j|d | | g  W 5 Q R X q:d S )Nc                   @   s   e Zd ZdS )zITestWorkflowMixin.test_correct_mixins_order.<locals>.CorrectWorkflowModelNr   r   r   r   r   CorrectWorkflowModelN   s   r+   c                   @   s   e Zd ZdS )zTTestWorkflowMixin.test_correct_mixins_order.<locals>.CorrectNotLockableWorkflowModelNr   r   r   r   r   CorrectNotLockableWorkflowModelS   s   r,   r   )	r	   r   r   r   r   r!   r"   r$   r%   )r   r+   r,   r   r   r   r   test_correct_mixins_orderM   s     
    
   z+TestWorkflowMixin.test_correct_mixins_orderN)r   r   r   r   r'   r*   r-   r   r   r   r   r
   	   s   r
   N)Zdjango.appsr   Zdjango.corer   Z	django.dbr   Zdjango.testr   Zwagtail.modelsr   r   r   r	   r
   r   r   r   r   <module>   s
   