+
    Vj                       ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	t	^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIH t H!t!H"t"H#t#H$t$ ^ RI%H&t&H't' ^ RI(H)t)H*t* ^ RI+H,t, ^ RI-H.t.H/t/H0t0 ^ RI1H1t1 ^ RI2H3t3 ^ RI2Ht4 ^ RI5H6t6 ^ RI7H8t8 ^ RI9H:t: ^ RI;H<t<H=t= ^ RI>H?t?H@t@HAtAHBtB ^+tC ! R R],4      tDR tER tFR tG ! R R]*4      tH ! R  R!])]H4      tI ! R" R#]I4      tJ ! R$ R%]I4      tK ! R& R']H4      tL ! R( R)]I4      tM ! R* R+]I4      tN ! R, R-]I4      tO ! R. R/]I4      tP ! R0 R1]O4      tQ ! R2 R3]I4      tR ! R4 R5]I4      tS ! R6 R7]I4      tT ! R8 R9]I4      tU ! R: R;]I4      tV ! R< R=]I4      tW ! R> R?]I4      tX ! R@ RA]I4      tY ! RB RC]I4      tZ ! RD RE]I4      t[ ! RF RG]I4      t\ ! RH RI]I4      t] ! RJ RK]I4      t^ ! RL RM]I4      t_R# )N    N)Decimal)TranslationOptions)forms)apps)settings)ImproperlyConfiguredValidationError)ContentFile)default_storage)call_command)CommandError)IntegrityError)	CharFieldCountFQValue)CastConcat)TestCaseTransactionTestCase)override_settings)get_languageoverride
trans_real)parameterized
translator)TranslationModelFormMultilingualManager)autodiscover)modelstranslation)auto_populate
build_langbuild_localized_fieldname	fallbacksc                   B   a a ] tR t^+t oRtV 3R ltV 3R ltRtVtV ;t	# )reload_override_settingszWContext manager that not only override settings, but also reload modeltranslation conf.c                X   < \         SV `  4        \        P                  ! \        4       R # N)super	__enter__	importlibreloadmt_settingsself	__class__s   &Q/var/www/idalgo/venv/lib/python3.14/site-packages/modeltranslation/tests/tests.pyr.   "reload_override_settings.__enter__.   s    %    c                \   < \         SV `  WV4       \        P                  ! \        4       R # r,   )r-   __exit__r/   r0   r1   )r3   exc_type	exc_value	tracebackr4   s   &&&&r5   r9   !reload_override_settings.__exit__2   s     i8%r7    )
__name__
__module____qualname____firstlineno____doc__r.   r9   __static_attributes____classdictcell____classcell__r4   __classdict__s   @@r5   r*   r*   +   s     a&& &r7   r*   c                  8    \        \        P                  3R 7      # )#MODELTRANSLATION_FALLBACK_LANGUAGES)r*   r1   DEFAULT_LANGUAGEr>   r7   r5   default_fallbackrM   8   s    #-8-I-I,K r7   c                    \        4       pV P                  P                  4       pV F  pVP                  '       d#   VP                  '       d   VP
                  f   K7  VP                  V 8w  d<   VP                  P                  P                  V P                  P                  8X  d   K  VP                  VP                  4       \        VR4      '       g   K  VP                  VP                  4       K  	  V# )Nattname)set_meta
get_fieldsis_relationmany_to_onerelated_modelmodelconcrete_modeladdnamehasattrrO   )rV   namesfieldsfields   &   r5   get_field_namesr^   >   s    EE[[##%F!2!2!2u7J7J7R;;%EKK$5$5$D$DHbHb$b		%**5)$$IIemm$  Lr7   c                    \        V 4      P                  P                  R4      P                  V P                  R7      P
                  ! VP                  4       !  P                  4       pW!8X  g   Q hR# )z)
Compares field values stored in the db.
FpkN)typeobjectsrewritefilterra   valueskeysfirst)instanceexpected_fieldsactuals   &, r5   assert_db_recordrl   M   sa    
 	X		8;;			 !%%'	) 
  $$$r7   c                   n   a a ] tR t^[t o]t]V 3R l4       t]V 3R l4       tV 3R lt	V 3R lt
RtVtV ;t# )#ModeltranslationTransactionTestBasec                j   < \         SV `  4        ^ RIHp ^ RIHp V! VP
                  4      V n        R# )z+Save registry (and restore it after tests).)copyr   N)r-   
setUpClassrp   modeltranslation.translatorr   	_registryregistry_cpy)clsrp   r   r4   s   &  r5   rq   .ModeltranslationTransactionTestBase.setUpClass^   s)     	:
 4 45r7   c                R   < ^ RI Hp V P                  Vn        \        SV `  4        R# )r   r   N)rr   r   rt   rs   r-   tearDownClass)ru   r   r4   s   & r5   rx   1ModeltranslationTransactionTestBase.tearDownClassh   s    :"//
r7   c                n   < \         SV `  4        \        4       V n        \        P
                  ! R 4       R# )deN)r-   setUpr   _old_languager   activater2   s   &r5   r|   )ModeltranslationTransactionTestBase.setUpo   s$    )^D!r7   c                d   < \         SV `  4        \        P                  ! V P                  4       R # r,   )r-   tearDownr   r~   r}   r2   s   &r5   r   ,ModeltranslationTransactionTestBase.tearDownt   s"    D../r7   )r}   )r?   r@   rA   rB   django_appscacheclassmethodrq   rx   r|   r   rD   rE   rF   rG   s   @@r5   rn   rn   [   s?     E6 6    "
0 0r7   rn   c                       ] tR t^ytRtR# )ModeltranslationTestBaser>   N)r?   r@   rA   rB   rD   r>   r7   r5   r   r   y   s    r7   r   c                      a a ] tR t^}t oV 3R ltV 3R ltV 3R ltR tRR ltR t	]
! RR7      R 4       t]
! RR7      R	 4       tR
tVtV ;t# )TestAutodiscoverc                   < \         SV `  4        \        P                  R,           p\	        VR7      V n        V P
                  P                  4        R# )modeltranslation.tests.test_app)INSTALLED_APPSN)r   )r-   
_pre_setupdjango_settingsr   r   _TestAutodiscover__overrideenable)r3   new_installed_appsr4   s   & r5   r   TestAutodiscover._pre_setup   s=    ,;;>bb+;MN r7   c                   < V P                   P                  4        \        P                  ! \        4       \
        SV `  4        R # r,   )r   disabler/   r0   r1   r-   _post_teardownr2   s   &r5   r   TestAutodiscover._post_teardown   s,    !% r7   c                
  < V P                   P                  R  ^RIHp \        P
                  ! V4       \        P                  P                  RR4       \        P                  P                  RR4       \        SV `)  4        R# )test_app)r#   +modeltranslation.tests.test_app.translationN*modeltranslation.tests.project_translation)r   
all_modelsr   r#   r/   r0   sysmodulespopr-   r   )r3   r#   r4   s   & r5   r   TestAutodiscover.tearDown   sW    JJ!!*-$ EtLDdKr7   c                    ^RI Hp \        V! 4       4      pRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9  g   Q hRV9  g   Q hR# )	   )Newstitletitle_entitle_devisits	visits_en	visits_deN)test_app.modelsr   dir)r3   r   r\   s   &  r5   
check_newsTestAutodiscover.check_news   sd    )TV&   V###V###6!!!&(((&(((r7   c                    ^RI Hp \        V! 4       4      pRV9   g   Q hV'       d   RV9   g   Q hRV9   g   Q hR# RV9  g   Q hRV9  g   Q hR# )r   )OtherrY   name_enname_deN)r   r   r   )r3   presentr   r\   s   &&  r5   check_otherTestAutodiscover.check_other   sY    *UW&&&&&&F***F***r7   c                ^    \        4        V P                  4        V P                  RR7       R# )z4Check if translation is imported for installed apps.F)r   Nr"   r   r   r3   s   &r5   test_simpleTestAutodiscover.test_simple   s"    'r7   )"MODELTRANSLATION_TRANSLATION_FILESc                Z    \        4        V P                  4        V P                  4        R# )z=Check if translation is imported for global translation file.Nr   r   s   &r5   test_globalTestAutodiscover.test_global   s    
 	r7   c                :    \        4        V P                  4        R# )z7Check if there is no problem with duplicated filenames.N)r"   r   r   s   &r5   test_duplication!TestAutodiscover.test_duplication   s    
 	r7   )
__overrideT)r   )r   )r?   r@   rA   rB   r   r   r   r   r   r   r*   r   r   rD   rE   rF   rG   s   @@r5   r   r   }   s`     !!
		)
+( +Z +[ r7   r   c                     a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR t]P(                  ! RR/R.RRRRRR/3RR/R.RRRRRR/3RR/R.RRRRRR/3RR/R.RRRRRR/3RRRR/RR.RRRRRR/3RRRR/RR.RRRRRR/3RRRR/. RORRRRRR/3.4      R 4       t]P(                  ! RR/R.RRRRRR/3RR/R.RRRRRR/3RR/R.RRRRRR/3RR/R.RRRRRR/3RRRR/RR.RRRRRR/3RRRR/RR.RRRRRR/3RRRR/. RORRRRRR/3.4      R 4       tR tR tR tR tRtV tR# )ModeltranslationTestz1Basic tests for the modeltranslation application.c                ^   \         ;QJ d"    . R  \        P                   4       F  NK  	  5M! R  \        P                   4       4      pV\        \        P                  4      8X  g   Q h^\        V4      8X  g   Q hRV9   g   Q hRV9   g   Q h\        P                  '       g   Q h\        \        P                  P                  4       4      \        8X  g   Q h\        P                  ! \        P                  4      ;_uu_ 4        \        P                  P                  \        P                  4       RRR4       \        P                  ! \        P                  4      ;_uu_ 4        \        P                  P                  \        P                   4       RRR4       \        P                  ! \        P"                  4      ;_uu_ 4        \        P                  P%                  \        P                  4       RRR4       \        P                  ! \        P"                  4      ;_uu_ 4        \        P                  P                  \        P&                  4       RRR4       R#   + '       g   i     EL9; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)c              3   *   "   T F	  w  rVx  K  	  R # 5ir,   r>   ).0vallabels   &  r5   	<genexpr>9ModeltranslationTest.test_registration.<locals>.<genexpr>   s     F,Ejcc,Es   r{   enN)tupler   	LANGUAGESr1   AVAILABLE_LANGUAGESlenr   get_registered_modelsTEST_MODELSpytestraisesNotRegistered
unregisterr#   BasePageget_options_for_modelThirdPartyModelDescendantRegisteredregisterSlugged)r3   langss   & r5   test_registration&ModeltranslationTest.test_registration   s   FO,E,EFFO,E,EFFk==>>>>CJu}}u}}$$$$$ :((>>@A[PPP ]]:3344!!,,V__= 5 ]]:3344!!77&& 5 ]]:::;;!!**6??; < ]]:::;;!!,,V^^< <; 544 54 <; <;;s0   .I!%.I5.J).J!I2	5J	J	J,	c                >   \        \        P                  P                  4       4      p\        P                  ! \
        4      ;_uu_ 4        \        P                  P                  \        P                  RR7       RRR4       \        P                  ! \
        4      ;_uu_ 4        \        P                  P                  \        P                  RR7       RRR4       \        P                  ! \
        4      ;_uu_ 4        \        P                  P                  \        P                  RR7       RRR4       \        \        P                  P                  4       4      V8X  g   Q hR#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lf; i)r   )r\   Nr   )r   r   r   r   r   
ValueErrorr   r#   ConflictModelAbstractConflictModelBMultitableConflictModelB)r3   befores   & r5   !test_registration_field_conflicts6ModeltranslationTest.test_registration_field_conflicts   s   Z**@@BC ]]:&&!!**6+?+?
*S ']]:&&!!**--! +  '
 ]]:&&!!**//! +  ' :((>>@AVKKK '&&&
 '&s$   
0E&$0E9>0F&E6	9F		F	c                ,   \        \        P                  ! 4       4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hR	V9   g   Q hR
V9   g   Q hRV9   g   Q hRV9   g   Q hR# )idr   r   r   texttext_detext_enurlurl_deurl_enemailemail_deemail_enN)r   r#   	TestModelr3   field_namess   & r5   test_fields ModeltranslationTest.test_fields   s    &**,-{"""+%%%[((([((($$$K'''K'''###;&&&;&&&+%%%[((([(((r7   c                ~    \         P                  P                  P                  R 4      P                  pVR8X  g   Q hR# )r   z
title [de]N)r#   r   rQ   	get_fieldverbose_name)r3   r   s   & r5   test_verbose_name&ModeltranslationTest.test_verbose_name  s2    ''--77
CPP|+++r7   c                    R  p\        VR7      ;_uu_ 4        \        P                  P                  P	                  R4      P
                  pVR8X  g   Q h RRR4       R#   + '       g   i     R# ; i)c                     R V RV  2# )(z) r>   )r   languages   &&r5   get_verbose_nameGModeltranslationTest.test_custom_verbose_name.<locals>.get_verbose_name  s    xj<.11r7   )-MODELTRANSLATION_BUILD_LOCALIZED_VERBOSE_NAMEr   z
(de) titleN)r*   r#   r   rQ   r   r   )r3   r  r   s   &  r5   test_custom_verbose_name-ModeltranslationTest.test_custom_verbose_name  s`    	2 &:J
 
 "++11;;JGTTL<///	
 
 
 
s   =A  A1	c                    \        \        P                  P                  P                  \
        4      '       g   Q R 4       hR# )z2Descriptor accessed on class should return itself.N)
isinstancer#   r   r   rC   strr   s   &r5   test_descriptor_introspection2ModeltranslationTest.test_descriptor_introspection  s1    &**0088#>> 	
@	
>r7   c                   \         P                  P                  pVP                  R 4      pVP                  R4      pVP                  R4      pVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hW#8w  g   Q hW$8w  g   Q hW48w  g   Q h\        V4      \        V4      8w  g   Q h\        V4      \        V4      8w  g   Q h\        V4      \        V4      8w  g   Q h^\        W#V04      8X  g   Q hRVn        W$8w  g   Q hW48X  g   Q h\        V4      \        V4      8X  g   Q h^\        W#V04      8X  g   Q hRVn        R# )r   r   r   r   r{   N)r#   r   rQ   r   creation_counterhashr   r   )r3   optsorigr   r{   s   &    r5   test_fields_hashes'ModeltranslationTest.test_fields_hashes!  s5   %%~~g&^^J'^^J'$$(;(;;;;$$(;(;;;;zzzzxxDzT"X%%%DzT"X%%%Bx48###C2''''zzxxBx48###C2''''r7   c                B   \        4       R8X  g   Q hRpRp\        P                  ! VR7      pVP                  V8X  g   Q hVP                  e   Q hVP
                  V8X  g   Q h\        R4      ;_uu_ 4        \        P                  ! VR7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  e   Q h RRR4       \        P                  ! WR7      pVP                  V8X  g   Q h\        R4      ;_uu_ 4        VP                  V8X  g   Q h RRR4       RVn        VP                  R8X  g   Q hVP                  V8X  g   Q hVP
                  R8X  g   Q h\        R4      ;_uu_ 4        R	Vn        VP                  R	8X  g   Q hVP                  R	8X  g   Q hVP
                  R8X  g   Q h RRR4       VP                  R8X  g   Q h\        P                  ! RWR
7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  V8X  g   Q h\        P                  ! VR7      pVP                  R8X  g   Q hVP                  V8X  g   Q hVP
                  e   Q hWn        VP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  V8X  g   Q hVP                  4        \        P                  P                  P                  VR7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  V8X  g   Q h\        WQWR
