Ë
    ¸2ÚiÆ  ã                   óT   — d dl Z d dlmZ ddlmZmZ  G d„ de«      Z G d„ de«      Zy)	é    N)ÚTestCaseé   )ÚHARD_DELETEÚSOFT_DELETEc                   ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚSafeDeleteTestCaseNc                 ó  — |j                   }| j                  |j                  j                  «       |d   d   «       | j                  |j                  j                  «       |d   d   «       |�|j                  |¬«      }n|j                  «       }|r| j                  ||«       n\| j                  |d   d«       | j                  |d   j                  «       |j                  j                  dij                  «       «       | j                  |j                  j                  «       |d   d   «       | j                  |j                  j                  «       |d   d   «       |syd	|vr'| j                  |j                  |j                  «       y|j                  «        | j                  |j                  j                  «       |d	   d   «       | j                  |j                  j                  «       |d	   d   «       y)
a~  Assert specific specific expected results before delete, after delete and after save.

        Example of expected_results, see SafeDeleteTestCase.assertSoftDelete.

        Args:
            instance: Model instance.
            expected_results: Specific expected results before delete, after delete and after save.
            expected_output: Specific expected output to delete call, None if verification should be more generic. (default: {None}).
            force_policy: Specific policy to force, None if no policy forced. (default: {None})
            save: Whether to test the Model.save() restoration. (default: {True})
        Úbefore_deleteÚallÚall_with_deletedN)Úforce_policyr   é   Úafter_deleteÚ
after_save)Ú	__class__ÚassertEqualÚobjectsÚcountÚall_objectsÚdeleteÚassertGreaterEqualÚitemsÚ_metaÚlabelÚassertRaisesÚDoesNotExistÚrefresh_from_dbÚsave)ÚselfÚinstanceÚexpected_resultsÚexpected_outputr   r   ÚmodelÚoutputs           úP/var/www/html/acx/venv/lib/python3.12/site-packages/safedelete/tests/testcase.pyÚassertDeletezSafeDeleteTestCase.assertDelete
   sÜ  € ð ×"Ñ"ˆà×ÑØ�M‰M×ÑÓ!Ø˜_Ñ-¨eÑ4ô	
ð 	×ÑØ×Ñ×#Ñ#Ó%Ø˜_Ñ-Ð.@ÑAô	
ð
 Ð#Ø—_‘_°,�_Ó?‰Fà—_‘_Ó&ˆFáØ×Ñ˜V _Õ5à×#Ñ# F¨1¡I¨qÔ1Ø×#Ñ# F¨1¡I§O¡OÓ$5¸¿¹×8LÑ8LÈaÐ7P×7VÑ7VÓ7XÔYà×ÑØ�M‰M×ÑÓ!Ø˜^Ñ,¨UÑ3ô	
ð 	×ÑØ×Ñ×#Ñ#Ó%Ø˜^Ñ,Ð-?Ñ@ô	
ñ
 Øð
 Ð/Ñ/Ø×ÑØ×"Ñ"Ø×(Ñ(õð
 �M‰MŒOØ×ÑØ—‘×#Ñ#Ó%Ø  Ñ.¨uÑ5ôð ×ÑØ×!Ñ!×'Ñ'Ó)Ø  Ñ.Ð/AÑBõó    c           	      óZ   —  | j                   d|dddœdddœdddœdœ|rt        nddœ|¤Ž y)zÉAssert whether the given model instance can be soft deleted.

        Args:
            instance: Model instance.
            force: Whether to force the soft delete policy. (default: {False})
        r   ©r   r   r   )r
   r   r   N©r    r!   r   © )r&   r   ©r   r    ÚforceÚkwargss       r%   ÚassertSoftDeletez#SafeDeleteTestCase.assertSoftDeleteK   s[   € ð 	ˆ×Ñð 	
Øð Ø()ñ"ð
 Ø()ñ!ð Ø()ñññ ).�°4ñ#	
ð$ ó%	
r'   c                 óR   —  | j                   d|dddœdddœdœ|rt        nddœ|¤Ž y)zÉAssert whether the given model instance can be hard deleted.

        Args:
            instance: Model instance.
            force: Whether to force the soft delete policy. (default: {False})
        r   r)   r   )r
   r   Nr*   r+   )r&   r   r,   s       r%   ÚassertHardDeletez#SafeDeleteTestCase.assertHardDeleteg   sN   € ð 	ˆ×Ñð 	
Øð Ø()ñ"ð
 Ø()ñ!ñ	ñ ).�°4ñ	
ð ó	
r'   )NNT)F)Ú__name__Ú
__module__Ú__qualname__r&   r/   r1   r+   r'   r%   r   r      s   „ ó?óB
ô8
r'   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚSafeDeleteForceTestCasec                 óT   — | j                   t        k(  rt        j                  d«      ‚y)z/Skip tests that should only run when inherited.zaOnly SafeDeleteForceTestCase subclasses can have tests that use SafeDeleteForceTestCase.instance.N)r   r6   ÚunittestÚSkipTest©r   s    r%   Ú
check_skipz"SafeDeleteForceTestCase.check_skip�   s,   € à�>‰>Ô4Ò4Ü×#Ñ#ð4óð ð 5r'   c                 ó^   — | j                  «        | j                  | j                  d¬«       y)zKTest whether the subclasses their instances can also be force hard deleted.T©r-   N)r;   r1   r    r:   s    r%   Útest_harddelete_forcez-SafeDeleteForceTestCase.test_harddelete_force‰   ó#   € à�‰ÔØ×Ñ˜dŸm™m°4ÐÕ8r'   c                 ó^   — | j                  «        | j                  | j                  d¬«       y)zKTest whether the subclasses their instances can also be force soft deleted.Tr=   N)r;   r/   r    r:   s    r%   Útest_softdelete_forcez-SafeDeleteForceTestCase.test_softdelete_forceŽ   r?   r'   N)r2   r3   r4   r;   r>   rA   r+   r'   r%   r6   r6      s   „ òò9ó
9r'   r6   )r8   Údjango.testr   Úconfigr   r   r   r6   r+   r'   r%   ú<module>rD      s*   ðÛ å  ç -ôt
˜ô t
ôn9Ð0õ 9r'   