ó œÃÒYc@sóddlZddlZddlZddlZddlZddlmZmZeje j ddƒdZ erˆddl m Z nddlZddlmZdefd „ƒYZd „Zd efd „ƒYZd efd„ƒYZdS(iÿÿÿÿNi(t iteritemstPY2t.i(tStringIO(t_find_binary_readert EchoingStdincBsVeZd„Zd„Zd„Zdd„Zdd„Zd„Zd„Zd„Z RS( cCs||_||_dS(N(t_inputt_output(tselftinputtoutput((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyt__init__s cCst|j|ƒS(N(tgetattrR(Rtx((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyt __getattr__scCs|jj|ƒ|S(N(Rtwrite(Rtrv((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyt_echo!siÿÿÿÿcCs|j|jj|ƒƒS(N(RRtread(Rtn((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR%scCs|j|jj|ƒƒS(N(RRtreadline(RR((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR(scCs)g|jjƒD]}|j|ƒ^qS(N(Rt readlinesR(RR ((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR+scst‡fd†ˆjDƒƒS(Nc3s|]}ˆj|ƒVqdS(N(R(t.0R (R(s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pys /s(titerR(R((Rs`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyt__iter__.scCs t|jƒS(N(treprR(R((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyt__repr__1s( t__name__t __module__R RRRRRRR(((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyRs       cCs—t|dƒrDtr|St|ƒ}|dk r5|Stdƒ‚n|dkrYd}n!t|tƒsz|j|ƒ}ntrŠt|ƒSt j |ƒS(NRs.Could not find binary reader for input stream.t( thasattrRRtNonet TypeErrort isinstancetbytestencodeRtiotBytesIO(R tcharsetR((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pytmake_input_stream5s     tResultcBs2eZdZdd„Zed„ƒZd„ZRS(s3Holds the captured result of an invoked CLI script.cCs1||_||_||_||_||_dS(N(trunnert output_bytest exit_codet exceptiontexc_info(RR)R*R+R,R-((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR Ks     cCs%|jj|jjdƒjddƒS(sThe output as unicode string.treplaces s (R*tdecodeR)R&R.(R((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR XscCs#d|jrt|jƒpdfS(Ns tokay(R,R(R((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR^sN(RRt__doc__RR tpropertyR R(((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR(Hs t CliRunnercBszeZdZdded„Zd„Zdd„Zej dded„ƒZ ddde ed„Z ej d„ƒZ RS(sIThe CLI runner provides functionality to invoke a Click command line script for unittesting purposes in a isolated environment. This only works in single-threaded systems without any concurrency as it changes the global interpreter state. :param charset: the character set for the input and output data. This is UTF-8 by default and should not be changed currently as the reporting to Click only works in Python 2 properly. :param env: a dictionary with environment variables for overriding. :param echo_stdin: if this is set to `True`, then reading from stdin writes to stdout. This is useful for showing examples in some circumstances. Note that regular prompts will automatically echo the input. cCs:|dkrd}n||_|p'i|_||_dS(Nsutf-8(RR&tenvt echo_stdin(RR&R4R5((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pyR ts    cCs |jp dS(sžGiven a command object it will return the default program name for it. The default is the `name` attribute or ``"root"`` if not set. troot(tname(Rtcli((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pytget_default_prog_name{scCs)t|jƒ}|r%|j|ƒn|S(s8Returns the environment overrides for invoking a script.(tdictR4tupdate(Rt overridesR((s`/private/var/folders/w6/vb91730s7bb1k90y_rnhql1dhvdd44/T/pip-build-w4MwvS/click/click/testing.pytmake_env‚sc #sÛtˆ|jƒ‰tj}tj}tj}tjj}dtj_|j |ƒ}t rt ƒt_t_}|j rðt ˆ|ƒ‰qðnatjƒ}|j r¶t ˆ|ƒ‰ntjˆd|jƒ‰tj|d|jƒt_t_ˆt_d‡fd†} d‡fd†} d„} |‰dd‡fd†} tjj} tjj}tjj}tjj}| tj_| tj_| tj_| tj_i}zzxnt|ƒD]`\}}tjj|ƒ||<|dkr ytj|=Wqtk rqXq·|tj|s