+
    Tj@                         ^ RI t ^ RIt^ RI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 ^ RIHt ^ R	IHt R
t ! R R4      tR# )    N)StringIO)apps)settings)serializers)router)atomic)RemovedInDjango70Warning)import_stringtest_c                      a  ] tR t^t o RtR tR tR tR tRR lt	R t
R	 tR
 tR tR tRR ltRR ltRR ltR tRR ltRR ltR tR tR tR tR tRtV tR# )BaseDatabaseCreationzg
Encapsulate backend-specific differences pertaining to creation and
destruction of the test database.
c                    Wn         R # N
connection)selfr   s   &&U/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/backends/base/creation.py__init__BaseDatabaseCreation.__init__   s    $    c                
    V = R # r   r   r   s   &r   __del__BaseDatabaseCreation.__del__   s    Or   c                6    V P                   P                  4       # r   )r   _nodb_cursorr   s   &r   r   !BaseDatabaseCreation._nodb_cursor   s    ++--r   c                n    \         P                  P                  V\        P                  ,           4       R # r   )sysstderrwriteoslinesep)r   msgs   &&r   logBaseDatabaseCreation.log"   s    

rzz)*r   Nc                   ^ RI Hp V P                  4       pV^8  d5   RpV'       d   RpV P                  V: RV P	                  W4      : R24       V P                  WV4       V P                  P                  4        V\        P                  V P                  P                  ,          R&   W`P                  P                  R&    V P                  P                  R,          R,          R	J dI   \        P                  p\        P                  ! 4        U	u/ uF  qP                  R
bK  	  up	\        n        V! R\!        V^,
          ^ 4      R	V P                  P                  RR7       V P                  P                  R,          R,          R	J d   X\        n        TeE   \"        P$                  ! R^\&        R7       T'       d    T P)                  4       T P                  n        T! RT P                  P                  R7       T P                  P-                  4        \.        P0                  P3                  R4      R8X  d   T P5                  4        T# u up	i   T P                  P                  R,          R,          R	J d   X\        n        i i ; i)z
Create a test database, prompting the user for confirmation if the
database already exists. Return the name of the test database created.
)call_commandCreatingzUsing existing test database for alias ...NAMETESTMIGRATEFNmigrateT)	verbosityinteractivedatabase
run_syncdbzDatabaseCreation.create_test_db(serialize) is deprecated. Call DatabaseCreation.serialize_test_db() once all test databases are set up instead if you need fixtures persistence between tests.)
stacklevelcategorycreatecachetable)r2   RUNNING_DJANGOS_TEST_SUITEtrue)django.core.managementr(   _get_test_db_namer%   _get_database_display_str_create_test_dbr   closer   	DATABASESaliassettings_dictMIGRATION_MODULESr   get_app_configslabelmaxwarningswarnr	   serialize_db_to_string_test_serialized_contentsensure_connectionr"   environget mark_expected_failures_and_skips)
r   r0   autoclobber	serializekeepdbr(   test_database_nameactionold_migration_modulesapps
   &&&&&     r   create_test_db#BaseDatabaseCreation.create_test_db'   s    	8!335>F)HH 229Q 	YV<<N4??001&90B%%f-	C,,V4Y?5H(0(B(B%/3/C/C/E./EIItO/E.* i!mQ/!.. ,,V4Y?5H-B*  MMM 1 //1 9 	'$//2G2GH 	))+::>>676A113!!Y. ,,V4Y?5H-B* Is   AI I)>I I 6Jc                F    VR,          V P                   P                  R&   R# )zh
Set this database up to be used in testing as a mirror of a primary
database whose settings are given.
r,   N)r   r@   )r   primary_settings_dicts   &&r   set_as_test_mirror'BaseDatabaseCreation.set_as_test_mirror}   s    
 1Ff0M%%f-r   c                   a  V 3R lp\        4       p\        P                  ! RV! 4       RVR7       VP                  4       # )z
Serialize all data in the database into a JSON string.
Designed only for test runner usage; will not handle large
amounts of data.
c               3   "  <"   ^ RI Hp  V ! SP                  4      p\        P                  ! 4        EFU  pVP
                  f   K  VP                  VP                  9   g   K1  VP                  \        P                  9  g   KR  VP                  4        F  pVP                  P                  SP                  4      '       g   K0  \        P                  ! SP                  P                   V4      '       g   Kc  VP"                  P%                  SP                  P                   4      P'                  VP                  P(                  P                  4      pVP*                  '       d   RMRpVP-                  VR7       Rj  xL
  K  	  EKX  	  R#  L5i)r   )MigrationLoaderNi  )
