Ϫf#ddlZddlZddlmZddlmZddlmZddlm Z ddl m Z Gdde jZ d d d d d gd d igZGd d ZGdde j Zy)N)dedent)sob) Ephemeral) components)unittestc eZdZy)DummyN__name__ __module__ __qualname__7/usr/lib/python3/dist-packages/twisted/test/test_sob.pyr r rr hello)rrc eZdZy) FakeModuleNr rrrrrrrrcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) PersistTestsctD]~}tj|d}djD]S}|j ||j d|ztj d|z|}|j||Uy)N source picklez persisttest.filename)objectsr PersistentsplitsetStylesaveload assertEqual)selfopstyleo1s r testStyleszPersistTests.testStyles!s} (Aq"%A(..0 ( 5! 67XXnu4e<  B'  ( (rc,t}d|_|jtjtj |ddj D]}tj|j|tj|jd|ztjd|z|}|j|j|j|jtj|j|y)Nlalarzlala.r) r foo setComponentr IPersistablerrr r!r"r#r')r$r%r'r(s rtestStylesBeingSetzPersistTests.testStylesBeingSet*s G s''6)BC$**, @E   Q  ( ( /   Q  $ $go $ >'E/51B   QUUBFF +   S--b177 ?  @rcvtjdd}|jt|jddy)z? Calling save() with a passphrase is an error. Nobjectzfilename.pickleabc) passphrase)r Persistant assertRaises TypeErrorr!)r$r&s rtestPassphraseErrorz PersistTests.testPassphraseError5s0 NN4 * )QVV->5Qrcgd}tj|d}djD]}|j||j tj d|dz|}|j ||djD]G}|j |tj d|zdz|dz|}|j ||Iy) Nrr2rz object.tarz lala lolozobject-z.ta)rrrr r!r"r#)r$r%r&r'r(tags r testNameszPersistTests.testNames<s  NN1h '$**, (E JJu  FFH+a0%8B   Q #"((* (s XXi#o5a@%H  B' (  (rctdd5}|jddddtjdd}|j |gdy#1swY4xYw)Nzpersisttest.pythonwz foo=[1,2,3] r-r:)openwriterloadValueFromFiler#)r$fr%s r testPythonzPersistTests.testPythonIsS & , $ GGN # $  ! !"6 > I& $ $s AAcT|jttjd|j dtjd|j dtjd|j dtjd|j dtjd|j dtjd|j d tjd |j d tjd y) Nz file.blahpythonzfile.pyzfile.tacz file.etacpicklezfile.tapz file.etapsourcezfile.tasz file.etas)r6KeyErrorr guessTyper#r$s rtestTypeGuesserzPersistTests.testTypeGuesserOs (CMM;? 3==#;< 3==#<= 3==#=> 3==#<= 3==#=> 3==#<= 3==#=>rcTd|j_|j}tj|tj j |d}dat|d5}|jtddddtj|d}|j|t|j|dd|j|dd |jtt |jtj"t by#1swYxYw) z L{_EverythingEphermal.__getattr__} will proxy the __main__ module as an L{Ephemeral} object, and during load will be transparent, but after load will return L{Ephemeral} objects from any accessed attributes. rzpersisttest.ee_getattrNr@a app = [] import __main__ app.append(__main__.testMainModGetattr == 1) try: __main__.somethingElse except AttributeError: app.append(True) else: app.append(False) from twisted.test import test_sob test_sob.mainWhileLoading = __main__ rIrzExpected attribute not set.zUnexpected attribute set.)fakeMaintestMainModGetattrmktemposmkdirpathjoinmainWhileLoadingrArBrrr"assertIsInstancelist assertTruer somethingElse)r$dirnamerrDloadeds rtestEverythingEphemeralGetattrz+PersistTests.testEverythingEphemeralGetattrYs ,- (++- 77<<)AB  (C  A GG   &(H- fd+ q #@A q #>? . : .<  J/rc>|jtjd<y)z8 Restore __main__ to its original value rcN)rjrfrgrLs rtearDownzPersistTests.tearDowns#'-- JrN)r r r r)r0r8r>rErMr]rarhrkrmrrrrr s=( @R (' ?(T>& D?0rr)rRrftextwraprtwisted.persistedrtwisted.persisted.stylesrtwisted.pythonr twisted.trialr Componentizedr rrTestCaserrrrrusl  !.%" J $ $  LL    P08$$P0r