bgddlZddlmZddlmZddlmZddlmZddlmZdd lm Z dd l m Z dd l m Z dd l m Z dd l m Z ddl mZddl mZddl mZGddeeZdS)N)Column)Integer)MetaData)Table)AutogenFixtureTest)testing)config)eq_) exclusions)is_)is_true)mock)TestBaseceZdZdZdZdZdZejdddde j j d Z ejd d d d e j j fdZe j jdZdS)AutogenerateComputedTest)computed_columnsTc t}t}td|tdtdtd|tdtdtdtt jd|||}t|dddt|dd dt|dd jd|dd j }tt|tjt|j dtt|jddS) NuseridT primary_keyfoo5r add_columnr )rrrrsaComputed_fixturer namecomputedr isinstancer persistedstrsqltextselfm1m2diffscs |/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/alembic/testing/suite/test_autogen_computed.pytest_add_computed_columnz1AutogenerateComputedTest.test_add_computed_columns2 ZZ ZZ fb&wDAAABBB   4d 3 3 3 5'2;s#3#3 4 4     b"%% E!HQK&&& E!HQK    E!HQK e$$$ !HQK  1bk**+++ AK C NNC     c Ht}t}td|tdtdtdtt jdtd|tdtd|||}t|dddt|dd d|dd }t|jdtj j j r-tt|jtjnt!|jdtj jj rZtt|jtjtt)|jjjddStj j j r.tt|jtjdSt!|jddS) NrrTrrrr remove_columnrr )rrrrrrr r r!r requirementscomputed_reflects_normallyenabledrr#r"r#computed_reflects_as_server_defaultserver_default DefaultClauser%argtextr's r-test_remove_computed_columnz4AutogenerateComputedTest.test_remove_computed_column.s ZZ ZZ   4d 3 3 3 5'2;s#3#3 4 4     fb&wDAAABBB b"%% E!HQK))) E!HQK   !HQK AFE   9 A " Jqz2;77 8 8 8 8  D ! ! !   B J " Jq/1ABB C C C A$(-.. 4 4 4 4 4  ; C " Jqz2;77 8 8 8 8 8  D ! ! ! ! !r/c.dtjdfSNbar*5rrr/r-z!AutogenerateComputedTest.Psr{7++,r/c.tjddfSr<r>r?r/r-r@z!AutogenerateComputedTest.Qs"+g&&-r/cVtjdtjddfS)Nr=bar * 42T)r$r>r?r/r-r@z!AutogenerateComputedTest.Rs( K K d 3 3 3 r/cRtjdtjdfS)Nr=rCr>r?r/r-r@z!AutogenerateComputedTest.VsW%%r{:'>'>?r/c tj|fit\}}t}t}|gn|g}|gn|g}t d|t dt dt dt t dt g|Rt d|t dt dt dt t dt g|Rtjd5}| ||}dddn #1swxYwYt|j tj dgtt|gdS) NrrTrbarralembic.util.warnz/Computed default on user.foo cannot be modified)r resolve_lambdalocalsrrrrrpatchr r mock_callscalllistr( test_case arg_before arg_afterr)r* mock_warnr+s r-!test_cant_change_computed_warningz:AutogenerateComputedTest.test_cant_change_computed_warningOs!( 6y M MFHH M M I ZZ ZZ%-RRJ< #+BB)    4d 3 3 3 5' " " 5' /J / / /        4d 3 3 3 5' " " 5' .I . . .    Z+ , , * MM"b))E * * * * * * * * * * * * * * *  YH I I J   DKK8DD"DcdS)N)NNr?r?r/r-r@z!AutogenerateComputedTest.|s r/cRtjdtjdfS)Nrr>r?r/r-r@z!AutogenerateComputedTest.}sS!!2;s#3#34r/cRtjdtjdfSr<r>r?r/r-r@z!AutogenerateComputedTest.~sW%%r{7';';<r/c.tjddfSr<r>r?r/r-r@z!AutogenerateComputedTest.sR[))40r/c tj|fit\}}t}t}|gn|g}|gn|g}t d|t dt dt dt t dt g|Rt d|t dt dt dt t dt g|Rtjd5}| ||}dddn #1swxYwYt|j gtt|gdS)NrrTrrFrrG) r rHrIrrrrrrJr r rKrMrNs r-test_computed_unchangedz0AutogenerateComputedTest.test_computed_unchanged{s!( 6y M MFHH M M I ZZ ZZ%-RRJ< #+BB)    4d 3 3 3 5' " " 5' /J / / /        4d 3 3 3 5' " " 5' .I . . .    Z+ , , * MM"b))E * * * * * * * * * * * * * * * I "%%% DKKrTc ^t}t}td|tdtdtdttdtt jdtd|tdtdtdttdt|||}t|dddd t|ddd dt|ddd d|ddd }|ddd }t|dtt|tj tj tdr)tt|jjddStj tdr)tt|jjddSdS)zAsserts the current behavior which is that on PG and Oracle, the GENERATED ALWAYS AS is reflected as a server default which we can't tell is actually "computed", so these come out as a modification to the server default. rrTrrFrzbar + 42rmodify_defaultrr N postgresqlz (bar + 42)oraclez"BAR"+42)rrrrrrr r rrr#r7r againstr r%r8r9)r(r)r*r+oldnews r-(test_remove_computed_default_on_computedzAAutogenerateComputedTest.test_remove_computed_default_on_computedsZZ ZZ   4d 3 3 3 5' " " 5'2;z#:#: ; ;        4d 3 3 3 5' " " 5' " "     b"%% E!HQKN,--- E!HQKNF### E!HQKNE"""Ahqk"oAhqk"o C 3 011222  fl 3 3 / CGL!!< 0 0 0 0 0   1 1 / CGL!!: . . . . . / /r/N)__name__ __module__ __qualname__ __requires__ __backend__r.r:r combinationsr r2r3rS)computed_doesnt_reflect_as_server_defaultrZr5rdr?r/r-rrs(LK!!!0"""BW,, - -   @? 3  43 DW44<< 0 0   I < <(/(/=<(/(/(/r/r) sqlalchemyrrrrr_autogen_fixturesrr r r r rrrrrr?r/r-ros<111111!!!!!!y/y/y/y/y/18y/y/y/y/y/r/