7       ^\        P                  P                  P                  VR7      P                  4       8X  g   Q h\        R4      ;_uu_ 4        ^ \        P                  P                  P                  VR7      P                  4       8X  g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELF; i  + '       g   i     R# ; i)z7This test briefly shows main modeltranslation features.r{   title detitle enr   Nr   r   r   foobarr   r   r   r    )r   r#   r   r   r   r   r   saverc   getrl   re   count)r3   r   r   inst2inst1ns   &     r5   test_set_translation)ModeltranslationTest.test_set_translation:  sk   ~%%%   x0{{h&&&~~%%%~~))) d^^$$84E;;(***>>X--->>)))	    (F{{h&&&d^^;;(***  {{e###~~)))~~&&&d^^EK;;%'''>>U***>>U***	 
 {{e###   uxS{{h&&&~~)))~~)))   (3{{b   ~~)))~~%%%{{h&&&~~)))~~)))

 $$((x(8ww("""zzX%%%zzX%%%XQ F$$,,33(3CIIKKKKd^^((0077h7GMMOOOO ^k ^^ ^^ ^^H ^^s3   6AO
O%:AO9A PO"	%O6	9P
	P	c           	        \        4       R 8X  g   Q hRp\        P                  ! VR7      pVP                  V8X  g   Q hVP                  e   Q hVP
                  V8X  g   Q h\        R4      ;_uu_ 4        VP                  R8X  g   Q hVP                  e   Q h RRR4       \        4       ;_uu_ 4        VP                  V8X  g   Q h\        R4      ;_uu_ 4        VP                  V8X  g   Q hVP                  e   Q h RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     L-; i  + '       g   i     R# ; i)r{   r  r   Nr   r  )r   r#   r   r   r   r   r   rM   )r3   r   r  s   &  r5   test_fallback_language+ModeltranslationTest.test_fallback_language  s   ~%%%   x0{{h&&&~~%%%~~))) d^^;;"$$$>>))) 
 ;;(*** ${{h...~~---     ^    s0   4$D3'D7$D$	?D7D!	$D4/D77E	c                $   Rp\         P                  ! VR7      pVP                  4        \         P                  P                  P	                  VR7      pVP
                  V8X  g   Q h\        P                  ! R4       VP
                  R8X  g   Q hR# )z\
If ``fallback_values`` is set to string, all untranslated fields would
return this string.
r  r   r   fallbackN)r#   FallbackModelr  rc   r  r   r   r~   )r3   	title1_der   s   &  r5   test_fallback_values_1+ModeltranslationTest.test_fallback_values_1  ss    
 	  y1	  ((,,9,=ww)###D!ww*$$$r7   c                f   RpRp\         P                  ! WR7      pVP                  4        \         P                  P                  P	                  VR7      p\
        P                  ! R4       VP                  R8X  g   Q hVP                  \        P                  P                  R,          8X  g   Q hR# )	z
If ``fallback_values`` is set to ``dict``, all untranslated fields in
``dict`` would return this mapped value. Fields not in ``dict`` would
return default translation.
r  ztext in german)r   r   r   r   r  r   N)r#   FallbackModel2r  rc   r  r   r~   r   r   r$    FallbackModel2TranslationOptionsfallback_values)r3   r)  text1_der   s   &   r5   test_fallback_values_2+ModeltranslationTest.test_fallback_values_2  s     	#!!	A	!!))--I->D!ww"}}vvEEUUV\]]]]r7   c                T    \        W4      \        W#4      8X  g   Q R V,          4       hR# )zConstructor diff on field %s.N)getattr)r3   xyr]   s   &&&&r5   _compare_instances'ModeltranslationTest._compare_instances  s&    q GA$55^7VY^7^^5r7   c                   \         P                  ! R/ VB p\         P                  P                  P                  ! R/ VB p\        P                  P                  \         P                  4      pVP                  P                  4        F<  w  rVV P                  W#V4       V F  pV P                  W#VP                  4       K!  	  K>  	  R # )Nr>   )
r#   r   rc   creater   r   
all_fieldsitemsr7  rY   )r3   keywordsr   mr  
base_fieldtrans_fields
lang_fields   &&      r5   _test_constructor&ModeltranslationTest._test_constructor  s    (x($$++7h7$$::6;K;KL(,(=(=(?$J##A*5*
''joo> + )@r7   c           	         \        RRRRRRR7      pV P                  V4       \        RRR	RRRR
7      pV P                  V4       R# )zJ
Ensure that model constructor behaves exactly the same as objects.create
r   zq@q.qqzd@d.ddze@e.eeztext enztext de)r   r   r   r   r   r   http://www.google.comztext def)r   r   r   r   r   r   N)dictrB  )r3   r=  s   & r5   test_constructor%ModeltranslationTest.test_constructor  s\    
 

 	x(*
 	x(r7   r   DEr   r   NoldENc                    \         P                  P                  P                  R R7      pVP	                  4        F  w  rV\        WEV4       K  	  VP                  VR7       \        V3/ VB  R# )rJ  r   update_fieldsN)r#   r   rc   r:  r<  setattrr  rl   r3   field_valuesrN  expected_db_valuesobjr]   values   &&&&   r5   $test_save_original_translation_field9ModeltranslationTest.test_save_original_translation_field  s`    8 &&--E-:(..0LEC& 1 	}-3 23r7   c                @   \        R 4      ;_uu_ 4        \        P                  P                  P	                  RR7      pVP                  4        F  w  rV\        WEV4       K  	  VP                  VR7       \        V3/ VB  RRR4       R#   + '       g   i     R# ; i)r   rJ  r   rM  N)	r   r#   r   rc   r:  r<  rO  r  rl   rP  s   &&&&   r5   "test_save_active_translation_field7ModeltranslationTest.test_save_active_translation_field  su    8 d^^""**111>C , 2 2 4E* !5 HH=H1S7$67 ^^^s   A.BB	c                    \         P                  P                  P                  R R7      pRVn        VP                  R.R7       \        VR R RR7       VP                  R.R7       \        VR R RR7       R# )rJ  r   zen valuer   rM  Nr  r   )r#   r   rc   r:  r   r  rl   )r3   rS  s   & r5   (test_save_non_original_translation_field=ModeltranslationTest.test_save_non_original_translation_field,  sd    &&--E-:!y)EEDI
|,EEJOr7   c           	        \         P                  P                  P                  RRR7      p\         P                  P                  P	                  VP
                  RR/R7      w  r#VRJ g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q h\        VRRRR7       \         P                  P                  P	                  VP
                  R	R
/R7      w  r#VRJ g   Q hVP                  R
8X  g   Q hVP                  R8X  g   Q hVP                  R
8X  g   Q h\        VRR
R7       \        R4      ;_uu_ 4        \         P                  P                  P	                  VP
                  RR/R7      w  r#VRJ g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R
8X  g   Q h\        VRRR
R7       RRR4       R#   + '       g   i     R# ; i)z.
Test that update_or_create works as expected
old deold enr  r   zNEW DE TITLEra   defaultsFr   r   r   r   zNEW DE TITLE 2r   r   r   zNEW EN TITLEN)r#   r   rc   r:  update_or_createra   r   r   r   rl   r   )r3   rS  ri   createds   &   r5   test_update_or_create_existing3ModeltranslationTest.test_update_or_create_existing6  s    &&--x(-S",,44EEvv. 9 F 
 %~~///  H,,,  N222 #		
 #,,44EEvv-= > F 
 %~~!1111  H,,,  $4444%		
 d^^ & 0 0 8 8 I I66Wn$= !J !H e###>>^333$$666$$(8888$')	 ^^^s   B
G$$G5	c                   \         P                  P                  P                  ^RRRR/R7      w  rVRJ g   Q hVP                  R8X  g   Q hVP
                  R8X  g   Q hVP                  R8X  g   Q h\        VRRRR7       R# )	r   r   r^  r   r_  r`  Trb  N)r#   r   rc   rd  r   r   r   rl   )r3   ri   re  s   &  r5   test_update_or_create_new.ModeltranslationTest.test_update_or_create_newj  s    ",,44EE (JA F 

 $~~)))  H,,,  H,,,		
r7   c                   \         P                  ! 4       pVP                  R 8X  g   Q hVP                  R8X  g   Q hVP                  R 8X  g   Q h\         P                  P
                  P                  4       pVP                  R 8X  g   Q hVP                  R8X  g   Q hVP                  R 8X  g   Q h\        VR RR R7       R# )Passwortpassword)dynamic_defaultdynamic_default_endynamic_default_deN)r#   r   rn  ro  rp  rc   r:  rl   )r3   raw_instanceri   s   &  r5   /test_callable_field_default_uses_field_languageDModeltranslationTest.test_callable_field_default_uses_field_language{  s     '')++z999..*<<<..*<<< ##++224'':555**j888**j888&))		
r7   r>   r  )r?   r@   rA   rB   rC   r   r   r   r   r  r	  r  r!  r$  r*  r1  r7  rB  rG  r   expandrU  rX  r[  rf  ri  rr  rD   rE   rH   s   @r5   r   r      s    ;=:L() ,0
2DPL.6%^_?)@ t_wi'4T:W[)\]$'WdJjZ^,_`t_zlWeZz[_,`aT"%T:tD $
D1*%$
D*dC T:t4Z(%T:tD T:t41$
D*dC'	
64764 t_wi'4T:W[)\]$'WdJjZ^,_`t_zlWeZz[_,`aT"%T:tD $
D1*%$
D*dC T:t4Z(%T:tD T:t41$
D*dC'	
68768P2h
"
 
r7   r   c                   &   a  ] tR tRt o R tRtV tR# )ModeltranslationTransactionTesti  c                   ^ RI Hp \        P                  P                  P                  4        \        P                  P                  P                  4        \        P                  P                  P                  RR7       \        P                  P                  P                  RR7       \        P                  P                  P                  RR7       \        P                  ! \        4      ;_uu_ 4        \        P                  P                  P                  RR7       RRR4       VP                  4        \        P                  P                  P                  RR7       \        P                  ! \        4      ;_uu_ 4        \        P                  P                  P                  RR7       RRR4       VP                  4        R#   + '       g   i     L; i  + '       g   i     L5; i)r   )transactionNr   r  r  )
	django.dbry  r#   UniqueNullableModelrc   r:  r   r   r   rollback)r3   ry  s   & r5   test_unique_nullable_field:ModeltranslationTransactionTest.test_unique_nullable_field  s5   )""**113""**113""**111=""**111=""**111;]]>**&&..55B5? +""**111>]]>**&&..55E5B + +* +*s   7+G+GG	G.	r>   N)r?   r@   rA   rB   r}  rD   rE   ru  s   @r5   rw  rw    s      r7   rw  c                   J   a  ] tR tRt o RRRR/tR tR tR tR tR t	R	t
V tR
# )FallbackTestsi  defaultr{   c           	        \         P                  R R/8X  g   Q h\        RR7      ;_uu_ 4        \         P                  R R/8X  g   Q h RRR4       \        V P                  R7      ;_uu_ 4        \         P                  V P                  8X  g   Q h RRR4       R RRR/p\	        VR7      ;_uu_ 4        \
        P                  ! \        4      ;_uu_ 4        \        P                  ! \         4       RRR4       RRR4       \        P                  ! \         4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     LZ; i  + '       g   i     Le; i)r  rJ   Nfrr>   r{   r   )
r1   FALLBACK_LANGUAGESr*   test_fallbackr   r   r   r   r/   r0   )r3   configs   & r5   test_settingsFallbackTests.test_settings  s    --)R@@@%'RR11i5IIII S &$J\J\]]11T5G5GGGG ^ Rw/6JJ344  - 5 K 	% SR ^]
 54 KJs;   D/"D14#EE	2ED.	1E	EEE'	c                   ^ RI Hp \        V P                  R7      ;_uu_ 4        RV! R4      8X  g   Q hRV! R4      8X  g   Q hRR	/pR
V! RV4      8X  g   Q hRV! RV4      8X  g   Q hRR/pRV! RV4      8X  g   Q hRV! RV4      8X  g   Q hRRRR	/pRV! RV4      8X  g   Q hRV! RV4      8X  g   Q hRV! RV4      8w  g   Q hRR	RR	/pR
V! RV4      8X  g   Q hRV! RV4      8X  g   Q h RRR4       R#   + '       g   i     R# ; i)r   )resolution_orderrJ   r   r{   r  N)r   r{   )r{   r   r>   r  r  )modeltranslation.utilsr  r*   r  )r3   r  r  s   &  r5   test_resolution_order#FallbackTests.test_resolution_order  sG   ;%$J\J\]]#3D#9999#3D#9999_F.tV<<<<#3D&#AAAAL)F#3D&#AAAA#3D&#AAAA
  tR8F#3D&#AAAA#3D&#AAAA.tV<<<<  T2.F.tV<<<<.tV<<<<1 ^]]]s   CC33D	c                   \        V P                  R 7      ;_uu_ 4        RpRp\        P                  ! VR7      pVP                  V8X  g   Q hVP
                  e   Q hVP                  V8X  g   Q h\        P                  ! R4       VP                  V8X  g   Q h\        P                  ! VR7      pVP                  e   Q hVP
                  V8X  g   Q hVP                  V8X  g   Q h\        P                  ! R4       VP                  V8X  g   Q hRVn        VP                  R8X  g   Q h RRR4       R#   + '       g   i     R# ; i)rJ   r  r  r   Nr   r{   r  )	r*   r  r#   r   r   r   r   r   r~   )r3   r   r   r   s   &   r5   test_fallback_languages%FallbackTests.test_fallback_languages  s   %$J\J\]]!H!H  x0A::)))::%%%77h&&&%77h&&&  x0A::%%%::)))77h&&&%77h&&&AJ77b= =% ^]]]s   DD55E	c                J   \        V P                  R 7      ;_uu_ 4        \        P                  ! RR7      p\	        R4      ;_uu_ 4        VP
                  R8X  g   Q hVP                  e   Q hVP                  R8X  g   Q h\        R4      ;_uu_ 4        VP                  R8X  g   Q h RRR4       RRR4       \	        R4      ;_uu_ 4        VP
                  R8X  g   Q hVP                  e   Q hVP                  R8X  g   Q h\        R4      ;_uu_ 4        VP                  R8X  g   Q h RRR4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     LH; i  + '       g   i     LS; i  + '       g   i     R# ; i)rJ   r  r   TNr   Fr  )	r*   r  r#   r   r(   r   r   r   r   r3   r>  s   & r5   test_fallbacks_toggle#FallbackTests.test_fallbacks_toggle  s    %$J\J\]]  u-A4zzU***zz)))ww%'''d^^77e+++ $	 ! 5!!zzU***zz)))ww%'''d^^77b=(= $	 " ^] $^	 ! $^	 "! ^]]sm   +F
A
E	E)E	1FA
E>	E++E>	3FEE	E(#F+E;6E>	>F	FF"	c           	        \        V P                  R7      ;_uu_ 4        \        P                  ! RRR7      p\	        R4      ;_uu_ 4        VP
                  R8X  g   Q h RRR4       \	        R4      ;_uu_ 4        VP
                  R8X  g   Q h RRR4       \        P                  ! RRR7      p\	        R4      ;_uu_ 4        VP                  R8X  g   Q h RRR4       \	        R4      ;_uu_ 4        VP                  R8X  g   Q h RRR4       \        P                  ! RRR7      p\	        R4      ;_uu_ 4        VP                  R8X  g   Q h RRR4       \	        R4      ;_uu_ 4        VP                  R8X  g   Q h RRR4       \        P                  ! RRR7      p\	        R4      ;_uu_ 4        VP
                  R8X  g   Q h RRR4       \	        R4      ;_uu_ 4        VP
                  R8X  g   Q h RRR4       \        P                  ! RR	R7      p\	        R4      ;_uu_ 4        VP
                  R8X  g   Q h RRR4       \	        R4      ;_uu_ 4        VP
                  R8X  g   Q h RRR4       RRR4       R#   + '       g   i     EL+; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELo; i  + '       g   i     EL;; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)
z
Checks if a sensible value is considered undefined and triggers
fallbacks. Tests if the value can be overridden as documented.
rJ   rT  r  rc  r   Nr{   )description_endescription_dezno title)r*   r  r#   r(  r   r   descriptionr-  r  s   & r5   test_fallback_undefined%FallbackTests.test_fallback_undefined  s   
 &$J\J\]]$$gCA$ww')))  $ww')))   $$GBOA$}}///  $}}***   $$GDQA$}}///  $}}///   %%wDA$ww')))  $ww"}$}  %%wLA$ww')))  $ww')))  ? ^]  
  
  
    ? ^]]s   ,MJ	 M;J	3MJ*	M3J>	3M;K	M+K&	 3M3K:	M#L	83M+L"	 ML5	0MJ	MJ'!	M*J;5	M>K		MK#	M&K71	M:L	ML	M"L2-M5M MM	r>   Nr  r  )r?   r@   rA   rB   r  r  r  r  r  r  rD   rE   ru  s   @r5   r  r    s1     w7M& =:!*) %* %*r7   r  c                   P   a a ] tR tRt oV 3R ltR tR tR tR tR t	Rt
VtV ;t# )	FileFieldsTesti%  c                   < \         P                  ! R 4      '       dR   \         P                  ! R 4      p\        P                  P	                  V4      '       d   \
        P                  ! V4       \        SV `!  4        R# )modeltranslation_testsN)	r   existspathosisdirshutilrmtreer-   r   )r3   	tests_dirr4   s   & r5   r   FileFieldsTest.tearDown&  sR    !!":;; (,,-EFIww}}Y''i(r7   c                    \        \        P                  ! 4       4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hR	V9   g   Q hR
# )r   r   r   r   filefile_defile_enimageimage_deimage_enN)r   r#   FileFieldsModelr   s   & r5   test_translated_models%FileFieldsTest.test_translated_models/  s    &0023{"""+%%%[((([((($$$K'''K'''+%%%[((([(((r7   c                d     \        W!R 7      #   \         d    \        T4      pYn        Tu # i ; i)rY   )r
   	TypeErrorrY   )r3   rY   contentr  s   &&& r5   _file_factoryFileFieldsTest._file_factory<  s5    	w22 	w'DIK	s    //c                   \         P                  ! R R7      p\        P                  ! R4       RVn        RVn        VP
                  P                  R\        R4      4       V P                  RR4      Vn	        \        P                  ! R	4       R
Vn        RVn        VP
                  P                  R\        R4      4       V P                  RR4      Vn	        VP                  4        \        P                  ! R4       VP                  R8X  g   Q hVP
                  P                  P                  R4      ^ 8  g   Q hVP
                  P                  4       R8X  g   Q hVP                  P                  P                  R4      ^ 8  g   Q hVP                  P                  4       R8X  g   Q h\        P                  ! VP
                  P                  4      '       g   Q hVP
                  P                   ^ 8  g   Q h\        P                  ! VP                  P                  4      '       g   Q hVP                  P                   ^ 8  g   Q h\        P                  ! R	4       VP                  R
8X  g   Q hVP
                  P                  P                  R4      ^ 8  g   Q hVP
                  P                  4       R8X  g   Q hVP                  P                  P                  R4      ^ 8  g   Q hVP                  P                  4       R8X  g   Q hVP"                  P%                  4        VP&                  P%                  4        VP(                  P%                  4        VP*                  P%                  4        R# )	Testtitler   r   r   a_enb_enzfile in englishzi_en.jpgzimage in englishr{   r   a_deb_dezfile in germanzi_de.jpgzimage in germans   file in englishi_ens   image in englishs   file in germani_des   image in germanN)r#   r  r   r~   r   r  r  r
   r  r  rY   r  readr   r  r  sizer  deleter  r  r  r3   insts   & r5   test_translated_models_instance.FileFieldsTest.test_translated_models_instanceD  s   %%K8D!
			v{+<=>''
4FG
D!
			v{+;<=''
4EF
		D!zzZ'''yy~~##F+a///yy~~#5555zz$$V,q000zz $7777 %%diinn5555yy~~!!!%%djjoo6666zz"""D!zzZ'''yy~~##F+a///yy~~#4444zz$$V,q000zz $6666r7   c                   ^ RI Hp \        P                  ! 4       p\	        VP
                  V4      '       g   Q h\	        VP                  V4      '       g   Q hVP                  4        \        P                  P                  P                  4       ^ ,          p\	        VP
                  V4      '       g   Q h\	        VP                  V4      '       g   Q hR# )r   	FieldFileN)
django.db.models.fields.filesr  r#   r  r  r  file2r  rc   allr3   r  r  s   &  r5   test_empty_fieldFileFieldsTest.test_empty_fieldn  s    ;%%'$))Y////$**i0000		%%--113A6$))Y////$**i0000r7   c                P   ^ RI Hp \        RR7      ;_uu_ 4        \        4       R8X  g   Q h\        P
                  ! 4       pRVn        RVn        RVn        RVn	        \        VP                  V4      '       g   Q h\        VP                  V4      '       g   Q hVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q hVP                  4        \        P
                  P                  P!                  4       ^ ,          p\        VP                  V4      '       g   Q h\        VP                  V4      '       g   Q hVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q h RRR4       R#   + '       g   i     R# ; i)	r   r  rJ   r{   r  r  r  Nr  )r  r  r*   r   r#   r  r  r  file2_defile2_enr  r  r  rY   r  rc   r  r  s   &  r5   r  FileFieldsTest.test_fallbacky  s6   ;%'RR>T)))))+DDL DLDM!DMdii3333djj)444499>>U***::??e+++IIK))11557:Ddii3333djj)444499>>U***::??e+++! SRRRs   E.FF%	r>   )r?   r@   rA   rB   r   r  r  r  r  r  rD   rE   rF   rG   s   @@r5   r  r  %  s)     )(T	1, ,r7   r  c                   l   a a ] tR tRt o]V 3R l4       tR tR tR tR t	R t
R tR	 tR
 tRtVtV ;t# )ForeignKeyFieldsTesti  c                N   < \         SV `  4        \        P                  V n        R # r,   )r-   rq   r#   ForeignKeyModelrV   ru   r4   s   &r5   rq   ForeignKeyFieldsTest.setUpClass  s     	**	r7   c                    \        V P                  4       4      pR V9   g   Q hR F  pW!9   g   Q hRV,          V9   d   K  Q h	  R# )r   z%s_idN)testtest_detest_enoptionaloptional_enoptional_der   rV   r3   r   fs   &  r5   r  +ForeignKeyFieldsTest.test_translated_models  sI    $**,'{"""YA###Q;+--- Zr7   c                ^   V P                   P                  pVP                  R 4      P                  4       w  r#VR8X  g   Q hW#8X  g   Q hVP                  R4      P                  4       w  r#VR8X  g   Q hW#8X  g   Q hVP                  R4      P                  4       w  r#VR8X  g   Q hW#8X  g   Q hR# )r  test_idr  
test_en_idr  
test_de_idN)rV   rQ   r   get_attname_column)r3   metarO   cols   &   r5   test_db_column_names)ForeignKeyFieldsTest.test_db_column_names  s    zz ~~f-@@B)###~~~~i0CCE,&&&~~~~i0CCE,&&&~~r7   c                   \         P                  ! R RR7      pVP                  4        \         P                  ! RRR7      pVP                  4        V P                  4       p\        P
                  ! R4       Wn        RVn        \        P
                  ! R4       VP                  Vn	        VP                  4        \        P
                  ! R4       VP                  VP                  8X  g   Q hVP                  P                  R8X  g   Q hVP                  VP                  8X  g   Q hVP                  P                  R8X  g   Q hVP                  e   Q h\        P
                  ! R4       \        4       ;_uu_ 4        VP                  VP                  8X  g   Q hVP                  P                  VP                  8X  g   Q hVP                  P                  R 8X  g   Q h RRR4       VP                  VP                  8X  g   Q hVP                  P                  R8X  g   Q hVP                  VP                  8X  g   Q hVP                   P                  R8X  g   Q hW#n        VP                  4        \        P
                  ! R4       VP                  V8X  g   Q h\        P
                  ! R4       VP                  V8X  g   Q hV P                  P$                  p\        P
                  ! R4       VP'                  VR7      P)                  4       ^8X  g   Q hVP'                  VR	7      P)                  4       ^ 8X  g   Q hVP'                  VR
7      P)                  4       ^8X  g   Q hVP'                  VR7      P)                  4       ^ 8X  g   Q hVP'                  VR	7      P)                  4       ^8X  g   Q hVP'                  VR
7      P)                  4       ^ 8X  g   Q hVP'                  RR7      P)                  4       ^8X  g   Q hVP'                  R R7      P)                  4       ^ 8X  g   Q hVP'                  R R7      P)                  4       ^8X  g   Q h\        P
                  ! R4       VP'                  VR7      P)                  4       ^ 8X  g   Q hVP'                  VR	7      P)                  4       ^ 8X  g   Q hVP'                  VR
7      P)                  4       ^8X  g   Q hVP'                  VR7      P)                  4       ^8X  g   Q hVP'                  VR	7      P)                  4       ^8X  g   Q hVP'                  VR
7      P)                  4       ^ 8X  g   Q hVP'                  RR7      P)                  4       ^8X  g   Q hVP'                  RR7      P)                  4       ^ 8X  g   Q hVP'                  RR7      P)                  4       ^8X  g   Q hR#   + '       g   i     EL; i)	title1_enr)  rc  	title2_en	title2_der{   Nr   r  )r  )r  )test__title)test__title_en)test__title_de)r#   r   r  rV   r   r~   r  r  ra   optional_idr  r   r  r  rM   optional_en_idr  r  rc   re   r  )r3   	instance1	instance2r  managers   &    r5   r  4ForeignKeyFieldsTest.test_translated_models_instance  s   $$kKP	$$kKP	zz|D!	D!$<<		D!||y||+++yy+---),,...||!![000}}$$$ 	D!<<9<<///99<<9<<///99??k111   9<<///}}""k111""ill222%%444 !		D!yyI%%%D!yyI%%% **$$D!~~9~-335:::~~i~0668A===~~i~0668A===~~9~-335:::~~i~0668A===~~i~0668A===~~+~6<<>!CCC~~+~6<<>!CCC~~[~9??AQFFFD!~~9~-335:::~~i~0668A===~~i~0668A===~~9~-335:::~~i~0668A===~~i~0668A===~~+~6<<>!CCC~~+~6<<>!CCC~~[~9??AQFFFQ  s   =A"WW	c                B   \         P                  ! R RR7      pVP                  4        V P                  RRWR7      pVP                  4        V P                  RRVP                  R7      pVP                  4        V P                  RRVR7      pVP                  4        V P                  P
                  P                  VR7      pV P                  P
                  P                  VR	7      p\        \         P                  4      p\        \        \         P                  4      4      p0 RmV8:  g   Q h0 RmV8:  g   Q h0 RmV8:  g   Q h0 RmV8:  g   Q hW!P                  P                  4       9   g   Q hW1P                  P                  4       9   g   Q hWAP                  P                  4       9  g   Q hW!P                  P                  4       9   g   Q hWAP                  P                  4       9   g   Q hW1P                  P                  4       9  g   Q h\        P                  ! R
4       W1P                  P                  4       9   g   Q hWAP                  P                  4       9  g   Q h\        P                  ! R4       WAP                  P                  4       9   g   Q hW1P                  P                  4       9  g   Q hWaP                   P                  4       9   g   Q h\         P                  P
                  p	\        P                  ! R
4       V	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VP                  R7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^ 8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^ 8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  RR7      P'                  4       P%                  4       ^8X  g   Q hV	P#                  RR7      P'                  4       P%                  4       ^ 8X  g   Q hV	P#                  RR7      P'                  4       P%                  4       ^8X  g   Q h\        P                  ! R4       V	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VP                  R7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^ 8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  VR7      P%                  4       ^ 8X  g   Q hV	P#                  VR7      P%                  4       ^8X  g   Q hV	P#                  RR7      P'                  4       P%                  4       ^8X  g   Q hV	P#                  RR7      P'                  4       P%                  4       ^ 8X  g   Q hV	P#                  RR7      P'                  4       P%                  4       ^8X  g   Q h\        P                  ! R
4       \         P                  ! R RR7      p
V
P                  4        V
P                  P                  W234       V
P                  P                  WB34       VP(                  P                  V
P                  8X  g   Q hVP*                  V
P                  8X  g   Q hVP,                  V
8X  g   Q h\        V
P                  P                  4       4      \        V
P                  P                  4       4      8X  g   Q hW*P                  P                  4       9   g   Q hW:P                  P                  4       9   g   Q hWJP                  P                  4       9  g   Q h\        P                  ! R4       \        V
P                  P                  4       4      \        V
P                  P                  4       4      8X  g   Q hW*P                  P                  4       9   g   Q hWJP                  P                  4       9   g   Q hW:P                  P                  4       9  g   Q hR# )r   r   rc  
f_title_en
f_title_de)r   r   r  r  r   r   r  r   r   r  r  r  r{   r   test_fks)test_fks__idtest_fks_en)foreignkeymodel)foreignkeymodel_entest_fks__titletest_fks__title_entest_fks_de)foreignkeymodel_detest_fks__title_deN>   r  r  r  >   r	  r  r
  >   foreignkeymodel_setforeignkeymodel_set_deforeignkeymodel_set_en)r#   r   r  rV   ra   rc   r:  r^   rP   r   r  r  r  r   r~   r  r  re   r  distinctr  r  r  )r3   ri   fk_inst_both
