Ë
    £2Úi„  ã                   ó  — d dl Z d dlZd dlmZmZ 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 d dlmZmZ d	d
lmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ejL                  Z& e	«       Z' eddddd «      Z(e( ed¬«      z   Z)e( ed¬«      z
  Z* G d„ de«      Z+ G d„ de j                  «      Z, G d„ de«      Z- G d„ de«      Z. G d„ de«      Z/ G d„ de«      Z0 ei ¬«       G d„ de«      «       Z1 G d„ de«      Z2y) é    N)ÚdatetimeÚ	timedelta)ÚStringIO)Úapps)Úget_user_model)Ú
management)ÚTestCaseÚTransactionTestCaseÚoverride_settings)Ú
exceptionsÚregisteré   )ÚChoiceÚInheritTracking1ÚInheritTracking2ÚInheritTracking3ÚInheritTracking4ÚModelWithCustomAttrForeignKeyÚ ModelWithCustomAttrOneToOneFieldÚModelWithHistoryInDifferentAppÚPollÚ
RestaurantÚTrackedAbstractBaseAÚTrackedAbstractBaseBÚTrackedWithAbstractBaseÚTrackedWithConcreteBaseÚUserAccessorDefaultÚUserAccessorOverrideÚUUIDRegisterModelÚVoteriå  é   é
   )Údaysc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚRegisterTestc                 ób  — | j                  t        t        j                  j	                  «       «      d«       t
        j                  j                  t        ¬«      }t        j                  j                  |d¬«      }| j                  t        |j                  j	                  «       «      d«       y )Nr   ©Úpub_date©ÚpollÚvotesr!   )	ÚassertEqualÚlenr   ÚhistoryÚallr   ÚobjectsÚcreateÚtoday)Úselfr*   Úchoices      úZ/var/www/html/acx/venv/lib/python3.12/site-packages/simple_history/registry_tests/tests.pyÚtest_register_no_argsz"RegisterTest.test_register_no_args*   sv   € Ø×ÑœœVŸ^™^×/Ñ/Ó1Ó2°AÔ6Ü�|‰|×"Ñ"¬EÐ"Ó2ˆÜ—‘×&Ñ&¨D¸Ð&Ó:ˆØ×Ñœ˜VŸ^™^×/Ñ/Ó1Ó2°AÕ6ó    c                 óÄ  — d„ }| j                  t        |t        «       | j                  t	        t        j
                  j                  «       «      d«       t        j                  j                  dd¬«      }| j                  t	        t        j
                  j                  «       «      d«       | j                  t	        |j
                  j                  «       «      d«       y )Nc                 ó   — | j                   S ©N)r.   )Úmodels    r5   Úget_historyz<RegisterTest.test_register_separate_app.<locals>.get_history1   s   € Ø—=‘=Ð r7   r   ÚbobÚpass)ÚusernameÚpasswordr!   )	ÚassertRaisesÚAttributeErrorÚUserr,   r-   Ú	historiesr/   r0   r1   )r3   r<   Úusers      r5   Útest_register_separate_appz'RegisterTest.test_register_separate_app0   sš   € ò	!ð 	×Ñœ.¨+´tÔ<Ø×ÑœœTŸ^™^×/Ñ/Ó1Ó2°AÔ6Ü�|‰|×"Ñ"¨E¸FÐ"ÓCˆØ×ÑœœTŸ^™^×/Ñ/Ó1Ó2°AÔ6Ø×Ñœ˜TŸ^™^×/Ñ/Ó1Ó2°AÕ6r7   c                 óŽ   — | j                  t        j                  «      5  t        t        d¬«       d d d «       y # 1 sw Y   y xY w)NÚagain)Úmanager_name)rA   r   ÚMultipleRegistrationsErrorr   r   ©r3   s    r5   Útest_reregisterzRegisterTest.test_reregister:   s5   € Ø×Ñœz×DÑDÓEñ 	7Ü”Z¨gÕ6÷	7÷ 	7ñ 	7ús	    ;»Ac                 ól  — | j                  t        t        j                  j	                  «       «      d«       t
        j                  j                  t        ¬«      }t        j                  j                  |d¬«      }t        j                  j                  d¬«      }t        j                  j                  ||¬«      }| j                  t        |j                  j	                  «       «      d«       d}| j                  |t        |j                  j	                  «       d   «      d t        |«       «       y )	Nr   r'   r)   Úvoter)r?   )r4   rE   r!   z#Voter object changed by None as of )r,   r-   r    r.   r/   r   r0   r1   r2   r   rC   Ústr)r3   r*   r4   rE   rN   Úexpecteds         r5   Útest_register_custome_recordsz*RegisterTest.test_register_custome_records>   sÝ   € Ø×ÑœœUŸ]™]×.Ñ.Ó0Ó1°1Ô5Ü�|‰|×"Ñ"¬EÐ"Ó2ˆÜ—‘×&Ñ&¨D¸Ð&Ó:ˆÜ�|‰|×"Ñ"¨GÐ"Ó4ˆÜ—‘×$Ñ$¨F¸Ð$Ó>ˆØ×Ñœ˜UŸ]™]×.Ñ.Ó0Ó1°1Ô5Ø8ˆØ×Ñ˜¤3 u§}¡}×'8Ñ'8Ó':¸1Ñ'=Ó#>¸ÄÀXÃÐ#OÕPr7   c                 ó´  — | j                  t        t        j                  j	                  «       «      d«       t        j
                  j                  «       }| j                  t        |j                  j	                  «       «      d«       |j                  j	                  «       d   }| j                  t        |j                  t        j                  «      «       y )Nr   r!   )r,   r-   r   r.   r/   r0   r1   Ú