chunk_size)django.db.migrations.loaderr\   r   r   rB   models_modulerC   migrated_appsnamer   TEST_NON_SERIALIZED_APPS
get_models_metacan_migrater   allow_migrate_modelr?   _base_managerusingorder_bypk_prefetch_related_lookupsiterator)r\   loader
app_configmodelquerysetr]   r   s         r   get_objects@BaseDatabaseCreation.serialize_db_to_string.<locals>.get_objects   s     C$T__5F"224
,,8"((F,@,@@"x/P/PP!+!6!6!8 ;;22 OO $889N9NPUVV',':':'@'@ $ 5 5(&hu{{~~':':; % )1(J(J(JPT ' (0'8'8J'8'OOO "9 5  Ps6   =FF"F;F.F6A-F$F=F>FjsonN)indentstream)r   r   rN   getvalue)r   rq   outs   f  r   rG   +BaseDatabaseCreation.serialize_db_to_string   s4    	P. jfkmDM||~r   c           
     f   \        V4      p\        4       p\        V P                  P                  R7      ;_uu_ 4        V P                  P                  4       ;_uu_ 4        \        P                  ! RWP                  P                  R7       FL  pVP                  4        VP                  VP                  P                  P                  P                  4       KN  	  RRR4       V P                  P                  VR7       RRR4       R#   + '       g   i     L6; i  + '       g   i     R# ; i)z_
Reload the database with data from a string generated by
the serialize_db_to_string() method.
)rh   rs   N)table_names)r   setr   r   r?   constraint_checks_disabledr   deserializesaveaddobject	__class__rd   db_tablecheck_constraints)r   datarz   objs   &&  r   deserialize_db_from_string/BaseDatabaseCreation.deserialize_db_from_string   s    
 ~e$////00 ;;==&22D(=(=C HHJOOCJJ$8$8$>$>$G$GH	 > OO--+-F 10 >= 100s$   #D!A=D	$DDDD0	c                d    RV P                   P                  : RV^8  d   RV,          : 2# R: 2# )zB
Return display string for a database for use in various actions.
'z ('%s') )r   r?   )r   r0   database_names   &&&r   r;   .BaseDatabaseCreation._get_database_display_str   s<    
 OO!!+4>Y&A
 	
?AA
 	
r   c                    V P                   P                  R,          R,          '       d%   V P                   P                  R,          R,          # \        V P                   P                  R,          ,           # )z
Internal implementation - return the name of the test DB that will be
created. Only useful when called from create_test_db() and
_create_test_db() and when no external munging is done with the 'NAME'
settings.
r-   r,   )r   r@   TEST_DATABASE_PREFIXr   s   &r   r:   &BaseDatabaseCreation._get_test_db_name   sR     ??((088??008@@#doo&C&CF&KKKr   c                6    VP                  R V,          4       R# )z%CREATE DATABASE %(dbname)s %(suffix)sN)execute)r   cursor
parametersrO   s   &&&&r   _execute_create_test_db,BaseDatabaseCreation._execute_create_test_db   s    >KLr   c           
        V P                  4       pRV P                  P                  P                  V4      RV P	                  4       /pV P                  4       ;_uu_ 4       p V P                  WeV4       RRR4       T#   \         Ed4   pT'       d   Tu Rp?uuRRR4       # T P                  RT,          4       T'       g   \        RT,          4      pT'       g   XR8X  d    T^8  d&   T P                  RT P                  Y4      : R24       TP                  R	T,          4       T P                  YeT4        Rp?L  \         d>   pT P                  R
T,          4       \        P                  ! ^4        Rp? Rp?ELRp?ii ; iT P                  R4       \        P                  ! ^4        Rp?ELDRp?ii ; i  + '       g   i     T# ; i)z6
Internal implementation - create the test db tables.
dbnamesuffixNz+Got an error creating the test database: %szXType 'yes' if you would like to try deleting the test database '%s', or 'no' to cancel: yesz'Destroying old test database for alias r+   zDROP DATABASE %(dbname)sz-Got an error recreating the test database: %szTests cancelled.)r:   r   ops
quote_namesql_table_creation_suffixr   r   	Exceptionr%   inputr;   r   r   exit)	r   r0   rM   rO   rP   test_db_paramsr   econfirms	   &&&&     r   r<   $BaseDatabaseCreation._create_test_db   s    "335doo))445GHd446

   F  ,,VVL !F "!A    -- !  FJK"#=?QRG 'U"2$$> HH %)$B$B(1%&!" 'AN'RS44VVTT$ $!PST!TU$ HH/0HHQKK=  ! F "!s    G "A>>F=
	F8F=G #F8F8F8%AE ;G  F	.F	9F8=G F	*F82G 8F==G  G	c                    V P                   P                  R,          pV^8  d5   RpV'       d   RpV P                  V: RV P                  W%4      : R24       V P	                  WV4       R# )z
Clone a test database.
r,   zCloning test databasezUsing existing clonez for alias r+   N)r   r@   r%   r;   _clone_test_db)r   r   r0   rM   rO   source_database_namerQ   s   &&&&&  r   clone_test_db"BaseDatabaseCreation.clone_test_db  sc      $<<VD>,F/HH 229S 	Fv6r   c                l    V P                   P                  p/ VCRRP                  VR,          V4      /C# )zH
Return a modified connection settings dict for the n-th clone of a DB.
r,   z{}_{})r   r@   format)r   r   orig_settings_dicts   && r   get_test_db_clone_settings/BaseDatabaseCreation.get_test_db_clone_settings  sA     "__::
 