fk_inst_de
fk_inst_enfk_option_defk_option_entestmodel_fieldstestmodel_methodsr  r  s   &          r5   test_reverse_relations+ForeignKeyFieldsTest.test_reverse_relations  s   ##Z*M zz!L( " 
 	ZZ!LX[[   

 	ZZV^Z_
zz))00X0Fzz))00X0F +6+;+;<F$4$4 569=MMMM9=NNNNNRbbbb
 	 	  3377999911557777!5!5!9!9!;;;; 3377999911557777!5!5!9!9!;;;; 	D!..224444!2!2!6!6!8888D!..224444!2!2!6!6!8888 ;;??AAAA ""**D!~~|~4::<AAA~~z~288:a???~~:==~9??AQFFF~~z~288:a???~~*~5;;=BBB~~l~;AACqHHH~~l~;AACqHHH~~~>DDF!KKK~~l~;DDFLLNRSSSS~~l~;DDFLLNRSSSS~~~>GGIOOQUVVVVD!~~|~4::<AAA~~z~288:a???~~:==~9??AQFFF~~z~288:a???~~*~5;;=BBB~~l~;AACqHHH~~l~;AACqHHH~~~>DDF!KKK~~l~;DDFLLNRSSSS~~l~;DDFLLNRSSSS~~~>GGIOOQUVVVV 	D!$$j:N	
9:!!:"<=  ##y||333##y||333##y0009((,,./3y7I7I7M7M7O3PPPP11557777//335555!3!3!7!7!9999D!9((,,./3y7I7I7M7M7O3PPPP11557777//335555!3!3!7!7!9999r7   c                   ^ RI Hp \        P                  ! RRR7      pVP	                  4        \        P                  P
                  P                  4       P                  4       '       d   Q h\        P                  P
                  P                  V8X  g   Q h\        P                  P                  P                  P                  \        8X  g   Q h\        P                  ! VRRR7      pVP	                  4        VP                  4        \        P                  P
                  P                  \        8X  g   Q h\        P                  P                  P                  P                  \        8X  g   Q hVP                  V8X  g   Q hR# )	z
Make sure base_manager does not get same queryset filter as TestModel in reverse lookup
https://docs.djangoproject.com/en/3.0/topics/db/managers/#base-managers
)FilteredManagerr   r   rc  r  r  )r  r   r   N)modeltranslation.tests.modelsr"  r#   FilteredTestModelr  rc   r  r  r4   rQ   base_managerr!   ForeignKeyFilteredModelrefresh_from_dbr  )r3   r"  ri   fk_insts   &   r5   2test_reverse_lookup_with_filtered_queryset_managerGForeignKeyFieldsTest.test_reverse_lookup_with_filtered_queryset_managerX  s   
 	B++Z*U++33779@@BBBB''//99_LLL''--::DDH[[[[ 00L<
 	!--55??CVVVV--33@@JJNaaaa||x'''r7   c                
   \         P                  P                  P                  R R7      p\         P                  P                  P                  RR7      pV P                  P                  P                  RRWR7      pV P                  P                  P                  VR7      pV P                  P                  P                  VR7      pV P                  P                  p\
        P                  ! R4       VP                  VR	7      P                  4       ^8X  g   Q hVP                  VR	7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  R R
7      P                  4       ^8X  g   Q hVP                  RR
7      P                  4       ^ 8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q h\
        P                  ! R4       VP                  VR	7      P                  4       ^8X  g   Q hVP                  VR	7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  RR
7      P                  4       ^8X  g   Q hVP                  R R
7      P                  4       ^ 8X  g   Q hVP                  R R7      P                  4       ^8X  g   Q h\         P                  P                  p\
        P                  ! R4       VP                  VR7      P                  4       ^8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  VR7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^ 8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q h\
        P                  ! R4       VP                  VR7      P                  4       ^8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  VR7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^ 8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hR# )r   r   r   r  r  )r   r   non_denon_enr,  r-  r{   non
non__titlenon_en__titler   non_de__titler  r  r  r  r  r  N	r#   NonTranslatedrc   r:  rV   r   r~   re   r  )r3   r,  r-  r  r  r  r  s   &      r5   test_non_translated_relation1ForeignKeyFieldsTest.test_non_translated_relationq  sr   %%--44:4F%%--44:4Fzz))00!L 1 
 ZZ''..f.=
ZZ''..f.=
 **$$D!~~&~)//1Q666~~&~)//1Q666~~V~,224999~~~4::<AAA~~~4::<AAA~~J~7==?1DDDD!~~&~)//1Q666~~&~)//1Q666~~V~,224999~~~4::<AAA~~~4::<AAA~~J~7==?1DDD &&..D!~~|~4::<AAA~~z~288:a???~~z~288:a???~~*~5;;=BBB~~l~;AACqHHH~~l~;AACqHHH~~~>DDF!KKKD!~~|~4::<AAA~~z~288:a???~~z~288:a???~~*~5;;=BBB~~l~;AACqHHH~~l~;AACqHHH~~~>DDF!KKKr7   c                    \         P                  P                  P                  R 4      pVP                  \        VP                  R4      8w  g   Q hR# )r  r   N)r#   r  rQ   r   rO   r'   rY   )r3   r]   s   & r5   test_indonesian$ForeignKeyFieldsTest.test_indonesian  s<    &&,,66v>}} 9%**d KKKKr7   c                    \        R 4      R 8X  g   Q h\        R4      R8X  g   Q h\        R4      R8X  g   Q h\        R4      R8X  g   Q hR# )r   en_enzen-enr   indN)r&   r   s   &r5   test_build_lang$ForeignKeyFieldsTest.test_build_lang  sN    $4''''"g---'"g---$5(((r7   r>   )r?   r@   rA   rB   r   rq   r  r  r  r  r)  r:  r=  rB  rD   rE   rF   rG   s   @@r5   r  r    sL     + +. AGFe:N(2,L\L) )r7   r  c                   T   a a ] tR tRt o]V 3R l4       tR tR tR tR t	Rt
VtV ;t# )ManyToManyFieldsTesti  c                N   < \         SV `  4        \        P                  V n        R # r,   )r-   rq   r#   ManyToManyFieldModelrV   r  s   &r5   rq   ManyToManyFieldsTest.setUpClass  s     	//	r7   c                l    \        V P                  4       4      pR V9   g   Q hR F  pW!9   d   K  Q h	  R# )r   N)r  r  r  self_call_1self_call_1_enself_call_1_der  r  s   &  r5   r  +ManyToManyFieldsTest.test_translated_models  s7    $**,'{"""bA### cr7   c                   V P                   P                  pVP                  R 4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R	8X  g   Q hVP                  R
4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R8X  g   Q hVP                  R4      pVP                  P                  P                  P
                  R8X  g   Q hR# )r  tests_manytomanyfieldmodel_testr  "tests_manytomanyfieldmodel_test_enr  "tests_manytomanyfieldmodel_test_derJ  &tests_manytomanyfieldmodel_self_call_1rK  )tests_manytomanyfieldmodel_self_call_1_enrL  )tests_manytomanyfieldmodel_self_call_1_dethrough_modeltests_customthroughmodelthrough_model_entests_customthroughmodel_enthrough_model_detests_customthroughmodel_deN)rV   rQ   r   remote_fieldthroughdb_table)r3   r  r]   s   &  r5   r  )ManyToManyFieldsTest.test_db_column_names  s   zz v&!!))//88<]]]]y)!!))//88<````y)!!))//88<````}-!!))//88<dddd/0&&,,559dd	
d /0&&,,559dd	
d /!!))//88<VVVV12!!))//88<YYYY12!!))//88<YYYYr7   c           	     |  a a \         P                  P                  P                  R  \	        ^
4       4       4       S P
                  P                  P                  V 3R l\	        ^
4       4       4       \         P                  P                  P                  R \	        ^
4       4       4       \         P                  P                  P                  4       pTP                  \	        ^4       Uu. uF  pRV,          NK  	  upR7      pTP                  \	        ^^
4       Uu. uF  pRV,          NK  	  upR7      p\         P                  P                  P                  4       pS P
                  P                  P                  4       pTP                  \	        ^4       Uu. uF  pRV,          NK  	  upR7      pTP                  \	        ^^
4       Uu. uF  pRV,          NK  	  upR7      pS P                  4       oSP                  4        \        P                  ! R4       SP                  P                  \        VP                  RRR7      4      4       SP                  P                   P                  P                  4       P#                  4       VP#                  4       8X  g   Q hSP$                  P                  V4       SP$                  P                   P                  P                  4       P#                  4       VP#                  4       8X  g   Q hSP&                  P                  V4       SP&                  P                  4       P#                  4       VP#                  4       8X  g   Q h\        P                  ! R	4       SP(                  P                   P                  P                  V3R
 l\+        VR,          4       4       4       SP(                  P                  4       P#                  4       ^8X  g   Q hSP,                  P                  V4       SP,                  P                   P                  P                  4       P#                  4       VP#                  4       8X  g   Q hSP.                  P                  V4       SP.                  P                  VP                  RRR7      R7      P#                  4       VP#                  4       8X  g   Q h\        P                  ! R4       SP                  P                   P                  P                  4       P#                  4       VP#                  4       8X  g   Q hSP$                  P                   P                  P                  4       P#                  4       VP#                  4       8X  g   Q hSP,                  P                   P                  P#                  4       ^ 8X  g   Q hSP.                  P#                  4       ^ 8X  g   Q hSP(                  \1        SR4      8X  g   Q h\        P                  ! R	4       \3        4       ;_uu_ 4        SP,                  P                   P                  P                  4       P#                  4       VP#                  4       8X  g   Q hSP(                  \1        SR4      8X  g   Q h RRR4       \        P                  ! R4       SP$                  P                   P                  P5                  4       p	V	P6                  RSP8                  ,          8X  g   Q hV	P;                  4       SP8                  ^,           8X  g   Q hS P
                  P                  p
\        P                  ! R4       V
P                  VR7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR7      P=                  4       P#                  4       ^ 8X  g   Q hV
P                  VR7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VP                  RRR7      R7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VP                  RRR7      R7      P#                  4       ^ 8X  g   Q hV
P                  VP                  RRR7      R7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR7      P#                  4       ^ 8X  g   Q hV
P                  VR7      P=                  4       P#                  4       ^8X  g   Q h\        P                  ! R	4       V
P                  VR7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR7      P#                  4       ^ 8X  g   Q hV
P                  VR7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR7      P#                  4       ^ 8X  g   Q hV
P                  VR 7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR!7      P=                  4       P#                  4       ^8X  g   Q hV
P                  VR"7      P#                  4       ^ 8X  g   Q hV
P                  VR#7      P=                  4       P#                  4       ^8X  g   Q hR# u upi u upi u upi u upi   + '       g   i     EL; i)$c              3   n   "   T F+  p\         P                  ! R V,          RV,          R7      x  K-  	  R# 5im2m_test_%s_enm2m_test_%s_derc  Nr#   r   r   is   & r5   r   GManyToManyFieldsTest.test_translated_models_instance.<locals>.<genexpr>  4      -
 &6&:EUXYEYZZ   35c              3   f   <"   T F&  pSP                  R V,          RV,          R7      x  K(  	  R# 5ira  rV   r   rf  r3   s   & r5   r   rg    5      '
 JJ 01 4?ORS?SJTT   .1c              3   ^   "   T F#  p\         P                  ! R V,          R7      x  K%  	  R# 5izm2m_test_%sr   Nr#   r9  re  s   & r5   r   rg    &      1
CLaF  }q'8999   +-rb  )title_en__inr{   ra   Tflatr   c              3      <"   T F_  w  rSP                   P                  R V^,           ,          RV^,           ,          \        SP                  4      VP                  R7      x  Ka  	  R# 5i)rb  rc  )r   r   rel_1_idrel_2_idN)trans_through_modelr\  intra   )r   rf  	tst_modelr  s   &  r5   r   rg    se       %@LA ((00-Q7-Q7 \&\\	 1   %@s   A'A*:N   N)pk__intrans_through_model_detrans_through_model_enNzCustomThroughModel_de_%s)test__in)test_en__in)test_de__inr   )through_model__title__in)through_model_en__title__in)through_model_de__title__in)self_call_2__in)self_call_2_en__in)self_call_2_de__in)trans_through_model__in)trans_through_model_de__in)trans_through_model_en__in)untrans__in)untrans_de__in)untrans_en__in)self_call_1__in)self_call_1_de__in)self_call_1_en__in)r#   r   rc   bulk_createrangerV   r9  r  re   r  r   r~   r  rP   listvalues_listr\  r  rU  self_call_2rz  	enumerateuntransrJ  r4  rM   rh   test_propertyra   test_methodr  )r3   testmodel_qsrf  testmodel_qs_1testmodel_qs_2untranslated_qsself_qs	self_qs_1	self_qs_2through_instr  r  s   f          @r5   r  4ManyToManyFieldsTest.test_translated_models_instance  s	     ,, -
2Y-
 	
 	

