a
    DgX                     @   sT   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
 G dd deZdS )	    )apps)checks)models)TestCase)LockableMixinRevisionMixinc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestLockableMixinc              	   C   sD   dD ]2}zdD ]}t j| |= qW q ty4   Y q0 qt   d S )N)Zwagtailcorezwagtail.tests)ZlockablewithoutrevisionmodelZlockableincorrectrevisionmodelZlockablewithrevisionmodel)r   Z
all_modelsKeyErrorclear_cache)selfpackagemodel r   `/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/tests/test_lockable_model.pytearDown
   s    zTestLockableMixin.tearDownc                 C   s(   G dd dt tj}| | g  d S )Nc                   @   s   e Zd ZdS )zPTestLockableMixin.test_lockable_mixin_only.<locals>.LockableWithoutRevisionModelN__name__
__module____qualname__r   r   r   r   LockableWithoutRevisionModel   s   r   )r   r   ModelassertEqualcheck)r   r   r   r   r   test_lockable_mixin_only   s    z*TestLockableMixin.test_lockable_mixin_onlyc              	   C   s:   G dd dt ttj}| | tjdd|ddg d S )Nc                   @   s   e Zd ZdS )z]TestLockableMixin.test_incorrect_revision_mixin_order.<locals>.LockableIncorrectRevisionModelNr   r   r   r   r   LockableIncorrectRevisionModel!   s   r   z3LockableMixin must be applied before RevisionMixin.zDMove LockableMixin in the model's base classes before RevisionMixin.zwagtailcore.E005)hintobjid)r   r   r   r   r   r   r   Error)r   r   r   r   r   #test_incorrect_revision_mixin_order    s    
z5TestLockableMixin.test_incorrect_revision_mixin_orderc                 C   s*   G dd dt ttj}| | g  d S )Nc                   @   s   e Zd ZdS )zVTestLockableMixin.test_correct_revision_mixin_order.<locals>.LockableWithRevisionModelNr   r   r   r   r   LockableWithRevisionModel3   s   r    )r   r   r   r   r   r   )r   r    r   r   r   !test_correct_revision_mixin_order2   s    z3TestLockableMixin.test_correct_revision_mixin_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   <module>   s
   