o
    hX                     @   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   sB   dD ]}zdD ]}t j| |= qW q ty   Y qw t   d S )N)wagtailcorezwagtail.tests)lockablewithoutrevisionmodellockableincorrectrevisionmodellockablewithrevisionmodel)r   
all_modelsKeyErrorclear_cache)selfpackagemodel r   a/var/www/html/ndineBlogger/venv/lib/python3.10/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                   @      e Zd ZdS )zPTestLockableMixin.test_lockable_mixin_only.<locals>.LockableWithoutRevisionModelN__name__
__module____qualname__r   r   r   r   LockableWithoutRevisionModel       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                   @   r   )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                   @   r   )zVTestLockableMixin.test_correct_revision_mixin_order.<locals>.LockableWithRevisionModelNr   r   r   r   r   LockableWithRevisionModel3   r   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)django.appsr   django.corer   	django.dbr   django.testr   wagtail.modelsr   r   r   r   r   r   r   <module>   s    