&& '
2Y'
 	
 	$$00 1
CH91
 	
 ''//335%,,Y^_`Ya:bYaTU;Ka;O;OYa:b,c%,,8=aE1*Q..E - 
 !..66::<**$$((*NNuUVx0Xx!1AA1E1Ex0XNY	NNuUVXZ|0\|!1AA1E1E|0\N]	zz|		D!		d>55d5FGHyy  ((,,.446.:N:N:PPPP~.!!))11557==?>CWCWCYYYYY'##%++-1BBBBD!  ((00<< %.l2.>$?
	
 ''++-335:::)||##++//1779_=R=R=TTTTY'##9+@+@D+@+Q#RXXZ !	
! 	D!yy  ((,,.446.:N:N:PPPP!!))11557==?>CWCWCYYYY||##++113q888%%'1,,,''749Q+RRRR 	D!<<''//335;;=AVAVAXXXX++wt=U/VVVV  
 	D!))1199??A))-G$''-QQQQ'')TWWq[888 **$$D!~~~~6??AGGIQNNN~~.~9BBDJJLPQQQQ~~.~9BBDJJLPQQQQ NNN4N4Nw]a4N4bNcXZUW	
 NN,:,F,FwUY,F,Z  eg	
 NN,:,F,FwUY,F,Z   XZUW	
 ~~i~8AACIIKqPPP~~~;AACqHHH~~~;DDFLLNRSSSSD!~~n~ENNPVVX\]]]]~~~HNNPTUUUU~~~HQQSYY[_````~~/~:CCEKKMQRRRR~~_~=CCEJJJ~~_~=FFHNNPTUUUU~~i~8AACIIKqPPP~~~;AACqHHH~~~;DDFLLNRSSSSY ;cE 1Y0\`  s%   -l ll l%#A/l**l;	c                  a  \         P                  P                  P                  R  \	        ^
4       4       4       S P
                  P                  P                  V 3R l\	        ^
4       4       4       \         P                  P                  P                  R \	        ^
4       4       4       S P                  RRR7      pVP                  4        S P                  RRR7      pVP                  4        S P                  RR	R7      pVP                  4        \         P                  P                  P                  4       pVP                  P                  V4       VP                  P                  V4       VP                  P                  V4       VP                  P                  V4       \        \         P                  4      p\        \         P                  4      pR
V9   g   Q hRV9   g   Q hRV9   g   Q hR
V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q h\         P                  P                  P                  4       pWP                  P                  4       9   g   Q hW7P                  P                  4       9   g   Q hW'P                  P                  4       9  g   Q hWP                   P                  4       9   g   Q hW'P                   P                  4       9   g   Q hW7P                   P                  4       9  g   Q h\"        P$                  ! R4       W7P&                  P                  4       9   g   Q hW'P&                  P                  4       9  g   Q h\"        P$                  ! R4       W'P&                  P                  4       9   g   Q hW7P&                  P                  4       9  g   Q hVP(                  P                  V4       W'P*                  P                  4       9   g   Q h\         P                  P                  p\"        P$                  ! R4       VP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  VP0                  .R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^ 8X  g   Q hVP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^ 8X  g   Q hVP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  R	R7      P3                  4       P/                  4       ^
8X  g   Q hVP-                  RR7      P3                  4       P/                  4       ^ 8X  g   Q hVP-                  RR7      P3                  4       P/                  4       ^
8X  g   Q hVP-                  RR7      P3                  4       P/                  4       ^
8X  g   Q h\"        P$                  ! R4       VP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  VP0                  .R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^ 8X  g   Q hVP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^
8X  g   Q hVP-                  V.R7      P/                  4       ^ 8X  g   Q hVP-                  V.R7      P/                  4       ^ 8X  g   Q hVP-                  RR7      P3                  4       P/                  4       ^
8X  g   Q hVP-                  RR7      P3                  4       P/                  4       ^ 8X  g   Q hVP-                  RR7      P3                  4       P/                  4       ^
8X  g   Q hVP-                  RR 7      P3                  4       P/                  4       ^
8X  g   Q hR!# )"c              3   n   "   T F+  p\         P                  ! R V,          RV,          R7      x  K-  	  R# 5ira  rd  re  s   & r5   r   >ManyToManyFieldsTest.test_reverse_relations.<locals>.<genexpr>X  rh  ri  c              3   f   <"   T F&  pSP                  R V,          RV,          R7      x  K(  	  R# 5ira  rk  rl  s   & r5   r   r  \  rm  rn  c              3   ^   "   T F#  p\         P                  ! R V,          R7      x  K%  	  R# 5irp  rq  re  s   & r5   r   r  `  rr  rs  inst_both_eninst_both_derc  
inst_en_en
inst_en_de
inst_de_en
inst_de_dem2m_test_refm2m_test_ref_dem2m_test_ref_encustomthroughmodelcustomthroughmodel_encustomthroughmodel_demanytomanyfieldmodel_setmanytomanyfieldmodel_en_setmanytomanyfieldmodel_de_setr{   r   )m2m_test_ref__in)m2m_test_ref__id__in)m2m_test_ref_en__in)manytomanyfieldmodel__in)manytomanyfieldmodel_en__in)m2m_test_ref__title)m2m_test_ref__title_en)m2m_test_ref_en__title)m2m_test_ref_de__in)manytomanyfieldmodel_de__in)m2m_test_ref__title_de)m2m_test_ref_de__titleN)r#   r   rc   r  r  rV   r9  r  r  r  rP   r  r^   r   rh   r  r  r   r~   r  rU  r  re   r  ra   r  )	r3   	inst_bothinst_eninst_der  r  r  ri   r  s	   f        r5   r  +ManyToManyFieldsTest.test_reverse_relationsW  sF     ,, -
2Y-
 	
 	

&& '
2Y'
 	
 	$$00 1
CH91
 	
 JJJP	**l\*J**l\*J''//335l+l+L)L) +6+;+;< 0 01!1111 $4444 $4444!2222 $5555 $5555#'7777&*::::&*::::)->>>>,0AAAA,0AAAA##++1134488::::2266888866::<<<< 4488::::2266888866::<<<< 	D!//33555533779999D!//33555533779999 	!!,/;;??AAAA ""**D!~~	{~;AACrIII~~y~9??ARGGG~~GJJ<~@FFHBNNN~~y~9??AQFFF~~7)~<BBDJJJ~~y~AGGIQNNN~~7)~DJJLPRRRR~~,~?HHJPPRVXXXX~~,~?HHJPPRVWWWW~~\~BKKMSSUY[[[[~~\~BKKMSSUY[[[[D!~~	{~;AACrIII~~y~9??ARGGG~~GJJ<~@FFHBNNN~~y~9??AQFFF~~7)~<BBDJJJ~~y~AGGIROOO~~y~AGGIQNNN~~7)~DJJLPQQQQ~~,~?HHJPPRVXXXX~~,~?HHJPPRVWWWW~~\~BKKMSSUY[[[[~~\~BKKMSSUY[[[[r7   r>   )r?   r@   rA   rB   r   rq   r  r  r  r  rD   rE   rF   rG   s   @@r5   rE  rE    s9     0 0$!ZFzTx^\ ^\r7   rE  c                   N   a a ] tR tRt o]V 3R l4       tR tR tR tRt	Vt
V ;t# )OneToOneFieldsTesti  c                N   < \         SV `  4        \        P                  V n        R # r,   )r-   rq   r#   OneToOneFieldModelrV   r  s   &r5   rq   OneToOneFieldsTest.setUpClass  s     	--	r7   c                   \         P                  ! R RR7      pVP                  4        V P                  4       p\        P
                  ! R4       Wn        \        P
                  ! R4       Wn        VP                  4        V P                  VR7      p\        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)r  r)  rc  r{   r   r  N)
r#   r   r  rV   r   r~   r  r   r   r   )r3   r  r  r  s   &   r5   test_uniqueness"OneToOneFieldsTest.test_uniqueness  s    $$kKP	zz|D!	D!			 

	
*]]>**JJL +***s   5CC!	c                &   \         P                  ! R RR7      pVP                  4        V P                  RRVP                  R7      pVP                  4        V P                  RRVR7      pVP                  4        V P                  P
                  P                  VR7      pV P                  P
                  P                  VR7      p\        \         P                  4      p\        \         P                  4      pR	V9   g   Q hR
V9   g   Q hRV9   g   Q hR	V9   g   Q hR
V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hW!P                  8X  g   Q hW1P                  8X  g   Q h\        P                  ! R4       W!P                  8X  g   Q h\        P                  ! R4       W1P                  8X  g   Q hWQP                  8X  g   Q h\         P                  P
                  p\        P                  ! R4       VP                  VR7      P!                  4       ^8X  g   Q hVP                  VP                  R7      P!                  4       ^8X  g   Q hVP                  VR7      P!                  4       ^ 8X  g   Q hVP                  VR7      P!                  4       ^8X  g   Q hVP                  VR7      P!                  4       ^8X  g   Q hVP                  VR7      P!                  4       ^ 8X  g   Q hVP                  VR7      P!                  4       ^8X  g   Q hVP                  RR7      P#                  4       P!                  4       ^8X  g   Q hVP                  RR7      P#                  4       P!                  4       ^ 8X  g   Q hVP                  RR7      P#                  4       P!                  4       ^8X  g   Q h\        P                  ! R4       VP                  VR7      P!                  4       ^8X  g   Q hVP                  VP                  R7      P!                  4       ^8X  g   Q hVP                  VR7      P!                  4       ^ 8X  g   Q hVP                  VR7      P!                  4       ^8X  g   Q hVP                  VR7      P!                  4       ^8X  g   Q hVP                  VR7      P!                  4       ^ 8X  g   Q hVP                  VR7      P!                  4       ^8X  g   Q hVP                  RR7      P#                  4       P!                  4       ^8X  g   Q hVP                  RR7      P#                  4       P!                  4       ^ 8X  g   Q hVP                  RR7      P#                  4       P!                  4       ^8X  g   Q h\        P                  ! R4       \         P                  ! R RR7      p	V	P                  4        W)n        W9n
        VP$                  P                  V	P                  8X  g   Q hVP&                  V	P                  8X  g   Q hVP(                  V	8X  g   Q hV	P                  V	P                  8X  g   Q hW)P                  8X  g   Q h\        P                  ! R4       VP$                  P                  V	P                  8X  g   Q hVP&                  V	P                  8X  g   Q hVP*                  V	8X  g   Q hV	P                  V	P                  8X  g   Q hW9P                  8X  g   Q hR# )r   r   rc  r  r  r   r  r  r  test_o2otest_o2o_detest_o2o_enonetoonefieldmodelonetoonefieldmodel_deonetoonefieldmodel_enr{   r   r  )test_o2o__idr  )r  )r  test_o2o__titletest_o2o__title_enr  )r  test_o2o__title_deN)r#   r   r  rV   ra   rc   r:  r^   r   r  r  r   r~   r  r  re   r  r  r  r  r  r  )
r3   ri   r  r  r  r  r  r  r  r  s
   &         r5   r  )OneToOneFieldsTest.test_reverse_relations  sA   ##Z*M ZZ!LX[[   

 	ZZV^Z_
zz))00X0Fzz))00X0F +6+;+;< 0 01---- 0000 0000.... 1111 1111#'7777&*::::&*::::#'8888&*;;;;&*;;;; 11111 11111 	D!.....D!..... ::::: ""**D!~~z~288:a???~~:==~9??AQFFF~~z~288:a???~~*~5;;=BBB~~~>DDF!KKK~~~>DDF!KKK~~L~AGGIQNNN~~l~;DDFLLNRSSSS~~l~;DDFLLNRSSSS~~~>GGIOOQUVVVVD!~~z~288:a???~~:==~9??AQFFF~~z~288:a???~~*~5;;=BBB~~~>DDF!KKK~~~>DDF!KKK~~L~AGGIQNNN~~l~;DDFLLNRSSSS~~l~;DDFLLNRSSSS~~~>GGIOOQUVVVV 	D!$$j:N	' *!!Y\\111!!Y\\111!!Y...$$	(:(:::://///D!!!Y\\111!!Y\\111!!Y...$$	(:(:::://///r7   c                	   \         P                  P                  P                  R R7      p\         P                  P                  P                  RR7      pV P                  P                  P                  RRVR7      pV P                  P                  P                  RRVR7      pV P                  P                  p\
        P                  ! R	4       VP                  VR
7      P                  4       ^8X  g   Q hVP                  VR
7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  R R7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^ 8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q h\
        P                  ! R4       VP                  VR
7      P                  4       ^8X  g   Q hVP                  VR
7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hVP                  R R7      P                  4       ^ 8X  g   Q hVP                  R R7      P                  4       ^8X  g   Q h\         P                  P                  p\
        P                  ! R	4       VP                  VR7      P                  4       ^8X  g   Q hVP                  VR7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^ 8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q h\
        P                  ! R4       VP                  VR7      P                  4       ^8X  g   Q hVP                  VR7      P                  4       ^ 8X  g   Q hVP                  VR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hVP                  RR7      P                  4       ^ 8X  g   Q hVP                  RR7      P                  4       ^8X  g   Q hR# )r   r   r   r  r  )r   r   r,  f_title_en2f_title_de2)r   r   r-  r{   r0  r/  r2  r4  r   r.  r6  r  r  r  r  r  r  Nr8  )r3   r,  r-  r  r  r  s   &     r5   r:  /OneToOneFieldsTest.test_non_translated_relation.  s   %%--44:4F%%--44:4FZZ''..!L / 

 ZZ''.."]6 / 


 **$$D!~~&~)//1Q666~~&~)//1Q666~~V~,224999~~~4::<AAA~~~4::<AAA~~J~7==?1DDDD!~~&~)//1Q666~~&~)//1Q666~~V~,224999~~~4::<AAA~~~4::<AAA~~J~7==?1DDD &&..D!~~z~288:a???~~z~288:a???~~*~5;;=BBB~~l~;AACqHHH~~l~;AACqHHH~~~>DDF!KKKD!~~z~288:a???~~z~288:a???~~*~5;;=BBB~~m~<BBDIII~~m~<BBDIII~~~?EEG1LLLr7   r>   )r?   r@   rA   rB   r   rq   r  r  r:  rD   rE   rF   rG   s   @@r5   r  r    s/     . .$Z0x+M +Mr7   r  c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )OtherFieldsTesti\  c                   \         P                  P                  P                  4       p\	        V4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hR	V9   g   Q hR
V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hVP                  4        R# )r   r{  int_deint_enboolean
boolean_de
boolean_en	genericipgenericip_degenericip_enfloatfloat_defloat_endecimal
decimal_de
decimal_enjsonjson_dejson_enN)r#   OtherFieldsModelrc   r:  r   r  )r3   r  r   s   &  r5   r  &OtherFieldsTest.test_translated_models]  s8   &&..557$i{"""###;&&&;&&&K'''{***{***k))),,,,,,+%%%[((([(((K'''{***{***$$$K'''K'''r7   c                6   \         P                  ! 4       p^Vn        R\        4       8X  g   Q h^VP                  8X  g   Q h^VP                  8X  g   Q h^*VP
                  8X  g   Q hV;P                  ^,          un        VP                  4        ^	VP                  8X  g   Q h^	VP                  8X  g   Q h^*VP
                  8X  g   Q h\        P                  ! R4       V;P                  ^,          un        ^)VP                  8X  g   Q h^	VP                  8X  g   Q h^)VP
                  8X  g   Q hV;P                  ^2,          un        \        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)   r{   r   N)r#   r  r{  r   r  r  r  r   r~   r   r   r	   
full_cleanr  s   & r5   'test_translated_models_integer_instance7OtherFieldsTest.test_translated_models_integer_instanceu  s+   &&(|~%%%DHH}}DKKT[[   A		DHH}}DKKT[[   D!ATXX~~DKKT[[    	B]]?++OO ,+++s   ,FF	c                   \         P                  ! 4       pR Vn        R\        4       8X  g   Q hVP                  R J g   Q hVP                  R J g   Q hVP
                  RJ g   Q hRVn        VP                  4        VP                  RJ g   Q hVP                  RJ g   Q hVP
                  RJ g   Q h\        P                  ! R4       R Vn        VP                  R J g   Q hVP                  RJ g   Q hVP
                  R J g   Q hR# )Tr{   Fr   N)	r#   r  r  r   r  r  r  r   r~   r  s   & r5   'test_translated_models_boolean_instance7OtherFieldsTest.test_translated_models_boolean_instance  s    &&(|~%%%||t###$&&&%'''		||u$$$%'''%'''D!||t###%'''$&&&r7   c                   \         P                  ! 4       pR Vn        R\        4       8X  g   Q hR VP                  8X  g   Q hR VP                  8X  g   Q hVP
                  e   Q hRVn        VP                  4        RVP                  8X  g   Q hRVP                  8X  g   Q hVP
                  e   Q h\        P                  ! R4       R Vn        R VP                  8X  g   Q hRVP                  8X  g   Q hR VP
                  8X  g   Q hRVn        \        P                  ! \        4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)z2a02:42fe::4r{   Nz2a02:23fe::4r   z1;2)r#   r  r  r   r  r  r  r   r~   r   r   r	   r  r  s   & r5   0test_translated_models_genericipaddress_instance@OtherFieldsTest.test_translated_models_genericipaddress_instance  s'   &&('|~%%%///!2!2222  ((('		///!2!2222  (((D!'///!2!2222!2!2222 ]]?++OO ,+++s   0EE	c                   \         P                  ! 4       pR Vn        R\        4       8X  g   Q hR VP                  8X  g   Q hR VP                  8X  g   Q hVP
                  e   Q hRVn        VP                  4        RVP                  8X  g   Q hRVP                  8X  g   Q hVP
                  e   Q hV;P                  R,          un        RVP                  8X  g   Q hRVP                  8X  g   Q hVP
                  e   Q h\        P                  ! R4       R Vn        R VP                  8X  g   Q hRVP                  8X  g   Q hR VP
                  8X  g   Q hR# )gzG?r{   Ngq=