assertTrueÚ
isinstanceÚ
history_idÚuuidÚUUID)r3   Úentryr.   s      r5   Útest_register_history_id_fieldz+RegisterTest.test_register_history_id_fieldH   s‘   € Ø×ÑœÔ.×6Ñ6×:Ñ:Ó<Ó=¸qÔAÜ!×)Ñ)×0Ñ0Ó2ˆØ×Ñœ˜UŸ]™]×.Ñ.Ó0Ó1°1Ô5Ø—-‘-×#Ñ#Ó% aÑ(ˆØ�‰œ
 7×#5Ñ#5´t·y±yÓAÕBr7   N)Ú__name__Ú
__module__Ú__qualname__r6   rF   rL   rQ   rY   © r7   r5   r%   r%   )   s   „ ò7ò7ò7òQóCr7   r%   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestUserAccessorc                 ó`   — t        t        «       | j                  t        t        d«      «       y )NÚ!historicaluseraccessordefault_set)r   r   ÚassertFalseÚhasattrrC   rK   s    r5   Útest_accessor_defaultz&TestUserAccessor.test_accessor_defaultQ   s!   € ÜÔ$Ô%Ø×Ñœ¤Ð'JÓKÕLr7   c                 ód   — t        t        d¬«       | j                  t        t        d«      «       y )NÚmy_history_model_accessor)Úuser_related_name)r   r   rS   rc   rC   rK   s    r5   Útest_accessor_overridez'TestUserAccessor.test_accessor_overrideU   s"   € ÜÔ%Ð9TÕUØ�‰œ¤Ð&AÓBÕCr7   N)rZ   r[   r\   rd   rh   r]   r7   r5   r_   r_   P   s   „ òMóDr7   r_   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestInheritedModulec                 óR   — 	 ddl m} y # t        $ r | j                  d«       Y y w xY w)Nr   )ÚHistoricalConcreteExternalz-HistoricalConcreteExternal is in wrong module)Útests.modelsrl   ÚImportErrorÚfail)r3   rl   s     r5   Útest_using_app_labelz(TestInheritedModule.test_using_app_label[   s)   € ð	GÞAøÜò 	GØ�I‰IÐEÖFð	Gúó   ‚	 ‰&¥&c                 óR   — 	 ddl m} y # t        $ r | j                  d«       Y y w xY w)Nr   )ÚHistoricalConcreteExternal2z.HistoricalConcreteExternal2 is in wrong module)rm   rs   rn   ro   )r3   rs   s     r5   Útest_defaultz TestInheritedModule.test_defaulta   s)   € ð	HÞBøÜò 	HØ�I‰IÐFÖGð	Húrq   N)rZ   r[   r\   rp   rt   r]   r7   r5   rj   rj   Z   s   „ òGóHr7   rj   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestTrackingInheritancec                 ó¶   — | j                  t        d„ t        j                  j                  j
                  j                  D «       «      t        g d¢«      «       y )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr:   ©Úattname©Ú.0Úfs     r5   ú	<genexpr>zETestTrackingInheritance.test_tracked_abstract_base.<locals>.<genexpr>k   ó   è ø€ ò Ø�—	•	ñùó   ‚)ÚidrU   Úhistory_change_reasonÚhistory_dateÚhistory_user_idÚhistory_type)r,   Úsortedr   r.   r;   Ú_metaÚfieldsrK   s    r5   Útest_tracked_abstract_basez2TestTrackingInheritance.test_tracked_abstract_basei   sL   € Ø×ÑÜñ Ü#:×#BÑ#B×#HÑ#H×#NÑ#N×#UÑ#Uôó ô òó	õ		
r7   c                 ó¶   — | j                  t        d„ t        j                  j                  j
                  j                  D «       «      t        g d¢«      «       y )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr:   ry   r{   s     r5   r~   zETestTrackingInheritance.test_tracked_concrete_base.<locals>.<genexpr>|   r   r€   )r�   Útrackedconcretebase_ptr_idrU   r‚   rƒ   r„   r…   )r,   r†   r   r.   r;   r‡   rˆ   rK   s    r5   Útest_tracked_concrete_basez2TestTrackingInheritance.test_tracked_concrete_basez   sL   € Ø×ÑÜñ Ü#:×#BÑ#B×#HÑ#H×#NÑ#N×#UÑ#Uôó ô òó
õ		
r7   c                 ó”   — | j                  t        j                  «      5   G d„ dt        t        «      }d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú]TestTrackingInheritance.test_multiple_tracked_bases.<locals>.TrackedWithMultipleAbstractBasesN)rZ   r[   r\   r]   r7   r5   Ú TrackedWithMultipleAbstractBasesr�   �   s   „ ð r7   r‘   )rA   r   rJ   r   r   )r3   r‘   s     r5   Útest_multiple_tracked_basesz3TestTrackingInheritance.test_multiple_tracked_basesŒ   s;   € Ø×Ñœz×DÑDÓEñ 	ôÜ$Ô&:ô÷	÷ 	ñ 	ús	    >¾Ac                 ó¶   — | j                  t        d„ t        j                  j                  j
                  j                  D «       «      t        g d¢«      «       y )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr:   ry   r{   s     r5   r~   z\TestTrackingInheritance.test_tracked_abstract_and_untracked_concrete_base.<locals>.<genexpr>–   ó   è ø€ ÒR �1—9•9ÑRùr€   )r�   Úuntrackedconcretebase_ptr_idrU   r‚   rƒ   r„   r…   )r,   r†   r   r.   r;   r‡   rˆ   rK   s    r5   Ú1test_tracked_abstract_and_untracked_concrete_basezITestTrackingInheritance.test_tracked_abstract_and_untracked_concrete_base”   óD   € Ø×ÑÜÑRÔ&6×&>Ñ&>×&DÑ&D×&JÑ&J×&QÑ&QÔRÓRÜòó
õ	
r7   c                 ó¶   — | j                  t        d„ t        j                  j                  j
                  j                  D «       «      t        g d¢«      «       y )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr:   ry   r{   s     r5   r~   zNTestTrackingInheritance.test_indirect_tracked_abstract_base.<locals>.<genexpr>¦   r•   r€   )r�   Úbaseinherittracking2_ptr_idrU   r‚   rƒ   r„   r…   )r,   r†   r   r.   r;   r‡   rˆ   rK   s    r5   Ú#test_indirect_tracked_abstract_basez;TestTrackingInheritance.test_indirect_tracked_abstract_base¤   r˜   r7   c                 ó¶   — | j                  t        d„ t        j                  j                  j
                  j                  D «       «      t        g d¢«      «       y )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr:   ry   r{   s     r5   r~   zNTestTrackingInheritance.test_indirect_tracked_concrete_base.<locals>.<genexpr>¶   r•   r€   )r�   Úbaseinherittracking3_ptr_idrU   r‚   rƒ   r„   r…   )r,   r†   r   r.   r;   r‡   rˆ   rK   s    r5   Ú#test_indirect_tracked_concrete_basez;TestTrackingInheritance.test_indirect_tracked_concrete_base´   r˜   r7   c                 óŠ   — | j                  t        j                  «      5  t        t        «       d d d «       y # 1 sw Y   y xY wr:   )rA   r   rJ   r   r   rK   s    r5   Ú+test_registering_with_tracked_abstract_basezCTestTrackingInheritance.test_registering_with_tracked_abstract_baseÄ   s4   € Ø×Ñœz×DÑDÓEñ 	'ÜÔ%Ô&÷	'÷ 	'ñ 	'ús	    9¹AN)
rZ   r[   r\   r‰   r�   r’   r—   rœ   r    r¢   r]   r7   r5   rv   rv   h   s%   „ ò
ò"
ò$ò
ò 
ò 
ó 'r7   rv   c                   ó   — e Zd ZdZd„ Zy)ÚTestCustomAttrForeignKeyz<https://github.com/jazzband/django-simple-history/issues/431c                 ó¢   — t         j                  j                  j                  j	                  d«      }| j                  |j                  d«       y )Nr*   Úcustom_poll)r   r.   r;   r‡   Ú	get_fieldr,   Ú	attr_name©r3   Úfields     r5   Útest_custom_attrz)TestCustomAttrForeignKey.test_custom_attrÌ   s8   € Ü-×5Ñ5×;Ñ;×AÑA×KÑKÈFÓSˆØ×Ñ˜Ÿ™¨-Õ8r7   N©rZ   r[   r\   Ú__doc__r«   r]   r7   r5   r¤   r¤   É   s
   „ ÙFó9r7   r¤   c                   ó   — e Zd ZdZd„ Zy)ÚTestCustomAttrOneToOneFieldz<https://github.com/jazzband/django-simple-history/issues/870c                 ó    — t         j                  j                  j                  j	                  d«      }| j                  t        |d«      «       y )Nr*   r¨   )r   r.   r;   r‡   r§   rb   rc   r©   s     r5   r«   z,TestCustomAttrOneToOneField.test_custom_attrÔ   s9   € Ü0×8Ñ8×>Ñ>×DÑD×NÑNÈvÓVˆØ×Ñœ ¨Ó4Õ5r7   Nr¬   r]   r7   r5   r¯   r¯   Ñ   s
   „ ÙFó6r7   r¯   )ÚMIGRATION_MODULESc                   ó   — e Zd Zd„ Zd„ Zy)ÚTestMigratec                 óD   — t        j                  ddt        «       ¬«       y )NÚmakemigrationsÚmigration_test_app)Ústdout©r   Úcall_commandr   rK   s    r5   Útest_makemigration_commandz&TestMigrate.test_makemigration_commandÛ   s   € Ü×ÑØÐ2¼8»:ö	
r7   c                 óF   — t        j                  dddt        «       ¬«       y )NÚmigrater¶   T)Úfaker·   r¸   rK   s    r5   Útest_migrate_commandz TestMigrate.test_migrate_commandà   s   € Ü×ÑØÐ+°$¼x»zö	
r7   N)rZ   r[   r\   rº   r¾   r]   r7   r5   r³   r³   Ù   s   „ ò
ó

r7   r³   c                   ó   — e Zd ZdZd„ Zy)Ú"TestModelWithHistoryInDifferentAppz<https://github.com/jazzband/django-simple-history/issues/485c                 ó„   — t         j                  j                  j                  j                  }| j                  |d«       y )NÚexternal)r   r.   r;   r‡   Ú	app_labelr,   )r3   ÚappLabels     r5   Útest__different_appz6TestModelWithHistoryInDifferentApp.test__different_appé   s/   € Ü1×9Ñ9×?Ñ?×EÑE×OÑOˆØ×Ñ˜ :Õ.r7   N)rZ   r[   r\   r­   rÅ   r]   r7   r5   rÀ   rÀ   æ   s
   „ ÙFó/r7   rÀ   )3ÚunittestrV   r   r   Úior   Údjango.appsr   Údjango.contrib.authr   Údjango.corer   Údjango.testr	   r
   r   Úsimple_historyr   r   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Ú	get_modelrC   r2   ÚtomorrowÚ	yesterdayr%   r_   rj   rv   r¤   r¯   r³   rÀ   r]   r7   r5   ú<module>rÐ      s  ðÛ Û ß (Ý å Ý .Ý "ß HÑ Hç /÷÷ ÷ ÷ ÷ ð* �N‰N€	ÙÓ€Ù��q˜!˜R Ó#€Ø‘9 !Ô$Ñ$€Ø‘I 1Ô%Ñ%€	ô$C�8ô $CôND�x×(Ñ(ô DôH˜(ô Hô^'˜hô ^'ôB9˜xô 9ô6 (ô 6ñ  RÔ(ô	
Ð%ó 	
ó )ð	
ô/¨õ /r7   