GNN#5f#=vF
 	
r   c                    \        R4      h)z9
Internal implementation - duplicate the test db tables.
znThe database backend doesn't support cloning databases. Disable the option to run tests in parallel processes.)NotImplementedError)r   r   r0   rO   s   &&&&r   r   #BaseDatabaseCreation._clone_test_db%  s     "E
 	
r   c                   V P                   P                  4        Vf   V P                   P                  R,          pMV P                  V4      R,          pV^8  d5   RpV'       d   RpV P	                  V: RV P                  W%4      : R24       V'       g   V P                  WR4       VeI   V\        P                  V P                   P                  ,          R&   WP                   P                  R&   R# R# )z^
Destroy a test database, prompting the user for confirmation if the
database already exists.
Nr,   
Destroying
Preservingr*   r+   )
r   r=   r@   r   r%   r;   _destroy_test_dbr   r>   r?   )r   old_database_namer0   rO   r   rP   rQ   s   &&&&&  r   destroy_test_db$BaseDatabaseCreation.destroy_test_db.  s     	>!%!>!>v!F!%!@!@!H!P>!F%HH 229Q !!"4@ (@QHt445f=4EOO))&1 )r   c                    V P                  4       ;_uu_ 4       pVP                  RV P                  P                  P	                  V4      ,          4       RRR4       R#   + '       g   i     R# ; i)z6
Internal implementation - remove the test db tables.
zDROP DATABASE %sN)r   r   r   r   r   )r   rP   r0   r   s   &&& r   r   %BaseDatabaseCreation._destroy_test_dbQ  sN       FNN"T__%8%8%C%CDV%WW !   s   <AA0	c           	        ^ RI HpHp V P                  P                  P
                   Fn  pVP                  R4      w  rEpVP                  R4      ^ ,          pV\        P                  9   g   KF  \        V4      p\        W4      p	\        WV! V	4      4       Kp  	  V P                  P                  P                  P                  4        F  w  rV Ft  pVP                  R4      w  rEpVP                  R4      ^ ,          pV\        P                  9   g   KF  \        V4      p\        W4      p	\        WV! V
4      ! V	4      4       Kv  	  K  	  R# )z
Mark tests in Django's test suite which are expected failures on this
database and test which should be skipped on this database.
)expectedFailureskip.N)unittestr   r   r   featuresdjango_test_expected_failures
rpartitionsplitr   INSTALLED_APPSr
   getattrsetattrdjango_test_skipsitems)r   r   r   	test_nametest_case_name_test_method_nametest_app	test_casetest_methodreasontestss   &           r   rL   5BaseDatabaseCreation.mark_expected_failures_and_skips^  s    	311OOI2;2F2Fs2K/N/ s+A.H8222).9	%iB	_[5QR P "__55GGMMOMF"	6?6J6J36O3#3$??3/2 x666 -n =I"))"FKIfk9RS # Pr   c                    R# )zA
SQL to append to the end of the test table creation statements.
r    r   s   &r   r   .BaseDatabaseCreation.sql_table_creation_suffixy  s     r   c                    V P                   P                  pVR,          VR,          VR,          V P                  4       3# )z
Return a tuple with elements of self.connection.settings_dict (a
DATABASES setting value) that uniquely identify a database
accordingly to the RDBMS particularities.
HOSTPORTENGINE)r   r@   r:   )r   r@   s   & r   test_db_signature&BaseDatabaseCreation.test_db_signature  sA     55&!&!(#""$	
 	
r   c                    V P                  \        V4      4      pV P                  P                  P	                  V4       V P                  P                  4        R # r   )r   strr   r@   updater=   )r   
_worker_idr@   s   && r   setup_worker_connection,BaseDatabaseCreation.setup_worker_connection  s@    77JH
 	%%,,];r   r   )   FNF)F)r   FF)Nr   FN)__name__
__module____qualname____firstlineno____doc__r   r   r   r%   rT   rX   rG   r   r;   r:   r   r<   r   r   r   r   r   rL   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     
%.+
T"lN!FG*
	LM-"^7,

!FFT6
   r   r   )r"   r   rE   ior   django.appsr   django.confr   django.corer   	django.dbr   django.db.transactionr   django.utils.deprecationr	   django.utils.module_loadingr
   r   r   r   r   r   <module>r      s:    	 
      #  ( = 5  A  A r   