ףp?g{Gz?gףp=
?r   )	r#   r  r  r   r  r  r  r   r~   r  s   & r5   %test_translated_models_float_instance5OtherFieldsTest.test_translated_models_float_instance  s,   &&(
|~%%%tzz!!!t}}$$$}}$$$
		tzz!!!t}}$$$}}$$$

d
tzz!!!t}}$$$}}$$$D!
tzz!!!t}}$$$t}}$$$r7   c                   \         P                  ! 4       p\        R 4      Vn        R\	        4       8X  g   Q h\        R 4      VP                  8X  g   Q h\        R 4      VP
                  8X  g   Q hVP                  e   Q hVP                  \        R4      ,
          Vn        VP                  4        \        R4      VP                  8X  g   Q h\        R4      VP
                  8X  g   Q hVP                  e   Q h\        P                  ! R4       \        P                  ! \        4      ;_uu_ 4        VP                  \        R4      ,            RRR4       VP                  e   Q h\        R4      VP
                  8X  g   Q hVP                  e   Q h\        R 4      Vn        \        R 4      VP                  8X  g   Q h\        R4      VP
                  8X  g   Q h\        R 4      VP                  8X  g   Q hR#   + '       g   i     L; i)z0.42r{   Nz0.19z0.23r   )r#   r  r   r  r   r  r  r  r   r~   r   r   r  r  s   & r5   'test_translated_models_decimal_instance7OtherFieldsTest.test_translated_models_decimal_instance  s~   &&(v|~%%%v$,,...v$//111&&&||gfo5		v$,,...v$//111&&&D!]]9%%LL76?* &||###v$//111&&&vv$,,...v$//111v$//111 &%s   0G77H	c                   \         P                  ! 4       p\        P                  ! R ^^4      Vn        R\	        4       8X  g   Q h\        P                  ! R ^^4      VP                  8X  g   Q h\        P                  ! R ^^4      VP
                  8X  g   Q hVP                  e   Q h\        P                  ! R^^4      Vn        VP                  4        \        P                  ! R^^4      VP                  8X  g   Q h\        P                  ! R^^4      VP
                  8X  g   Q hVP                  e   Q h\         P                  P                  P                  RR7      p\        V4      ^8X  g   Q hV^ ,          P                  \        P                  ! R^^4      8X  g   Q h\        P                  ! R4       \        P                  ! R ^^4      Vn        \        P                  ! R ^^4      VP                  8X  g   Q h\        P                  ! R^^4      VP
                  8X  g   Q h\        P                  ! R ^^4      VP                  8X  g   Q hR# )  r{   N  z1999-1-1)dater   )r#   r  datetimer  r   date_dedate_enr  rc   re   r   r   r~   r3   r  qss   &  r5   $test_translated_models_date_instance4OtherFieldsTest.test_translated_models_date_instance  s   &&(MM$B/	|~%%%}}T2r*dii777}}T2r*dll:::||###MM$1-			}}T1a(DII555}}T1a(DLL888||###$$,,333D2w!||!uzzX]]4A6666D!MM$B/	}}T2r*dii777}}T1a(DLL888}}T2r*dll:::r7   c                   \         P                  ! 4       p\        P                  ! R ^^^^*4      Vn        R\        4       8X  g   Q h\        P                  ! R ^^^^*4      VP                  8X  g   Q h\        P                  ! R ^^^^*4      VP                  8X  g   Q hVP
                  e   Q h\        P                  ! R^^^^*4      Vn        VP                  4        \        P                  ! R^^^^*4      VP                  8X  g   Q h\        P                  ! R^^^^*4      VP                  8X  g   Q hVP
                  e   Q h\         P                  P                  P                  RR7      p\        V4      ^8X  g   Q hV^ ,          P                  \        P                  ! R^^^^*4      8X  g   Q h\        P                  ! R4       \        P                  ! R ^^^^*4      Vn        \        P                  ! R ^^^^*4      VP                  8X  g   Q h\        P                  ! R^^^^*4      VP                  8X  g   Q h\        P                  ! R ^^^^*4      VP
                  8X  g   Q hR# )r  r{   Nr  z1999-1-1 23:42r  r   )r#   r  r  r   datetime_dedatetime_enr  rc   re   r   r   r~   r  s   &  r5   (test_translated_models_datetime_instance8OtherFieldsTest.test_translated_models_datetime_instance  s   &&( ))$BB?|~%%%  r2r26$--GGG  r2r26$:J:JJJJ''' ))$1b"=		  q!R4EEE  q!R48H8HHHH'''$$,,33=M3N2w!||!u~~!2!24Ar2!FFFFD! ))$BB?  r2r26$--GGG  q!R48H8HHHH  r2r26$:J:JJJJr7   c                   \         P                  ! 4       p\        P                  ! ^^*^ 4      Vn        R\	        4       8X  g   Q h\        P                  ! ^^*^ 4      VP                  8X  g   Q h\        P                  ! ^^*^ 4      VP
                  8X  g   Q hVP                  e   Q h\        P                  ! ^^^4      Vn        VP                  4        \        P                  ! ^^^4      VP                  8X  g   Q h\        P                  ! ^^^4      VP
                  8X  g   Q hVP                  e   Q h\         P                  P                  P                  RR7      p\        V4      ^8X  g   Q hV^ ,          P                  \        P                  ! ^^^4      8X  g   Q h\        P                  ! R4       \        P                  ! ^^*^ 4      Vn        \        P                  ! ^^*^ 4      VP                  8X  g   Q h\        P                  ! ^^^4      VP
                  8X  g   Q h\        P                  ! ^^*^ 4      VP                  8X  g   Q hR# )   r{   Nz01:02:03)timer   )r#   r  r  r!  r   time_detime_enr  rc   re   r   r   r~   r  s   &  r5   $test_translated_models_time_instance4OtherFieldsTest.test_translated_models_time_instance  s   &&(MM"b!,	|~%%%}}RQ'499444}}RQ'4<<777||###MM!Q*			}}Q1%222}}Q1%555||###$$,,333D2w!||!uzzX]]1a3333D!MM"b!,	}}RQ'499444}}Q1%555}}RQ'4<<777r7   c           	     F   \         P                  pVP                  P                  \        P                  ! R ^	^^ ^ 4      R7       VP                  P                  \        P                  ! R^^^ ^ 4      R7       VP                  P                  \        P                  ! R^^^ ^ 4      R7       VP                  P                  RRR4      p\        V4      \        P                  ! R ^^4      \        P                  ! R^^4      \        P                  ! R^^4      .8X  g   Q hR# )i  r  i  i  r  yearDESCN)r#   r  rc   r:  r  datesr  r  )r3   Modelr  s   &  r5   test_dates_queryset#OtherFieldsTest.test_dates_queryset6  s    ''h&7&7aAq&IJh&7&7aAq&IJh&7&7aAq&IJ]]  VV<BxMM$1%MM$1%MM$1%
 
 	
 
r7   c                f   \         P                  ! 4       p^Vn        RVP                  8X  g   Q hRVn        RVP                  8X  g   Q hR\        4       8X  g   Q h^Vn        RVP                  8X  g   Q hVP                  4        \         P                  P                  P                  RRR4      ^ ,          p^VR,          8X  g   Q h^VR,          8X  g   Q h^ VR,          8X  g   Q h\         P                  P                  P                  4       ^ ,          pRVP                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q hR	VP                  8X  g   Q h\        P                  ! R
4       R	VP                  8X  g   Q hRVn        RVP                  8X  g   Q h^Vn	        RVP                  8X  g   Q hVP                  4        \         P                  P                  P                  RRR4      ^ ,          p^VR,          8X  g   Q h^VR,          8X  g   Q h^VR,          8X  g   Q hR# )r}  aaabcaaar{   aaaaanormaltrans_entrans_der  r   qaaaaaN)r#   DescriptorModelr2  r   transr  rc   
raw_valuesr  r4  r3  r   r~   )r3   r  	db_valuess   &  r5   test_descriptors OtherFieldsTest.test_descriptorsE  s   %%'t{{"""### |~%%%
$**$$$		**22==h
T^_`ab	Ih''''Ij))))Ij)))) %%--113A6###$**$$$$--'''T]]""" 	D!TZZ
djj   &&&		**22==h
T^_`ab	Ih''''Ij))))Ij))))r7   r>   N)r?   r@   rA   rB   r  r   r  r  r	  r  r  r  r$  r+  r<  rD   rE   ru  s   @r5   r  r  \  sB     02'(2%224;0K080
&* &*r7   r  c                   @   a  ] tR tRt o RtR	R ltR tR tR tRt	V t
R# )
ModeltranslationTestRule1in  zl
Rule 1: Reading the value from the original field returns the value in
translated to the current language.
c                   R V,          pRV,          pWRWc/p\         P                  P                  P                  ! R/ VB p\        P
                  ! R4       \        4       R8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        P
                  ! R4       \        4       R8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\         P                  P                  P                  ! R/ VB pVP                  4        \        4       R8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        P
                  ! R4       \        4       R8X  g   Q h\        W4      V8X  g   Q hV'       d   \        P                  ! 4        R# R# %s_de%s_enr{   r   Nr>   )
r#   r   rc   r:  r   r~   r   r4  r  
deactivate)	r3   
field_namevalue_devalue_enrD  field_name_defield_name_enparamsr   s	   &&&&&    r5   _test_field%ModeltranslationTestRule1._test_fieldt  s   *,*,=C$$++5f5D!~%%%q%111q(H444q(H444D!~%%%q%111q(H444q(H444$$++5f5	~%%%q%111q(H444q(H444D!~%%%q%111!!# r7   c                b    RpRpRpRpV P                  RWR7       V P                  RW4R7       R# )	!
Basic CharField/TextField test.
r  r  zDies ist ein deutscher SatzzThis is an english sentencer   rE  rF  rG  r   NrK  )r3   r)  r  r   r   s   &    r5   
test_rule1$ModeltranslationTestRule1.test_rule1  s>     		//GiTFWOr7   c                .    V P                  R RRR7       R# )r   http://www.google.derE  rO  NrP  r   s   &r5   test_rule1_url_field.ModeltranslationTestRule1.test_rule1_url_field  s    '=H_ 	 	
r7   c                .    V P                  R RRR7       R# )r   %django-modeltranslation@googlecode.de&django-modeltranslation@googlecode.comrO  NrP  r   s   &r5   test_rule1_email_field0ModeltranslationTestRule1.test_rule1_email_field  s    <= 	 	
r7   r>   Nr   )r?   r@   rA   rB   rC   rK  rQ  rU  rZ  rD   rE   ru  s   @r5   r?  r?  n  s%     
!$F
P


 
r7   r?  c                   @   a  ] tR tRt o RtR	R ltR tR tR tRt	V t
R# )
ModeltranslationTestRule2i  zy
Rule 2: Assigning a value to the original field updates the value
in the associated current language translation field.
c                    R V,          pRV,          pWrW/p	\        4       R8X  g   Q h\        P                  P                  P                  ! R/ V	B p
\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        WV4       V
P                  4        \        W4      V8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q h\        P                  ! R4       \        4       R8X  g   Q h\        WV4       \        WV4       V
P                  4        \        W4      V8X  g   Q h\        W4      V8X  g   Q h\        W4      V8X  g   Q hV'       d   \        P                  ! 4        R# R# rA  )r   r#   r   rc   r:  r4  rO  r  r   r~   rD  )r3   rE  	value1_de	value1_envalue2value3rD  rH  rI  rJ  r   s   &&&&&&&    r5   rK  %ModeltranslationTestRule2._test_field  s\   *,*,ME~%%%$$++5f5q%222q(I555q(I555v&	q%///q(F222q(I555D!~%%%v&),	q%///q(F222q(I555!!# r7   c                2    V P                  RRRRRR7       R# )rN  r   r  r  zNeuer Titelz	new titlerE  r_  r`  ra  rb  NrP  r   s   &r5   
test_rule2$ModeltranslationTestRule2.test_rule2  s&     	    	 	
r7   c                2    V P                  R RRRRR7       R# )r   rT  rE  zhttp://www.google.atzhttp://www.google.co.ukre  NrP  r   s   &r5   test_rule2_url_field.ModeltranslationTestRule2.test_rule2_url_field  s$    ,-), 	 	
r7   c                2    V P                  R RRRRR7       R# )r   rX  rY  z%django-modeltranslation@googlecode.atz(django-modeltranslation@googlecode.co.ukre  NrP  r   s   &r5   test_rule2_email_field0ModeltranslationTestRule2.test_rule2_email_field  s$    =>:= 	 	
r7   r>   Nr   )r?   r@   rA   rB   rC   rK  rf  ri  rl  rD   rE   ru  s   @r5   r]  r]    s#     
$<



 
r7   r]  c                   @   a  ] tR tRt o RtR t]R 4       tR tRt	V t
R# )ModeltranslationTestRule3i  z
Rule 3: If both fields - the original and the current language translation
field - are updated at the same time, the current language translation
field wins.
c                   \        4       R 8X  g   Q hRp\        P                  ! RR7      pVP                  R8X  g   Q hVP                  R8X  g   Q hVP
                  e   Q h\        P                  ! VRR7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  e   Q h\        P                  P                  P                  VRR7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  e   Q h\        P                  P                  P                  VR7      pVP                  V8X  g   Q hVP                  V8X  g   Q hVP
                  e   Q h\        P                  ! 4       pWn        RVn        VP                  R8X  g   Q hVP                  R8X  g   Q hVP
                  e   Q hR# )r{   r  r  r   N)r   r   r   )	r   r#   r   r   r   r   rc   r:  r  )r3   r   r   s   &  r5   
test_rule3$ModeltranslationTestRule3.test_rule3  s   ~%%% 5)ww%zzU"""zz!!! e59ww%zzU"""zz!!! $$++U%+Hww%zzU"""zz!!! $$((%(8ww%zzU"""zz!!! 
ww%zzU"""zz!!!r7   c                H    \        V 4       F  w  r#W1J g   K  Vu # 	  \        hr,   )r  r   )r  elementrf  els   &&  r5   _index ModeltranslationTestRule3._index  s$    t_EA} % r7   c                   \         P                  P                  P                  R 4      p\         P                  P                  P                  R4      p\         P                  P                  P                  R4      p\         P                  P                  P                  pV P                  WA4      V P                  WB4      8  g   Q hV P                  WA4      V P                  WC4      8  g   Q hR# )r   r   r   N)r#   r   rQ   r   r\   rw  )r3   originaltranslated_detranslated_enr\   s   &    r5   test_rule3_internals.ModeltranslationTestRule3.test_rule3_internals%  s     ##))33G<((..88D((..88D!!''..{{6,t{{6/QQQQ{{6,t{{6/QQQQr7   r>   N)r?   r@   rA   rB   rC   rr  staticmethodrw  r}  rD   rE   ru  s   @r5   ro  ro    s0     ""H  	R 	Rr7   ro  c                   B   a  ] tR tRt o RtR tR tR tR tR t	Rt
V tR	# )
ModelValidationTesti1  z9
Tests if a translation model field validates correctly.
c                     V! 4        T P                  R4       R #   \          d   pTP                  u R p?# R p?ii ; i)NzValidationError not raised.)r	   message_dictfail)r3   funces   && r5   assertRaisesValidation*ModelValidationTest.assertRaisesValidation6  s7    	"F 			/0  	">>!	"s    =8==c                   RV,          pRV,          pRRRRW/p\         P                  P                  P                  ! R
/ VB pV P	                  VP
                  4      pW9   g   Q h\        4       R8X  g   Q h\        WtV4       VP                  4        \        WuV4       V P	                  VP
                  4      pW9  g   Q hWX9   g   Q h\        R4      ;_uu_ 4        \        WuV4       V P	                  VP
                  4      pW9   g   Q hWX9   g   Q h R	R	R	4       \        WuV4       \        WtV4       V P	                  VP
                  4      pW9   g   Q hWH9   g   Q hR	#   + '       g   i     LU; i)z&
Generic model field validation test.
rB  rC  r   r  r   r  r{   r   Nr>   )	r#   r   rc   r:  r  r  r   rO  r   )	r3   rE  invalid_valuevalid_valuerH  rI  rJ  r   errorss	   &&&&     r5   _test_model_validation*ModelValidationTest._test_model_validation=  sV     *,*,j*j*\$$++5f5 ,,Q\\:### ~%%%+.	 	-0,,Q\\:'''&&& d^^Am400>F''' ***	  	+.-0,,Q\\:###&&& ^s   8E$$E4	c           	        \         P                  P                  P                  RR7      pV P	                  VP
                  4      pRV9   g   Q hVP                  4        \        4       R8X  g   Q hRVn        VP                  4        \        R4      ;_uu_ 4        V P	                  VP
                  4      pRV9   g   Q h\        4       ;_uu_ 4        VP                  4        RRR4       RRR4       RVn        V P	                  VP
                  4      pRV9  g   Q hRV9   g   Q hR#   + '       g   i     LN; i  + '       g   i     LY; i)	zD
General test for CharField: if required/blank is handled properly.
Testtext)r   r   r{   Titler   Nr   )r#   r   rc   r:  r  r  r  r   r   r   rM   )r3   r   r  s   &  r5   test_model_validation_required2ModelValidationTest.test_model_validation_requiredh  s	   
 $$+++< ,,Q\\:&   	 ~%%%
	
 d^^00>Ff$$$ "## $  

 ,,Q\\:'''&    $# ^s$   7D;D(	"D;(D83D;;E	c                .    V P                  R RRR7       R# )r   foo enz1http://code.google.com/p/django-modeltranslation/rE  r  r  Nr  r   s   &r5   test_model_validation_url_field3ModelValidationTest.test_model_validation_url_field  s    ##"K 	$ 	
r7   c                .    V P                  R RRR7       R# )r   r  rY  r  Nr  r   s   &r5   !test_model_validation_email_field5ModelValidationTest.test_model_validation_email_field  s    ##"@ 	$ 	
r7   r>   N)r?   r@   rA   rB   rC   r  r  r  r  r  rD   rE   ru  s   @r5   r  r  1  s*     1)'V(!T

 
r7   r  c                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )ModelInheritanceTesti  z2Tests for inheritance support in modeltranslation.c                    \        \        P                  4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9  g   Q hRV9  g   Q hRV9  g   Q hR	# )
titlea	titlea_de	titlea_entitleb	titleb_de	titleb_entitled	titled_de	titled_enN)r^   r#   AbstractModelB)r3   field_names_bs   & r5   test_abstract_inheritance.ModelInheritanceTest.test_abstract_inheritance  s    '(=(=>=(((m+++m+++=(((m+++m+++},,,-///-///r7   c                   \        \        P                  4      pR V9   g   Q hRV9   g   Q hRV9   g   Q h\        \        P                  4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q h\        \        P                  4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q h\        \        P
                  4      pR V9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hR	V9   g   Q hR
# )r  r  r  r  r  r  titlec	titlec_de	titlec_enr  N)r^   r#   MultitableModelAMultitableModelBMultitableModelCMultitableModelD)r3   field_names_ar  field_names_cfield_names_ds   &    r5   test_multitable_inheritance0ModelInheritanceTest.test_multitable_inheritance  s   '(?(?@=(((m+++m+++'(?(?@=(((m+++m+++=(((m+++m+++'(?(?@=(((m+++m+++=(((m+++m+++=(((m+++m+++'(?(?@=(((m+++m+++=(((m+++m+++=(((r7   c                   R  pR pV! \         P                  R4       V! \         P                  R4       V! \         P                  R4       V! \         P                  R4       V! \         P
                  R4       V! \         P                  R4       V! \         P                  R4       V! \         P
                  R4       V! \         P                  R4       R# )	c                 v   \         P                   P                  V 4      p\        VP                  P	                  4       4      \        V4      8X  g   Q hV P
                  P                   Uu. uF  q3P                  NK  	  ppV F-  p\        P                   F  p\        WV4      pWt9   d   K  Q h	  K/  	  R # u upi r,   )
r   r   rP   local_fieldsrg   rQ   rY   r1   r   r'   )rV   r  r  r  model_local_fieldsr]   langtranslation_fields   &&      r5   assertLocalFields@ModelInheritanceTest.test_inheritance.<locals>.assertLocalFields  s    ((>>uEDt((--/0C4EEEE27++2J2J!K2JQ&&2J!K%';;D(A%(N%,BBB < & "Ls   +B6c                 &   \         P                   P                  V 4      p\        VP                  P	                  4       4      \        V4      8X  g   Q h\        V 4      pV F-  p\        P                   F  p\        WE4      pWc9   d   K  Q h	  K/  	  R # r,   )	r   r   rP   r;  rg   r^   r1   r   r'   )rV   r\   r  model_fieldsr]   r  r  s   &&     r5   assertFields;ModelInheritanceTest.test_inheritance.<locals>.assertFields  sw    ((>>uEDt++-.#f+===*51L';;D(A%(N%,<<< <  r7   N)slug)r=  )r  )r  r=  )r  r=  r   )r  r=  r   r  )r#   r   MetaDataRichTextDisplayablePageRichTextPage)r3   r  r  s   &  r5   test_inheritance%ModelInheritanceTest.test_inheritance  s    		C		= 	&..)4&//=9&//<8	
 	KK	
 	&--|< 	V^^Y/KK	
 		
r7   r>   N)
r?   r@   rA   rB   rC   r  r  r  rD   rE   ru  s   @r5   r  r    s     <
0 )D@
 @
r7   r  c                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )$ModelInheritanceFieldAggregationTesti	  zK
Tests for inheritance support with field aggregation
in modeltranslation.
c                   \         P                  pR VP                  9   g   Q hRVP                  9   g   Q hRVP                  9   g   Q h^\        VP                  4      8X  g   Q h\	        VP                  \
        4      '       g   Q hR# )r  r  r  N)r$   #FieldInheritanceCTranslationOptionsr\   r   r  r   r3   clsbs   & r5   test_field_aggregation;ModelInheritanceFieldAggregationTest.test_field_aggregation	  sq    >>4;;&&&4;;&&&4;;&&&C$$$$$++u----r7   c                   \         P                  pR VP                  9   g   Q hRVP                  9   g   Q hRVP                  9   g   Q hRVP                  9   g   Q hRVP                  9   g   Q h^\        VP                  4      8X  g   Q hR# )r  r  r  r  titleeN)r$   #FieldInheritanceETranslationOptionsr\   r   r  s   & r5   test_multi_inheritance;ModelInheritanceFieldAggregationTest.test_multi_inheritance#	  s~    >>4;;&&&4;;&&&4;;&&&4;;&&&4;;&&&C$$$$r7   c                    \         P                  ! \        4      ;_uu_ 4         ! R  R\        4      pRRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtRtR# )TModelInheritanceFieldAggregationTest.test_str_instead_of_tuple.<locals>.ModelOptionsi/	  r  r>   N)r?   r@   rA   rB   r\   rD   r>   r7   r5   ModelOptionsr  /	  s    !r7   r  N)r   r   r   r   )r3   r  s   & r5   test_str_instead_of_tuple>ModelInheritanceFieldAggregationTest.test_str_instead_of_tuple,	  s.    ]]/00"1 " 1000s	   =A	r>   N)
r?   r@   rA   rB   rC   r  r  r  rD   rE   ru  s   @r5   r  r  	  s     
.%" "r7   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
UpdateCommandTesti3	  c                   \         P                  P                  P                  R R7      P                  p\         P                  P                  P                  RR7      P                  p\         P                  P                  P                  4       P                  R4      P                  RR7       \         P                  P                  P                  VR7      P                  4       ^ ,          p\         P                  P                  P                  VR7      P                  4       ^ ,          pR VR,          8X  g   Q hRVR,          8X  g   Q hRVR,          8X  g   Q hRVR,          8X  g   Q h\        R	R
^ R7       \         P                  P                  P                  VR7      p\         P                  P                  P                  VR7      pRVP                  8X  g   Q hRVP                  8X  g   Q hR# )r  rq  alreadyFinitialr   r`   r   r   update_translation_fieldstests	verbosityN)r#   r   rc   r:  ra   r  rd   updatere   r:  r   r  r   r3   pk1pk2obj1obj2s   &    r5   test_update_command%UpdateCommandTest.test_update_command4	  s   
 &&--r-:==&&--y-ADD  $$&..u5<<9<M ''..#.6AACAF''..#.6AACAFT*%%%%DM)))D,,,,DM)))0'QG''++s+3''++s+3DMM)))DMM)))r7   c                   \         P                  ! R 4       \        P                  P                  P                  RR7      P                  p\        P                  P                  P                  RR7      P                  p\        P                  P                  P                  4       P                  R4      P                  RR7       \        RRR ^ R	7       \        P                  P                  P                  VR
7      p\        P                  P                  P                  VR
7      pRVP                  8X  g   Q hRVP                  8X  g   Q hR# )r   r  r  r  Fr  r   r  r  r   r  r`   N)r   r~   r#   r   rc   r:  ra   r  rd   r  r   r  r   r  s   &    r5   "test_update_command_language_param4UpdateCommandTest.test_update_command_language_paramM	  s    D!&&--r-:==&&--y-ADD  $$&..u5<<9<M0'DTUV''++s+3''++s+3DMM)))DMM)))r7   c                    \         P                  ! \        4      ;_uu_ 4        \        R R^ R7       RRR4       R#   + '       g   i     R# ; i)r  xxr  N)r   r   r   r   r   s   &r5   *test_update_command_invalid_language_param<UpdateCommandTest.test_update_command_invalid_language_param[	  s-    ]]<((4tqQ )(((s	   <A	c                   \         P                  P                  P                  RR/R7      P                  p\         P                  P                  P                  4       P                  R4      P                  RR7       \         P                  P                  P                  VR7      P                  4       ^ ,          pVR,          RR/8X  g   Q hVR	,          e   Q hVR
,          e   Q h\        RRR^ R7       \         P                  P                  P                  VR7      P                  4       ^ ,          pVR,          RR/8X  g   Q hVR	,          RR/8X  g   Q hVR
,          e   Q hR# )zI
Test that the update_translation_fields command works with JSON fields.
r  r  )r  FN)r  r`   r  r  r  r  r  r  
model_namer  r#   r  rc   r:  ra   r  rd   r  re   r:  r   r3   instance_pkri   s   &  r5   #test_update_command_with_json_field5UpdateCommandTest.test_update_command_with_json_field_	  sG    --55<<5%.<QTT''++-55e<CCDCQ**2299[9ITTVWXYE5>111	"***	"***'=O[\	
 **2299[9ITTVWXYE5>111	"uen444	"***r7   c                   \         P                  P                  P                  RR/R7      P                  p\         P                  P                  P                  4       P                  R4      P                  / R7       \         P                  P                  P                  VR7      P                  4       ^ ,          pVR,          RR/8X  g   Q hVR,          / 8X  g   Q hVR	,          / 8X  g   Q h\        R
RR^ R7       \         P                  P                  P                  VR7      P                  4       ^ ,          pVR,          RR/8X  g   Q hVR,          RR/8X  g   Q hVR	,          / 8X  g   Q hR# )za
Test that the update_translation_fields command works with JSON fields that have a default dict
r  r  )json_with_default_dictF)json_with_default_dict_der`   r  r  json_with_default_dict_enr  r  r  r  Nr  r  s   &  r5   5test_update_command_with_json_field_with_default_dictGUpdateCommandTest.test_update_command_with_json_field_with_default_dictv	  s]    --55<<$)5> = 

" 	 	''++-55e<CC^`Ca**2299[9ITTVWXY01eU^CCC34:::34:::'=O[\	
 **2299[9ITTVWXY01eU^CCC34FFF34:::r7   c                   \         P                  P                  P                  RR.R7      P                  p\         P                  P                  P                  4       P                  R4      P                  . R7       \         P                  P                  P                  VR7      P                  4       ^ ,          pVR,          RR.8X  g   Q hVR,          . 8X  g   Q hVR	,          . 8X  g   Q h\        R
RR^ R7       \         P                  P                  P                  VR7      P                  4       ^ ,          pVR,          RR.8X  g   Q hVR,          RR.8X  g   Q hVR	,          . 8X  g   Q hR# )za
Test that the update_translation_fields command works with JSON fields that have a default list
r  r  )json_with_default_listF)json_with_default_list_der`   r	  r
  json_with_default_list_enr  r  r  r  Nr  r  s   &  r5   5test_update_command_with_json_field_with_default_listGUpdateCommandTest.test_update_command_with_json_field_with_default_list	  s]    --55<<%*EN = 

" 	 	''++-55e<CC^`Ca**2299[9ITTVWXY01eU^CCC34:::34:::'=O[\	
 **2299[9ITTVWXY01eU^CCC34FFF34:::r7   r>   N)r?   r@   rA   rB   r  r  r  r   r  r  rD   rE   ru  s   @r5   r  r  3	  s)     *2*R+.;2; ;r7   r  c                   
  a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R  t"R! t#R" t$R# t%R$ t&R% t'R& t(R't)Vt*V ;t+# )(TestManageri	  c                P   < \         SV `  4        \        P                  ! R 4       R# )r   N)r-   r|   r   r~   r2   s   &r5   r|   TestManager.setUp	  s    D!r7   c                   \         P                  ! RR7      pRVn        RVn        VP	                  4        \         P                  ! RR7      pRVn        RVn        VP	                  4        R\        4       8X  g   Q h^ \         P                  P                  P                  RR7      P                  4       8X  g   Q h^\         P                  P                  P                  RR7      P                  4       8X  g   Q h^\         P                  P                  P                  RR7      P                  4       8X  g   Q h\        R4      ;_uu_ 4        ^\         P                  P                  P                  RR7      P                  4       8X  g   Q h^ \         P                  P                  P                  RR7      P                  4       8X  g   Q h^\         P                  P                  P                  RR7      P                  4       8X  g   Q h^\         P                  P                  P                  RR	7      P                  4       8X  g   Q h^\         P                  P                  P                  RR
7      P                  4       8X  g   Q h\         P                  P                  P                  RR7       ^\         P                  P                  P                  RR7      P                  4       8X  g   Q h\         P                  P                  P                  VP                  R7      p\         P                  P                  P                  VP                  R7      pRVP                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q h RRR4       ^\         P                  P                  P                  RRR7      P                  4       8X  g   Q hR#   + '       g   i     LR; i)z1Test if filtering and updating is language-aware.r  r   r   r{   r  )title__containsr  )title__endswithr  )title_en__containsnewr`   Nr   r   )r#   ManagerTestModelr   r   r  r   rc   re   r  r   r  r  ra   r3   r   r>  s   &  r5   test_filter_updateTestManager.test_filter_update	  s   ##"-

	##"-

	|~%%%F++33:::FLLNNNNF++33:::FLLNNNNF++33::4:PVVXXXXd^^//77>>T>JPPRRRR//77>>T>JPPRRRR//77>>s>SYY[[[[ //77>>>MSSUUUU//77>>RV>W]]____##++222?//77>>U>KQQSSSS''//33qtt3<A''//33qtt3<A1::%%%AJJ&&&+++AJJ&&&# ( F++33::PT:U[[]]]]) ^s   IO00P 	c           
        \         P                  ! RR7      pRVn        RVn        VP	                  4        R\        4       8X  g   Q h^ \         P                  P                  P                  \        RR7      \        ^*R7      ,          4      P                  4       8X  g   Q h^\         P                  P                  P                  \        RR7      \        ^*R7      ,          4      P                  4       8X  g   Q h\        R4      ;_uu_ 4        ^\         P                  P                  P                  \        RR7      \        ^*R7      ,          4      P                  4       8X  g   Q h^ \         P                  P                  P                  \        RR7      \        ^*R7      ,          4      P                  4       8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z Test if Q queries are rewritten.r  r   r   r{   r`   N)r#   r  r   r   r  r   rc   re   r   r  r   r3   r   s   & r5   test_qTestManager.test_q	  s>   ##"-

	|~%%%F++33::14=1PR8;STZZ\\\\F++33::14=1PR8;STZZ\\\\d^^//77>>qt}qTVx?WX^^````//77>>qt}qTVx?WX^^```` ^^^s   B3G

G	c                   \         P                  P                  P                  ^^R7      pR\	        4       8X  g   Q h\         P                  P                  P                  \        R4      ^
,           R7       \         P                  P                  P                  4       ^ ,          pVP                  ^8X  g   Q hVP                  ^8X  g   Q h\        R4      ;_uu_ 4        \         P                  P                  P                  \        R4      ^,           R7       \         P                  P                  P                  4       ^ ,          pVP                  ^8X  g   Q hVP                  ^8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z Test if F queries are rewritten.)r   r   r   r   )r   r{   N)r#   r  rc   r:  r   r  r   r  r   r   r   r  s   & r5   test_fTestManager.test_f	  s   ##++22Q!2L|~%%%''..akB6F.G##++//1!4{{b   {{ad^^##++22!H+:J2K''//335a8A;;"$$$;;"$$$	 ^^^s   BE::F	c                ~   \         P                  P                  pVP                  RR7       VP                  RR7      pVP                  RR7       \	        R4      ;_uu_ 4        RVn        VP                  4        RRR4       \        ;QJ d#    . R VP                  R	4       4       F  NK  	  5M! R VP                  R	4       4       4      p\        ;QJ d#    . R
 VP                  R4       4       F  NK  	  5M! R
 VP                  R4       4       4      pVR8X  g   Q hVR8X  g   Q hR#   + '       g   i     L; i)z6Check that field names are rewritten in order_by keys.r6  r   bcr{   dNc              3   8   "   T F  qP                   x  K  	  R # 5ir,   r   r   r>  s   & r5   r   ,TestManager.test_order_by.<locals>.<genexpr>
  s     F,Eq77,E   r   c              3   8   "   T F  qP                   x  K  	  R # 5ir,   r   r(  s   & r5   r   r)  
  s     H-GGG-Gr*  z-title)r6  r$  r%  )r%  r$  r6  )	r#   r  rc   r:  r   r   r  r   order_by)r3   r  r>  
titles_asctitles_descs   &    r5   test_order_byTestManager.test_order_by	  s    ))11S!NNN%S!d^^AGFFH  UFG,<,<W,EFUUFG,<,<W,EFF
eHW-=-=h-GHeeHW-=-=h-GHH_,,,o--- ^s   $D,,D<	c                |   \         P                  P                  pVP                  R^^R7       VP                  R^^R7       VP                  R^^R7       VP                  R^ ^ R7       \        ;QJ d"    . R VP                  4        4       F  NK  	  5M! R VP                  4        4       4      p\        R4      ;_uu_ 4        \        ;QJ d"    . R VP                  4        4       F  NK  	  5M! R VP                  4        4       4      pR	R	R	4       VR
8X  g   Q hXR8X  g   Q hR	#   + '       g   i     L$; i)z&Check that meta ordering is rewritten.more_der   r   r   more_enmostleastc              3   8   "   T F  qP                   x  K  	  R # 5ir,   r  r(  s   & r5   r   1TestManager.test_order_by_meta.<locals>.<genexpr>
  s     @-Qjj-r*  r{   c              3   8   "   T F  qP                   x  K  	  R # 5ir,   r  r(  s   & r5   r   r8  
  s     !Dm**mr*  N)r5  r4  r2  r6  )r5  r2  r4  r6  )r#   r  rc   r:  r   r  r   r3   r  titles_for_entitles_for_des   &   r5   test_order_by_metaTestManager.test_order_by_meta
  s    ))11Y!qAY!qAVqA>WQ? @'++-@@'++-@@d^^!E!Dgkkm!DEE!Dgkkm!DDM   GGGG GGGG ^s   A	D++D;	c                   \         P                  P                  P                  4       pVP                  '       g   Q hVP                  4       P                  '       d   Q hVP                  R 4      P                  4       P                  '       d   Q hVP                  4       P                  R 4      P                  '       d   Q R4       hR# )r   z queryset is unexpectedly orderedN)r#   r  rc   r  orderedr,  rf   )r3   r  s   & r5   test_order_by_resetTestManager.test_order_by_reset
  s    $$,,002zzzz;;=(((((99W%..088888;;=''0888\:\\88r7   c                    \         P                  P                  pVP                  R ^^R7       VP                  R^^R7      pVP	                  R4      pW28X  g   Q hR# )r2  r3  r4  r   N)r#   r  rc   r:  latest)r3   r  
instance_2lainstanceances   &   r5   test_latestTestManager.test_latest
  sS    ))11Y!qA^^)qA^N
 -+++r7   c           	        VP                  R R 4      pVP                  RV4      p\        4       ;_uu_ 4        V! V/ VB ^ ,          p\        R4      ;_uu_ 4        V! V/ VB ^ ,          pRRR4       RRR4       V! X4      V8X  g   Q hV! X4      V8X  g   Q hR#   + '       g   i     L8; i  + '       g   i     LC; i)	transformc                     V # r,   r>   r5  s   &r5   <lambda>-TestManager.assert_fallback.<locals>.<lambda>&
  s    ar7   expected_der{   N)r   rM   r   )	r3   method	expected1argskwargsrJ  	expected2rS  r  s	   &&&*,    r5   assert_fallbackTestManager.assert_fallback%
  s    JJ{K8	JJ}i8	$)&)!,C$t.v.q1    
 ~***)+++    s#   #B.B	+B.B+&B..B>	c           
        \         P                  P                  pVP                  R RR7       R\	        4       8X  g   Q hV P                  VP                  RRR R7       V P                  VP                  RRRR7       V P                  VP                  RRR	R
4       \        RR7      ;_uu_ 4        V P                  VP                  R RRR R7       RRR4       \         P                  P                  pVP                  4        V P                  VP                  RRR R7       V P                  VP                  RRR4       R#   + '       g   i     Lz; i)r  r{   rc  r   r   c                     V R ,          # r   r>   rL  s   &r5   rM  2TestManager.test_values_fallback.<locals>.<lambda>5
  s    PQRYPZr7   )rJ  Tru  r   r   F)!MODELTRANSLATION_ENABLE_FALLBACKSc                     V R ,          # r   r>   rL  s   &r5   rM  rY  <
  s    STU\S]r7   )rO  rJ  Nr'  c                     V R ,          # r   r>   rL  s   &r5   rM  rY  C
  s    VWX_V`r7   r   )r{   r  r{   )r'  r'  )
r#   r  rc   r:  r   rU  rf   r  r   r(  r3   r  s   & r5   test_values_fallback TestManager.test_values_fallback0
  s   ))11T2|~%%%W^^T7FZ[W00$dKW002BGZYcd GG  GI] !  H &&..W^^ZL`aW002JGU[\ HGs   1"EE	c                   \         P                  P                  pVP                  R RR7      P                  pVP                  R4      ^ ,          pVP                  R4      ^ ,          p\        R4      ;_uu_ 4        VP                  R4      ^ ,          pVP                  R4      ^ ,          pRRR4       VR,          XR,          8X  g   Q hVR,          R 8X  g   Q hXR,          R8X  g   Q h\        VP                  RRR7      4      R .8X  g   Q h\        R4      ;_uu_ 4        \        VP                  RRR7      4      R.8X  g   Q h RRR4       VP                  \        R4      R7      P                  RRR	RR
7      w  pRpWx8X  g   Q hVP                  VP                  VP                  3V8X  g   Q h\        R4      ;_uu_ 4        \        VP                  RR	RR
7      4      R.8X  g   Q h RRR4       \        VP                  R4      P                  RRR7      4      p	\        R4      ;_uu_ 4        \        VP                  R4      P                  RRR7      4      p
RRR4       V	X
8X  g   Q hVP                  RRR7      pVP                  pR \!        4       8X  g   Q h\        VP                  R4      4      RR /RR/.8X  g   Q h\        R4      ;_uu_ 4        \        VP                  R4      4      RR/RR/.8X  g   Q h RRR4       \        VP                  \        R4      R7      P                  4       4      pVRVRR R	^ RRRR/RVRRR	^ RRRR/.8X  g   Q h\        VP                  4       4      VR ^ R3VR^ R3.8X  g   Q h\        R4      ;_uu_ 4        \        VP                  4       4      VR^ R3VR^ R3.8X  g   Q h RRR4       \        VP                  4       4      \        VP                  R4      P                  4       4      8X  g   Q hVP#                  4        \        VP                  4       4      RVRR RR RRR	^ R^ R^ RRRRRR/
.8X  g   Q h\        VP                  RRR7      P                  \%        R4      4      4      R .8X  g   Q h\        VP'                  VR7      P                  \)        R4      R7      P                  4       4      ^ ,          R,          V8X  g   Q h\        VP'                  VR7      P                  \)        R4      R7      P                  4       4      ^ ,          P+                  R4      V8X  g   Q h\        VP'                  VR7      P                  \)        R4      R7      P                  R4      4      ^ ,          V38X  g   Q h\        VP'                  VR7      P                  \)        R4      R7      P                  R4      4      ^ ,          P+                  R4       e   Q hR#   + '       g   i     ELZ; i  + '       g   i     EL; i  + '       g   i     EL@; i  + '       g   i     EL; i  + '       g   i     ELR; i  + '       g   i     EL; i)r   r{   rc  r   NTru  )	annotatedra  r   )namedFen2de2r   r  r   r   r   r   r  r  )r   )	custom_idre  )r   Tr   )r{   r   )r#   r  rc   r:  ra   r:  rf   r   r  r  annotater   r   ra  r   rd   r   r  r   re   r   r  )r3   r  id1raw_objrS  raw_obj2r  rk   expectedr6  r$  i2id2s   &            r5   test_valuesTestManager.test_valuesF
  s   ))11nndTn:==$$W-a0nnW%a(d^^))'215H>>'*1-D 
 w8G#44447|t###G}$$$ G''d';<FFFd^^++G$+?@TFJJJ 
 $$uT{$;GG[($ H 
	 #!!!f..>(JJJd^^++GXT+JKPY{ZZZ  '33G$3GHd^^W__U+77d7KLA Avv^^UU^;ee |~%%%GNN7+,'47EBR0SSSSd^^w/0gt_wPUFV4WWWW  g&&t&=DDFG3xM4VZ[3!]D+W[\
 
 	
 

 G'')*T1d/Cc5RSUYEZ.[[[[d^^++-.Cq$3G#uVWY]I^2____  G&&()T'//%2H2O2O2Q-RRRR
		G&&()cDD!QQt $ $.
 
 	
 
  G''d';DDU7^TUZ^Y____ GNNcN*33ag3FRRTUVWXY[\`cccc3'001T70CJJLMaPTTU`a	

 GNNcN*33ag3FRRSWXYZ[\a
 
 	
 
 3'001T70CJJ4PQRSTXX 	
k ^^ ^^ ^^
 ^^ ^^ ^^sH   ;1W="%X&X%4,X9(Y+Y!=X	X"	%X6	9Y
	Y	!Y2	c                Z   \         P                  ! R R7      P                  4        \         P                  ! R R7      P                  4        \        \         P                  P                  P                  4       P                  R4      P                  \        R4      4      4      R.8X  g   Q hR# )r  r   r   r   N)r  r}  )	r#   r   r  r  rc   r  r  rg  r   r   s   &r5   test_values_list_annotation'TestManager.test_values_list_annotation
  s    u%**,u%**,F$$,,002>>wGPPQVW[Q\]^c
 
 	
 
r7   c                p   \         P                  P                  pVP                  R RR7      P                  pVP                  R\        R\        4       R7      R7      ^ ,          pVP                  R\        R\        4       R7      R7      ^ ,          p\        R4      ;_uu_ 4        VP                  R\        R\        4       R7      R7      ^ ,          pVP                  R\        R\        4       R7      R7      ^ ,          pRRR4       VR,          XR,          8X  g   Q hVR,          VR,          8X  g   Q hVR,          R 8X  g   Q hVR,          \        V4      8X  g   Q hXR,          R8X  g   Q h\        VP                  R\        R\        4       R7      4      4      R \        V4      3.8X  g   Q h\        R4      ;_uu_ 4        \        VP                  R\        R\        4       R7      4      4      R\        V4      3.8X  g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     R# ; i)	r   r{   rc  r   ra   )output_field)str_pkNru  )r#   r  rc   r:  ra   r:  r   r   rf   r   r  r  r  )r3   r  rh  ri  rS  rj  r  s   &      r5   test_values_with_expressions(TestManager.test_values_with_expressions
  s   ))11nndTn:==$$WT$Y[5Y$Z[\]nnWT$Y[-QnRSTUd^^))'$tR[R]:^)_`abH>>'$t)+2V>WXYZD 
 w8G#4444x HX$66667|t###8}C(((G}$$$ G''d1UVW3s8\
 
 	
 
 d^^++GT$Y[5YZ[s3x `    ^! ^^  ^^s   %AHAH$H!	$H5	c                x   \         P                  ! RR7      pRVn        RVn        VP	                  4        \         P                  ! RR7      pRVn        RVn        VP	                  4        R\         P                  P
                  P                  4       8X  g   Q hR\        4       8X  g   Q h^\         P                  P
                  P                  4       8X  g   Q h\        R4      ;_uu_ 4        ^\         P                  P
                  P                  4       8X  g   Q h RRR4       R#   + '       g   i     R# ; i)	z-Test if user-defined manager is still workingr  r   enigmar  r  r   r{   N)
r#   CustomManagerTestModelr   r   r  rc   r  r   r  r   r  s   &  r5   test_custom_managerTestManager.test_custom_manager
  s    ))3

	))3

	 55==AACCCC |~%%%F1199??AAAAd^^55==CCEEEE ^^^s   -0D((D9	c                    ^ RI Hp \        P                  P                  P                  4       p\        W!4      '       g   Q hR# )z7Test if custom method also returns MultilingualQuerySetMultilingualQuerySetN)modeltranslation.managerr  r#   rz  rc   	custom_qsr  )r3   r  r  s   &  r5   &test_custom_manager_custom_method_name2TestManager.test_custom_manager_custom_method_name
  s0    A**22<<>"3333r7   c                0   ^ RI HpHp ^ RIHp \        V4      pRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q h\        VP                  V4      '       g   Q h\        VP                  V4      '       g   Q hR\        VP                  4      9   g   Q hR# )r   )GroupGroupManagerr    rY   r   r   get_by_natural_keyN)	django.contrib.auth.modelsr  r  r  r!   r^   r  rc   r   )r3   r  r  r!   r  s   &    r5   test_3rd_party_custom_manager)TestManager.test_3rd_party_custom_manager
  s    B@*51)))),,,,,,,,,,,,%--)<====%--6666#s5=='9999r7   c                   ^ RI p^ RIHp \        P                  P
                  P                  RR7       \        P                  P
                  P                  4       pVP                  V4      pVP                  V4      p\        WR4      '       g   Q h\        V4      \        V4      8X  g   Q h\        P                  P
                  P                  4        \        P                  P
                  P                  4       pVP                  V4      pVP                  V4      p\        WR4      '       g   Q h\        V\        P                  4      '       g   Q h\        V4      \        V4      8X  g   Q hR# )r   Nr~  r6  r   )pickler  r  r#   rz  rc   r:  r  dumpsloadsr  r  CustomManager2TestModelCustomQuerySet)r3   r  r  r  
serializeddeserializeds   &     r5   #test_multilingual_queryset_pickling/TestManager.test_multilingual_queryset_pickling
  s   A 	%%--4434?**22668\\"%
||J/,====Bx4---- 	&&..557++33779\\"%
||J/,====,(=(=>>>>Bx4----r7   c                l    ^ RI Hp \        P                  P                  p\        W!4      '       g   Q hR# )z7Test if managers other than ``objects`` are patched toor    N)r  r!   r#   rz  another_mgr_namer  )r3   r!   r  s   &  r5   test_non_objects_manager$TestManager.test_non_objects_manager
  s'    @//@@'7777r7   c                   \         P                  P                  P                  pRVP                  8X  g   Q h\        V\        4      '       g   Q h\        \         P                  P                  \        4      '       g   Q hR# )z8Test if default manager is still set from local managersrc   N)r#   CustomManagerChildTestModelrQ   default_managerrY   r  r!   translationsr]  s   & r5   =test_default_manager_for_inherited_models_with_custom_managerITestManager.test_default_manager_for_inherited_models_with_custom_manager  s_    44::JJGLL((('#67777&<<IIK^____r7   c                    \         P                  P                  P                  pR VP                  8X  g   Q h\        \         P                  P                  \        4      '       g   Q hR# )rc   N)r#   PlainChildTestModelrQ   r  rY   r  r  r!   r]  s   & r5   )test_default_manager_for_inherited_models5TestManager.test_default_manager_for_inherited_models  sK    ,,22BBGLL(((&44AACVWWWWr7   c                >   ^ RI HpHp \        P                  P
                  p\        V\        P                  4      '       g   Q h\        W14      '       g   Q hVP                  4       p\        V\        P                  4      '       g   Q h\        WB4      '       g   Q hR# )z.Test if user-defined queryset is still working)r!   r  N)
r  r!   r  r#   r  rc   r  CustomManager2r  r  )r3   r!   r  r  r  s   &    r5   test_custom_manager2 TestManager.test_custom_manager2  su    V0088'6#8#89999'7777[[]"f334444"3333r7   c                j   R\        4       8X  g   Q h\        P                  P                  P	                  RR7      pRVP
                  8X  g   Q hVP                  e   Q hRVP                  8X  g   Q h\        P                  P                  P	                  RR7      pRVP
                  8X  g   Q hVP                  e   Q hRVP                  8X  g   Q h\        P                  P                  P	                  RRR7      pRVP
                  8X  g   Q hVP                  e   Q hRVP                  8X  g   Q hR# )z&Test if field are rewritten in create.r   r  r   Nr  r  r  )r   r#   r  rc   r:  r   r   r   r  s   & r5   test_creationTestManager.test_creation(  s   |~%%%##++222?

"""zz!!! ##++22E2B

"""zz!!! ##++222O

"""zz!!!r7   c                
   \         P                  P                  P                  R4      P	                  RR7      pRVP
                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q h\         P                  P                  P                  R4      P	                  RRR7      pRVP
                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q hR\        4       8X  g   Q h\         P                  P                  P                  R4      P	                  RRR7      pRVP
                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q h\        R4      ;_uu_ 4        RVP                  8X  g   Q h R	R	R	4       R\        4       8X  g   Q h\         P                  P                  P	                  RR7      pRVP
                  8X  g   Q hVP                  e   Q hRVP                  8X  g   Q h\        RR
7      ;_uu_ 4        \        P                  RJ g   Q h\         P                  P                  P	                  RR7      pRVP
                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q h\         P                  P                  P                  R4      P	                  RR7      pRVP
                  8X  g   Q hVP                  e   Q hRVP                  8X  g   Q h R	R	R	4       \         P                  P                  pVP                  R4      P	                  RRR7      pRVP                  8X  g   Q hRVP
                  8X  g   Q hRVP                  8X  g   Q hRVP                  8X  g   Q h\        R4      ;_uu_ 4        VP                  R4      P	                  RRR7      pRVP                  8X  g   Q hVP
                  e   Q hRVP                  8X  g   Q hVP                  e   Q h R	R	R	4       \         P                  P                  pVP                  R4      P	                  RRR7      pRVP                  8X  g   Q hRVP
                  8X  g   Q hVP                  e   Q hRVP                  8X  g   Q h\        R4      ;_uu_ 4        VP                  R4      P	                  RRR7      pRVP                  8X  g   Q hVP
                  e   Q hRVP                  8X  g   Q hVP                  e   Q h R	R	R	4       R	#   + '       g   i     EL; i  + '       g   i     EL>; i  + '       g   i     ELE; i  + '       g   i     R	# ; i)zETest if language fields are populated with default value on creation.Tr  r   r  )r   r   r   r  r{   N)MODELTRANSLATION_AUTO_POPULATEFr  r   r  required)r#   r  rc   populater:  r   r   r   r   r   r*   r1   AUTO_POPULATEr  r  )r3   r   r  r>  s   &   r5   test_creation_population$TestManager.test_creation_population<  s   ##++44T:AAAN

"""

""" ##++44T:AAX]A^

"""

""" |~%%%##++44T:AAX]A^

"""

"""d^^AGG### |~%%% ##++222?

"""zz!!! &TJJ,,444''//66U6CAAJJ&&&AJJ&&&AGG### ''//88?FFUFSAAJJ&&&::%%%AGG### K $$,,KK	"))5)I

"""

"""((((((((((d^^I&--Eu-MAAJJ&&&::%%%A,,,,,##+++  $$,,KK
#**E*J

"""

"""'''(((((d^^J'..U.NAAJJ&&&::%%%A,,,,,##+++ ^] ^^ KJJ* ^^ ^^s3   =T*C)T>,A)U6A)U&*T;	>U	U#	&U7	c                J   \         P                  P                  pVP                  R4      P	                  RR7      w  r#VP                  R4      P	                  RR7      w  rEV'       g   Q hV'       d   Q hW$8X  g   Q hRVP
                  8X  g   Q hRVP                  8X  g   Q hR# )z.
Populate may be used with ``get_or_create``.
Tr0  r   N)r#   r  rc   r  get_or_creater   r   )r3   r  m1created1m2created2s   &     r5   test_get_or_create_population)TestManager.test_get_or_create_population  s     $$,,{{4(66U6C{{4(66U6Cx|xx######r7   c                f   \        R4      ;_uu_ 4        \        RR^ R7       \        P                  P                  P                  4       pVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  e   Q h RRR4       R#   + '       g   i     R# ; i)z
Test that a fixture with values only for the original fields
does not result in missing default translations for (original)
non-nullable fields.
r  loaddatafixture.jsonr  r  r  N)
r%   r   r#   r   rc   r  r   r   r   r   r  s   & r5   test_fixture_population#TestManager.test_fixture_population  s     :&&^qA  ((,,.A::&&&::&&&99%%%99$$$ '&&&s   B BB0	c           	     h   \        RR^ RR7       \        P                  P                  P	                  4       pVP
                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  e   Q h\        RR^ RR7       \        P                  P                  P	                  4       pVP
                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q h\        R4      ;_uu_ 4        \        RR^ R	R7       \        P                  P                  P	                  4       pVP
                  R8X  g   Q hVP                  e   Q hVP                  R8X  g   Q hVP                  e   Q h RRR4       R#   + '       g   i     R# ; i)
z2
Test that the loaddata command takes new option.
r  r  r  )r  r  r  r  Nr  F)
r   r#   r   rc   r  r   r   r   r   r%   r  s   & r5   #test_fixture_population_via_command/TestManager.test_fixture_population_via_command  sj    	Z1zR$$((*zzU"""zzU"""yyE!!!yy   Z1uM$$((*zzU"""zzU"""yyE!!!yyE!!! 5!!^q5Q  ((,,.A::&&&::%%%99%%%99$$$ "!!!s   A>F  F1	c                2   V'       d%   \         P                  P                  P                  M#\         P                  P                  P                  pV! V!  ^ ,          p\        R4      ;_uu_ 4        V! V!  ^ ,          pRRR4       RVP                  8X  g   Q hRXP                  8X  g   Q h\        R4      ;_uu_ 4        RVP                  8X  g   Q hRVP                  8X  g   Q h RRR4       R#   + '       g   i     L{; i  + '       g   i     R# ; i)r   r{   Nr   r   )r#   r   rc   deferonlyr   r   )r3   	use_deferr\   r  r  r  s   &&*   r5   assertDeferredTestManager.assertDeferred  s    4=&""**006CSCSC[C[C`C` #d^^V$Q'E U[[(((U[[(((d^^,,,,,, ^	 ^ ^^s   1C2 'D2D	D	c                F    \        VP                  4       4      ^ 8  g   Q hR# )r   N)r   get_deferred_fields)r3   items   &&r5   assertDeferredClassTestManager.assertDeferredClass  s    4++-.222r7   c                   \         P                  P                  P                  RRR7       \         P                  P                  P	                  R4      ^ ,          p\        V\         P                  4      '       g   Q hV P                  RR4       \        R4      ;_uu_ 4        V P                  RR4       V P                  RR4       V P                  RR4       V P                  RRR4       V P                  RRR4       V P                  RRR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RRR4       V P                  RRR4       V P                  RRR4       V P                  RRR	R
4       RRR4       R#   + '       g   i     R# ; i)z.
Check if ``only`` and ``defer`` are working.
r   r   r  Fr  r   r   Tr   r   N)r#   r   rc   r:  r  r  r  r%   r  s   & r5   test_deferredTestManager.test_deferred  sy    	  ''j'Q'',,Z8;$ 0 01111E:.5!!w/z2z2z:>w
;w
;v. g.j1j1j*=gz:gz:fgu=# "!!!s   #DF22G	c                j   \         P                  P                  P                  RRR7      p\	        R4      ;_uu_ 4        \         P
                  P                  P                  VR7       RRR4       \         P
                  P                  P                  R4      P                  R4      ^ ,          pV P                  VP                  4       RVP                  P                  8X  g   Q hRVP                  P                  P                  P                  R	4      ^ ,          P                  8X  g   Q h\        R
4      ;_uu_ 4        \         P
                  P                  P                  R4      P                  R4      ^ ,          pV P                  VP                  4       RVP                  P                  8X  g   Q hRVP                  P                  P                  P                  R	4      ^ ,          P                  8X  g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     R# ; i)zo
Check if ``select_related`` is rewritten and also
if ``only`` and ``defer`` are working with deferred classes
r   r   r  r  r  Nr  
test__textr   r{   )r#   r   rc   r:  r%   r  select_relatedr  r  r  r   r4   r  r   )r3   r  r  s   &  r5   test_deferred_fkTestManager.test_deferred_fk  s   
 ''..
Z.X5!!""**11t1< " %%--<<VDJJ<XYZ[  +TYY__,,,TYY0088==gFqIOOOOOd^^))11@@HNN|\]^_D$$TYY/000!4!4!<!<!A!A'!J1!M!S!SSSS	 ^ "!! ^^s   +HB?H!H	!H2	c                   \         P                  P                  P                  R RR7      p\	        R4      ;_uu_ 4        \         P
                  P                  P                  VR7       RRR4       \         P
                  P                  P                  R4      P                  R4      ^ ,          P                  p\         P                  P                  P                  R4      ^ ,          pVP                  VP                  J g   Q hR	\        VP                  4      9   g   Q hR
\        VP                  4      9   g   Q hR#   + '       g   i     L; i)r   r   r  r  r  Nr  r  r   r   r   )r#   r   rc   r:  r%   r  r  r  r  r4   r   )r3   r  item1item2s   &   r5   test_deferred_spanning"TestManager.test_deferred_spanning  s    ''..
Z.X5!!""**11t1< " &&..==fEKKLYZ[\aa  ((..v6q9%//111C0000C0000 "!s   +EE	c                   \         P                  P                  P                  R RR7       \         P                  P                  P	                  R4      ^ ,          pVP
                  R8X  g   Q hRVn        VP
                  R8X  g   Q hR# )r   r   r  r   blaN)r#   r   rc   r:  r  r   )r3   os   & r5   test_deferred_rule2TestManager.test_deferred_rule2  sm      ''j'Q$$))'215ww*$$$ww%r7   c                   \         P                  P                  P                  R RR7      p\	        R4      ;_uu_ 4        \         P
                  P                  P                  VR7       RRR4       \         P
                  P                  P                  4       pRV^ ,          P                  P                  9  g   Q hRVP                  R4      ^ ,          P                  P                  9   g   Q hRVP                  R4      P                  R4      ^ ,          P                  P                  9  g   Q hRVP                  4       ^ ,          P                  P                  9  g   Q hR#   + '       g   i     EL; i)r   r   r  r  )r  Nr  )
r#   r   rc   r:  r%   r  r  _statefields_cacher  )r3   r  fk_qss   &  r5   test_select_relatedTestManager.test_select_related
  s&   ''..
Z.X5!!""**11$1? " &&..224a < <<<<E00;A>EERRRRR''	2AA$GJQQ^^_	
_  4 4 6q 9 @ @ M MMMM "!!s   +E''E8	c                8   ^ RI HpHp R0V! \        P                  R4      8X  g   Q h0 R
mV! \        P                  R4      8X  g   Q h0 RmV! \        P                  R4      8X  g   Q h0 RmV! \        P                  R4      8X  g   Q h0 RmV! \        P                  R4      8X  g   Q h0 RmpW1! \        P                  R4      8X  g   Q h0 RmV! \        P                  R4      8X  g   Q hVP                  . RO4      V! \        P                  RR.4      8X  g   Q hR	# )r   )append_lookup_keyappend_lookup_keysr  r   r  	title__eq	test__smt	test__urluntrans__urlN>   r   r   r   >   r  r  r  >   r  title_de__eqtitle_en__eq>   r  test_de__smttest_en__smt>	   r  test__url_detest__url_entest_de__urltest_en__urltest_de__url_detest_de__url_entest_en__url_detest_en__url_en>   r  untrans__url_deuntrans__url_enrb  )r  r  r  r#   r  union)r3   r  r  big_sets   &   r5   !test_translation_fields_appending-TestManager.test_translation_fields_appending  s7   R{/0F0F	RRRR04E""G5
 
 	
 
 .1B6CYCY[a1bbbb<@Q""KA
 
 	
 
 =@Q""KA
 
 	
 


 +F,B,BKPPPPEIZ""NJ
 
 	
 
 }}>?CU""['$:D
 
 	
 
r7   c                |    \         P                  ! 4       pVP                  R 8X  g   Q hVP                  R8X  g   Q hR# )title_atitle_bN)r#   r  r  r  r  s   & r5   test_constructor_inheritance(TestManager.test_constructor_inheritance;  s4    $$&{{i'''{{i'''r7   c           	     t   \         P                  P                  pVP                  RRRRR7       VP                  RRRRR7       VP                  RR	RRR7       VP                  RR	RRR7       \        ;QJ d1    . R
 VP                  R4      P                  4        4       F  NK  	  5M*! R
 VP                  R4      P                  4        4       4      p\        R4      ;_uu_ 4        \        ;QJ d1    . R VP                  R4      P                  4        4       F  NK  	  5M*! R VP                  R4      P                  4        4       4      pRRR4       VR8X  g   Q hXR8X  g   Q h\        P                  R,          R,          R8X  Ed   \        ;QJ d3    . R VP                  RR4      P                  R4       4       F  NK  	  5M,! R VP                  RR4      P                  R4       4       4      p\        R4      ;_uu_ 4        \        ;QJ d3    . R VP                  RR4      P                  R4       4       F  NK  	  5M,! R VP                  RR4      P                  R4       4       4      pRRR4       VR8X  g   Q hVR8X  g   Q hR# R#   + '       g   i     ELM; i  + '       g   i     L:; i)z6Check that field names are rewritten in distinct keys.
title_1_en
title_1_de	desc_1_en	desc_1_de)r   r   r  r  	desc_2_en	desc_2_de
title_2_en
title_2_dec              3   8   "   T F  qP                   x  K  	  R # 5ir,   r   r(  s   & r5   r   ,TestManager.test_distinct.<locals>.<genexpr>`  s     T/S!gg/Sr*  r   r{   c              3   8   "   T F  qP                   x  K  	  R # 5ir,   r   r(  s   & r5   r   r  b  s     !X3Wa''3Wr*  Nr  ENGINEzdjango.db.backends.postgresqlc              3   R   "   T F  pVP                   VP                  3x  K  	  R # 5ir,   r  r(  s   & r5   r   r  l  s$      "SA !--(S   %'r  c              3   R   "   T F  pVP                   VP                  3x  K  	  R # 5ir,   r  r(  s   & r5   r   r  q  s$      &W WWamm,Wr  )r  r  r
  r
  )r  r  r  r  ))r  r  )r
  r  ))r  r  )r  r  )
r#   r  rc   r:  r   r,  r  r   r   	DATABASESr:  s   &   r5   test_distinctTestManager.test_distinctA  s`   ))11!!&&	 	 	
 	!!&&	 	 	
 	!!&&	 	 	
 	!!&&	 	 	
 Tw/?/?/H/Q/Q/STTw/?/?/H/Q/Q/STTd^^!E!X73C3CG3L3U3U3W!XEE!X73C3CG3L3U3U3W!XXM   XXXX XXXX $$Y/9=\\!E " ))'=AJJ7S"EE " ))'=AJJ7S" M $ % &$--g}ENNwW& &$--g}ENNwW& !   !$^^^^ $^^^^ ] ^^  s   (A'J
A+J'J$	'J7	c                >   \         P                  P                  P                  RRR7      pR\	        4       8X  g   Q h\         P                  P                  P                  \        R4      R7      P                  RRR	7      ^ ,          R8X  g   Q h\        R
4      ;_uu_ 4        \         P                  P                  P                  \        R4      R7      P                  RRR	7      ^ ,          R8X  g   Q h\         P                  P                  P                  \        \        R4      \        R4      \        R4      4      R7      P                  RRR	7      ^ ,          R8X  g   Q h\         P                  P                  P                  \        \        R4      \        \        R4      \        R4      4      4      R7      P                  RRR	7      ^ ,          R8X  g   Q h RRR4       \         P                  P                  P                  VR7       \         P                  P                  P                  VR7       \         P                  P                  P                  \        R4      4      P                  RRR	7      ^ ,          ^8X  g   Q hR#   + '       g   i     L; i)z%Test if annotating is language-aware.r   r   rc  r   r   )custom_titler  Tru  r{   value1ra  title_devalue1value2rT  title_detitle_devalueNr  r  test_fks__count)r#   r   rc   r:  r   rg  r   r  r   r   r   r  r   )r3   r  s   & r5   test_annotateTestManager.test_annotatey  sG   ''..
Z.X|~%%%$$--1W:-FRRT S  	

 d^^  ((11qz1JVV" W     ((11!''
E(OU8_!U 2 +n4+8< ***   ((11!''
F1W:uW~4V!W 2 +n4+8< +++ & 	&&--4-8&&--4-8$$--eJ.?@LL! M  	
- ^s   "D:JJ	r>   ),r?   r@   rA   rB   r|   r  r  r!  r/  r=  rA  rG  rU  r^  rn  rq  rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rD   rE   rF   rG   s   @@r5   r  r  	  s     "
'^Ra% .H"],	,],_
B
6F*4:.,8`X
	4 (F,P$%%6	-3>8T&
1 N 
D(6_p%
 %
r7   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )TranslationModelFormTesti  c                     ! R  R\         4      pV! 4       p\        VP                  4      . RO8X  g   Q h\        VP                  4      . RO8X  g   Q hR# )c                   *    ] tR tRt ! R R4      tRtR# );TranslationModelFormTest.test_fields.<locals>.TestModelFormi  c                   2    ] tR tRt]P
                  tRtRtR# )@TranslationModelFormTest.test_fields.<locals>.TestModelForm.Metai  __all__r>   N)	r?   r@   rA   rB   r#   r   rV   r\   rD   r>   r7   r5   Metar$    s    (("r7   r&  r>   Nr?   r@   rA   rB   r&  rD   r>   r7   r5   TestModelFormr"    s    # #r7   r(  N)r   r   r   r   r   r   r   r   r   r   r   r   rn  rp  ro  )r   r   r   r   rn  )r   r  base_fieldsr\   )r3   r(  forms   &  r5   r   $TranslationModelFormTest.test_fields  sT    	#0 	#
 D$$% *
 
 	
 
" DKK $XXXXr7   c           
         ! R R\         P                  4      p\        P                  P                  P                  RR7      pV! RRRRR	RR
R/VR7      pVP                  4       pR\        4       8X  g   Q hRVP                  8X  g   Q hR# )zx
Can we update the current language translation with an empty value, when
the original field is excluded from the form?
c                   *    ] tR tRt ! R R4      tRtR# )ETranslationModelFormTest.test_updating_with_empty_value.<locals>.Formi  c                   2    ] tR tRt]P
                  tRtRtR# )JTranslationModelFormTest.test_updating_with_empty_value.<locals>.Form.Metai  r>   N)r   rn  )	r?   r@   rA   rB   r#   r   rV   excluderD   r>   r7   r5   r&  r0    s    ((5r7   r&  r>   Nr'  r>   r7   r5   Formr.    s    6 6r7   r2  	something)r   r   r  r   r6  r   r   )ri   r{   N)	r   	ModelFormr#   r   rc   r:  r  r   r   )r3   r2  ri   r*  s   &   r5   test_updating_with_empty_value7TranslationModelFormTest.test_updating_with_empty_value  s    	65?? 	6
 ##++22;2GGS*b*bIT\
 99;|~%%%X%%%%%r7   r>   N)r?   r@   rA   rB   r   r5  rD   rE   ru  s   @r5   r  r    s     Y4& &r7   r  c                   &   a  ] tR tRt o R tRtV tR# )ProxyModelTesti  c                \   \         P                  P                  P                  R R7      p\         P                  P                  P                  R R7      pVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hVP                  VP                  8X  g   Q hR# )r  r   N)	r#   r   rc   r:  ProxyTestModelr  r   r   r   r  s   &  r5   test_equalityProxyModelTest.test_equality  s    $$++'+:!!))--G-<ww!''!!!zzQZZ'''zzQZZ'''r7   r>   N)r?   r@   rA   rB   r;  rD   rE   ru  s   @r5   r8  r8    s     ( (r7   r8  c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestRequiredi  c                `    V P                   P                  V4      P                  '       d   Q hR # r,   r  r   blankr3   rE  s   &&r5   assertRequiredTestRequired.assertRequired  s&    99&&z2888888r7   c                `    V P                   P                  V4      P                  '       g   Q hR # r,   r@  rB  s   &&r5   assertNotRequiredTestRequired.assertNotRequired  s#    yy"":.44444r7   c                   \         P                  P                  V n        V P	                  R 4       V P	                  R4       V P	                  R4       V P                  R4       V P	                  R4       V P	                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R	4       V P                  R
4       V P	                  R4       \         P                  ! 4       pRVn        RVn         VP                  4        V P                  R4       R#   \         d:   p\        TP                  P                  4       4      p0 RmT8X  g   Q h Rp?R# Rp?ii ; i)non_req
non_req_en
non_req_dereqreq_enreq_dereq_reg
req_reg_en
req_reg_de
req_en_regreq_en_reg_enreq_en_reg_der/  defzValidationError not raised!N>   rR  rP  rS  )r#   RequiredModelrQ   r  rF  rC  rL  rO  r  r  r	   rP   r  rg   )r3   r  r  error_fieldss   &   r5   test_requiredTestRequired.test_required  s:   ((..	 	y)|,|, 	E"x(x( 	I&L)L) 	L)O,/ ##%	5OO
 II34	  	Qq~~2245L@LPPP	Qs   D3 3E7>.E22E7)r  N)	r?   r@   rA   rB   rC  rF  rX  rD   rE   ru  s   @r5   r>  r>    s     95!5 !5r7   r>  c                   &   a  ] tR tRt o R tRtV tR# )M2MTesti  c                   \         P                  P                  P                  R RR7      p\         P                  P                  P                  RRR7      p\         P                  P                  P                  RR7      p\         P
                  P                  P                  WR7       \         P
                  P                  P                  W#R7       \        R4      ;_uu_ 4        \         P                  P                  P                  R R7      p^VP                  4       8X  g   Q h\         P                  P                  P                  RR7      p^VP                  4       8X  g   Q h\         P                  P                  P                  RR7      p^ VP                  4       8X  g   Q hVP                  P                  RR	7      pW'9   g   Q h R
R
R
4       R
#   + '       g   i     R
# ; i)r  r  )r   r   bazy1r   )model_xmodel_yr   )xs__namer  N)
r#   ModelXrc   r:  ModelYModelXYr   re   r  xs)r3   x1x2r6  y_fooy_bary_bazx_bars   &       r5   test_m2mM2MTest.test_m2m  sa    ]]""))%)G]]""))%)GMM!!((t(4%%b%<%%b%<d^^MM))00%0@E%%% MM))00%0@E%%% MM))00%0@E%%% DDKKUK+E;; ^^^s   (C(GG,	r>   N)r?   r@   rA   rB   rl  rD   rE   ru  s   @r5   r[  r[    s      r7   r[  c                   &   a  ] tR tRt o R tRtV tR# )InheritedPermissionTestCasei   c                   ^ RI HpHp ^ RIHp ^RIHp \        VP                  V4      '       d   Q R4       h\        VP                  V4      '       g   Q R4       hVP                  P                  4        \        VP                  V4      '       d   Q R4       hVP                  P                  RRR7      pVP                  R	4       R
# )zThis fails with 0.13b.)
PermissionUserr    )InheritedPermissionz'Permission is using MultilingualManagerz4InheritedPermission is not using MultilingualManager123T)username	is_active	test_permN)r  rq  rr  r  r!   r#   rs  r  rc   rQ   _expire_cacher:  has_perm)r3   rq  rr  r!   rs  users   &     r5   test_managers_failure1InheritedPermissionTestCase.test_managers_failure!  s    ?@/j002EFF 	
5	
F -557JKK 	
B	
K 	&&(j002EFF 	
5	
F ||""ET"Bk"r7   r>   N)r?   r@   rA   rB   r{  rD   rE   ru  s   @r5   ro  ro     s     # #r7   ro  )`r  r/   r  r  r   r  r   rr   r   r   djangor   django.appsr   r   django.confr   r   django.core.exceptionsr   r	   django.core.files.baser
   django.core.files.storager   django.core.managementr   django.core.management.baser   rz  r   django.db.modelsr   r   r   r   r   django.db.models.functionsr   r   django.testr   r   django.test.utilsr   django.utils.translationr   r   r   r   modeltranslationr   r1   modeltranslation.formsr   r  r!   modeltranslation.modelsr"   modeltranslation.testsr#   r$   r  r%   r&   r'   r(   r   r*   rM   r^   rl   rn   r   r   r   rw  r  r  r  rE  r  r  r?  r]  ro  r  r  r  r  r  r  r8  r>  r[  ro  r>   r7   r5   <module>r     s     	  
  :   + 3 H . 5 / 4 $ : : 3 5 / G G ' ' 4 7 8 0 6  	&0 	&%0*= 0<	x)L 	I/ IXI
3 I
X&I &z*, z*zg,- g,TX)3 X)vK\3 K\\aM- aMHO*. O*d?
 8 ?
D@
 8 @
F;R 8 ;R|m
2 m
`q
3 q
h"+C "<s;0 s;lu
* u
p,&7 ,&^(- ((5+ (5V& 8#": #r7   