ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ." ¤‡ú*õ'VŽ|¼´Úgllº¼klz[Æüï÷Aób‡Eÿ dÑ»Xx9ÃÜ£ÁT/`¼¸vI±Ýµ·Ë‚“G³þ*Ÿû´r|*}<¨îºœ @¦mÄ’M¹”.œ«Y–|6ÏU¤jç¥ÕÞqO ˜kDÆÁ¨5ÿ š;ÐЦ¦€GÙk \ –Þ=â¼=SͧµªS°ÚÍpÜãQűÀõ¬?ÃÁ1Ñ•õZà?hóœ€ L¦l{Y*K˜Ù›zc˜–ˆâ ø+¾ ­-Ök¥%ùEÜA'}ˆ><ÊIè“bpÍ/qÞâvoX€w,\úªò6Z[XdÒæ­@Ö—€$òJí#é>'°Ú ôª˜<)4ryÙ£|óAÅn5žêŸyÒäMÝ2{"}‰–¤l÷ûWX\l¾Á¸góÉOÔ /óñB¤f¸çñ[.P˜ZsÊË*ßT܈§QN¢’¡¨§V¼(Üù*eÕ“”5T¨‹Âê¥FŒã½Dü[8'Ò¥a…Ú¶k7a *•›¼'Ò·\8¨ª\@\õ¢¦íq+DÙrmÎ…_ªæ»ŠÓœ¡¯’Ré9MÅ×D™lælffc+ŒÑ,ý™ÿ ¯þǤ=Å’Á7µ÷ÚÛ/“Ü€ñýã¼àí¾ÕÑ+ƒ,uµMâÀÄbm:ÒÎPæ{˜Gz[ƒ¯«® KHà`ߨŠéí¯P8Aq.C‰ à€kòpj´kN¶qô€…Õ,ÜNŠª-­{Zö’æû44‰sŽè‰îVíRœÕm" 6?³D9¡ÇTíÅꋇ`4«¸ÝÁô ï’ýorqКÇZ«x4Žâéþuïf¹µö[P ,Q£éaX±`PÉÍZ ¸äYúg üAx ’6Lê‚xÝÓ*äQ  Ï’¨hÍ =²,6ï#rÃ<¯–£»ƒ‹,–ê•€ aÛsñ'%Æ"®ÛüìBᝠHÚ3ß°©$“XnœÖ’î2ËTeûìxîß ¦å¿çÉ ðK§þ{‘t‚Ϋ¬jéîZ[ ”š7L¥4VÚCE×]m¤Øy”ä4-dz£œ§¸x.*ãÊÊ b÷•h:©‡¦s`BTÁRû¾g⻩‹jø sF¢àJøFl‘È•Xᓁà~*j¯ +(ÚÕ6-£¯÷GŠØy‚<Ç’.F‹Hœw(+)ÜÜâÈzÄäT§FߘãÏ;DmVœ3Àu@mÚüXÝü•3B¨òÌÁÛ<·ÃÜ z,Ì@õÅ·d2]ü8s÷IôÞ¯^Ç9¢u„~ëAŸï4«M? K]­ÅàPl@s_ p:°¬ZR”´›JC[CS.h‹ƒïËœ«Æ]–÷ó‚wR×k7X‰k›‘´ù¦=¡«‰¨¨Â')—71ó’c‡Ðúµ `é.{§p¹ój\Ž{1h{o±Ý=áUÊïGÖŒõ–-BÄm+AZX¶¡ ïHðæ¥JmÙ;…䡟ˆ¦ ° äšiÉg«$üMk5¤L“’çÊvïâï ,=f“"íἊ5ô¬x6{ɏžID0e¸vçmi'︧ºð9$ò¹÷*£’9ÿ ²TÔ…×>JV¥}Œ}$p[bÔ®*[jzS*8 ”·T›Í–ñUîƒwo$áè=LT™ç—~ô·¤ÈÚ$榍q‰„+´kFm)ž‹©i–ËqÞŠ‰à¶ü( ‚•§ •°ò·‡#5ª•µÊ﯅¡X¨šÁ*F#TXJÊ ušJVÍ&=iÄs1‚3•'fý§5Ñ<=[íÞ­ PÚ;ѱÌ_~Ä££8rÞ ²w;’hDT°>ÈG¬8Á²ÚzŽ®ò®qZcqJêäÞ-ö[ܘbň±çb“ж31²n×iƒðÕ;1¶þÉ ªX‰,ßqÏ$>•î íZ¥Z 1{ç൵+ƒÕµ¥°T$§K]á»Ûï*·¤tMI’ÂZbŽÕiÒ˜}bÓ0£ª5›¨ [5Ž^ÝœWøÂÝh° ¢OWun£¤5 a2Z.G2³YL]jåtì”ä ÁÓ‘%"©<Ôúʰsº UZvä‡ÄiÆÒM .÷V·™ø#kèýiíÌ–ª)µT[)BˆõÑ xB¾B€ÖT¨.¥~ð@VĶr#¸ü*åZNDŽH;âi ],©£öØpù(šºãö¼T.uCê•4@ÿ GÕÛ)Cx›®0ø#:ÏðFÒbR\(€€Ä®fã4Þ‰Fä¯HXƒÅ,†öEÑÔÜ]Öv²?tLÃvBY£ú6Êu5ÅAQ³1‘’¬x–HŒÐ‡ ^ ¸KwJôÖŽ5×CÚ¨vÜ«/B0$×k°=ðbÇ(Ï)w±A†Á† 11Í=èQšµ626ŒÜ/`G«µ<}—-Ö7KEHÈÉðóȤmݱû±·ø«Snmá=“䫚mݱŸ¡¶~ó·“äUóJæúòB|E LêŽy´jDÔ$G¢þÐñ7óR8ýÒ…Ç› WVe#·Ÿ p·Fx~•ݤF÷0Èÿ K¯æS<6’¡WШ; ´ÿ ¥Êø\Òuî†åÝ–VNœkÒ7oòX¨Á­Ø÷FÎÑä±g÷ÿ M~Çî=p,X´ ÝÌÚÅ‹’ÃjÖ.ØöÏñ qïQ¤ÓZE†° =6·]܈ s¸>v•Ž^Ý\wq9r‰Î\¸¡kURÒ$­*‹Nq?Þª*!sŠÆ:TU_u±T+øX¡ ®¹¡,ÄâÃBTsÜ$Ø›4m椴zÜK]’’›Pƒ @€#â˜`é¹=I‡fiV•Ôî“nRm+µFPOhÍ0B£ €+¬5c v•:P'ÒyÎ ‰V~‚Ó†ÖuókDoh$å\*ö%Ю=£«…aȼ½÷Û.-½VŒŠ¼'lyî±1¬3ó#ÞE¿ÔS¤gV£m›=§\û"—WU¤ÚǼÿ ÂnÁGŒÃ ‚õN D³õNÚíŒÕ;HôyÄÈ©P¹Ä{:?R‘Ô¨âF÷ø£bÅó® JS|‚R÷ivýáâ€Æé¡è³´IئÑT!§˜•ت‚¬â@q€wnïCWÄ@JU€ê¯m6]Ï:£âx'+ÒðXvÓ¦Úm=–´7œ $ì“B£~p%ÕŸUþ« N@¼üï~w˜ñø5®—'Ôe»¤5ã//€ž~‰Tþ›Å7•#¤× Íö pÄ$ùeåì*«ÓŠEØWEÈsßg ¦ûvžSsLpºÊW–âµEWöˬH; ™!CYõZ ÃÄf æ#1W. \uWâ\,\Çf j’<qTbên›Î[vxx£ë 'ö¨1›˜ÀM¼Pÿ H)ƒêêŒA7s,|F“ 꺸k³9Ìö*ç®;Ö!Ö$Eiž•¹ÒÚ†ýóéÝû¾ÕS®ó$’NÝäŸz¤5r¦ãÄÃD÷Üø!°ø‡Ô&@m™Ì^Ãä­d q5Lnÿ N;.6½·N|#ä"1Nƒx“ã<3('&ñßt  ~ªu”1Tb㫨9ê–›–bìd$ߣ=#ÕãÒmU¯eí$EFù5ýYô櫨æì™Ç—±ssM]·á¿0ÕåJRÓªîiƒ+O58ÖñªŠÒx" \µâá¨i’¤i —Ö ” M+M¤ë9‚‰A¦°Qõ¾ßøK~¼Ã‘g…Ö´~÷Ï[3GUœÒ½#…kàÔ®Ò”‰³·dWV‰IP‰Ú8u¹”E ÖqLj¾êÕCBš{A^Âß;–¨`¯¬ìö ˼ ×tìø.tƐm*n¨y4o&Àx¥n¦×î‡aupáÛj8¿m›è¶ã!o½;ß0y^ý×^EÑ¿ÒjzŒ­)vÚÑnÄL …^ªô× ‡—‚3k Îý­hï]içå–îÏ*÷ñþ»Ô CÒjøjÍznˆ´ ¹#b'Fô‹ ‰v¥'’à'T´ƒHýÍ%M‰ ƒ&ÆÇŒï1 ‘ –Þ ‰i¬s žR-Ÿ kЬá¬7:þ 0ŒÅÒÕ/aÙ¬ÃÝ#Úøœ ©aiVc‰. ¹¦ãµ” ›Yg¦›ÆÎýº°f³7ƒhá·¸­}&D9¡ÂsÉÙÞèŠõØàC™¨ñbFC|´Ü(ŸƒÚÒ-%»'a Ì¿)ËÇn¿úÿ ÞŽX…4ÊÅH^ôΑí@ù¹Eh¶“L8Çjù ¼ÎåVªóR©Ï5uà V4lZß®=€xÖŸ–ÑÈ ÷”¨°¾__yM1tÉ?uÆþIkÄgæ@þ[¢†°XÃJ£j·:nkÅ¢u ‘}âGzö­/IµèЬ¼48q¦F°ŽR¼=ûì{´¯RýicS ÕÛ íNtÍÙï£,w4rêì®»~x(©Uñ§#Ñ&œÕ¤>ÎåÍÓ9’Ö{9eV­[Öjâ²ãu]˜å2›qÑšÕJç0€sÄ|Êëè0튔bÁ>“{×_F`Ø©ºê:µä,v¤ðfc1±"«ÔÍän1#=· Âøv~H½ÐßA¾¿Ü€Óš]Õ; I¾÷ç‚Qi†î¹9ywÔKG˜áñ zQY—§ÃÕZ07§X‚ Áh;ÁM)iÌCH-¯T‘ë|A0{Ò½LÚ–TâÖkÜ’dÀ“rmm»”جPF³ÖcbE§T€ÒxKºû’Ó®7±²(\4ŽÃ¸Uu@j™yĵ;³µ!Á¢b.W¤=mõ´êµK k ¸K^ÜÛ#p*Ü14qkZç5ïë †°5Ï%ÍÛ<Õ¤×Ô¥ê†C Õ´¼ú$ƒÖ“”]Ù¬qÞÚ[4©ý!ûÏ—Áb쳐XµA¬â~`›Çr¸8ìùÝ䫦<>ä÷«?xs´ÇÑ /á;¹øüÊÈÙà{"@Žïzâ¬[âß‚ U_<ÇŸ½4èN˜ú61®qŠu ¦þF£»äJ_ˆÙÎ~ ÞAã–݄ϗrŠD;xTž‘ô`É«…suãO`?³à™ô Lý#Íc5öoæØ‚y´´÷«ZR§<&JÇ+éâô´€i!Àˆ0æAoàðLèÖ-2ŸõW.’t^–(KÁmHµV@xÜÇy®Ñø­â^:Ú3w· 7½¹°ñ¸â¹®:',«Mœ—n­Á+Ãbš LÈ‘ÄnRÓÅœ%¦²‰¨ùQ:¤f‚ "PÕtô¸…cæl…&˜Ú˜Ôkv‹ž+vŠ,=¢v­6—Xy*¥t£«<™:“aîϲ=¦6rO]XI¿Œ÷¤zÚ­›¶ 6÷”w\d ü~v®ˆÌk«^m<ÿ ¢‰Õ\)ùºŽ;… lîÙÅEŠ®cѾ@vnMÏ,¼“ñ•ŽBxðÃzãÇç%3ˆ"}Ù•Åî> BÉú;Ò]V+P˜F_´ßé> Øše|ï‡ÄOmFæÇ ãqÞ$/xÐx­z`ï9"œÜij‚!7.\Td…9M‡•iŽ‹¾‘50ÞŽn¥ß4ÉôO ¹*í^QêËÜÇÌ8=ާs‰'ÂëÙ«á%Pú[O †ÅP¯Vsް.‰,kc¶ ¬A9n˜XÎ-ÞšN["¹QÕ‰ƒMýÁߺXJæÍaLj¾×Ãmã¾ãÚ uñÒþåQô¦¥ /ÄUx:‚ÍÜ’ Đ©ØÝ3V¨‰ÕnÐ6ó*óúK­«…c ¯U òhsý­jóÔj#,ímŒRµ«lbïUTŒÑ8†Ä0œÏr`ð¡¬É Ї ë"À² ™ 6¥ f¶ ¢ÚoܱԷ-<Àî)†a¶ž'Ú»¨TXqØæ¶÷YÄHy˜9ÈIW­YÀuMFë ºÏ’AqÌ4·/Ú †ô'i$øä­=Ä Ý|öK×40è|È6p‘0§)o¥ctî§H+CA-“ xØ|ÐXАç l8íºð3Ø:³¤¬KX¯UÿÙ  &tWc@sdZddlZddlZddlZddlZddlZddlZddlmZm Z m Z ddl m Z dej fdYZdej fdYZd ej fd YZd ej fd YZd ej fdYZdej fdYZdej fdYZdej fdYZdej fdYZdej fdYZdej fdYZdej fdYZdej fdYZdej fd YZd!ej fd"YZd#ej fd$YZd%ej fd&YZd'ej fd(YZd)ej fd*YZ d+ej fd,YZ!d-ej fd.YZ"d/ej fd0YZ#d1ej fd2YZ$d3ej fd4YZ%dS(5s#Test suite for supervisor.datatypesiN(tMocktpatchtsentinel(t datatypestProcessOrGroupNamecBs,eZdZdZdZdZRS(cCs tj|S(N(Rtprocess_or_group_name(tselftarg((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt_callFUT scCs#d}|j|j|ddS(Ns foo tfoo(t assertEqualR(Rtname((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt"test_strips_surrounding_whitespacescCs d}|jt|j|dS(Nsfoo bar(t assertRaisest ValueErrorR(RR ((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_disallows_inner_spacesscCs d}|jt|j|dS(Nsfoo:bar(R RR(RR ((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_disallows_colonss(t__name__t __module__RR RR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR s   t IntegerTestscBs,eZdZdZdZdZRS(cCs tj|S(N(Rtinteger(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs|j|jdddS(Nt1i(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_numeric scCs1|j|jttjdtjddS(Ni(R Rtstrtsystmaxint(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt%test_converts_numeric_overflowing_int#scCs|jt|jddS(Ntabc(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_non_numeric&s(RRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs   t BooleanTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(Rtboolean(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR*scCs1x*tjD]}|j|j|tq WdS(N(RtTRUTHY_STRINGSR RtTrue(Rts((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt#test_returns_true_for_truthy_values-scCs=x6ttjtjD]}|j|j|tqWdS(N(tmapRtupperRRR RR (RR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt)test_returns_true_for_upper_truthy_values1scCs1x*tjD]}|j|j|tq WdS(N(Rt FALSY_STRINGSR RtFalse(RR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt#test_returns_false_for_falsy_values5scCs=x6ttjtjD]}|j|j|tqWdS(N(R#RR$RR&R RR'(RR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt)test_returns_false_for_upper_falsy_values9scCs|jt|jddS(Ns not-a-value(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt&test_braises_value_error_for_bad_value=s (RRRR"R%R(R)R*(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR)s      tListOfStringsTestscBs5eZdZdZdZdZdZRS(cCs tj|S(N(Rtlist_of_strings(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRBscCs|j|jdgdS(Nt(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt(test_returns_empty_list_for_empty_stringEscCs#|j|jdddgdS(Nsfoo,barR tbar(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt+test_returns_list_of_strings_by_comma_splitHscCs#|j|jdddgdS(Ns foo , bar R R/(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt-test_returns_strings_with_whitespace_strippedKscCs|jt|jddS(Ni*(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt.test_raises_value_error_when_comma_split_failsNs (RRRR.R0R1R2(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR+As     tListOfIntsTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(Rt list_of_ints(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRSscCs|j|jdgdS(NR-(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR.VscCs#|j|jdddgdS(Ns1,42ii*(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt(test_returns_list_of_ints_by_comma_splitYscCs#|j|jdddgdS(Ns 1 , 42 ii*(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt.test_returns_ints_even_if_whitespace_in_string\scCs|jt|jddS(Ni*(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR2_s cCs|jt|jddS(Ns 1, bad, 42(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt-test_raises_value_error_when_one_value_is_badcs (RRRR.R5R6R2R7(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR3Rs      tListOfExitcodesTestscBs,eZdZdZdZdZRS(cCs tj|S(N(Rtlist_of_exitcodes(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRhscCs&|j|jddddgdS(Ns1,2,3iii(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt"test_returns_list_of_ints_from_csvkscCs |j|jddgdS(NRi(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt"test_returns_list_of_ints_from_onenscCsF|jt|jd|jt|jd|jt|jddS(Nsa,b,ct1024s-1,1(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt'test_raises_for_invalid_exitcode_valuesqs(RRRR:R;R=(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR8gs   tDictOfKeyValuePairsTestscBsteZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( cCs tj|S(N(Rtdict_of_key_value_pairs(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRwscCs#|jd}|ji|dS(NR-(RR (Rtactual((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt%test_returns_empty_dict_for_empty_strzscCs0|jd}idd6}|j||dS(Nsfoo=barR/R (RR (RR@texpected((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt&test_returns_dict_from_single_pair_str~s cCs7|jd}idd6dd6}|j||dS(Nsfoo=bar,baz=quxR/R tquxtbaz(RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt%test_returns_dict_from_multi_pair_strscCs7|jd}idd6dd6}|j||dS(Ns foo = bar , baz = qux R/R RDRE(RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt$test_returns_dict_even_if_whitespacescCs7|jd}idd6dd6}|j||dS(Nsfoo = bar , baz = quxR/R RDRE(RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt"test_returns_dict_even_if_newlinesscCs7|jd}idd6dd6}|j||dS(Nsfoo='bar,baz',baz='q,ux'sbar,bazR sq,uxRE(RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt&test_handles_commas_inside_apostrophesscCs7|jd}idd6dd6}|j||dS(Nsfoo="bar,baz",baz="q,ux"sbar,bazR sq,uxRE(RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt!test_handles_commas_inside_quotesscCs>|jd}idd6dd6dd6}|j||dS(NsOHOME=/home/auser,FOO=/.foo+(1.2)-_/,SUPERVISOR_SERVER_URL=http://127.0.0.1:9001s /home/ausertHOMEs/.foo+(1.2)-_/tFOOshttp://127.0.0.1:9001tSUPERVISOR_SERVER_URL(RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt"test_handles_unquoted_non_alphanums   cCs0|jd}idd6}|j||dS(Nsfoo=bar,R/R (RR (RR@RB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_allows_trailing_commas cCs\|jt|jd|jt|jd|jt|jd|jt|jddS(NR sfoo=s foo=bar,bazs foo=bar,baz=(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt$test_raises_value_error_on_too_shorts       cCs d}|jt|j|dS(Ns#KEY1=no-comma KEY2=ends-with-comma,(R RR(Rtkvp((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt!test_raises_when_comma_is_missings (RRRRARCRFRGRHRIRJRNRORPRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR>vs           tLogfileNameTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(Rt logfile_name(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs7x0tjD]%}|j|}|j|dq WdS(N(Rt LOGFILE_NONESRR tNone(RtthingR@((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt!test_returns_none_for_none_valuesscCsUxNtjD]C}t|dr.|j}n|j|}|j|dq WdS(NR$(RRUthasattrR$RR RV(RRWR@((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt)test_returns_none_for_uppered_none_valuess cCs:x3tjD](}|j|}|j|tjq WdS(N(Rt LOGFILE_AUTOSRR t Automatic(RRWR@((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt&test_returns_automatic_for_auto_valuesscCsXxQtjD]F}t|dr.|j}n|j|}|j|tjq WdS(NR$(RR[RYR$RR R\(RRWR@((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt.test_returns_automatic_for_uppered_auto_valuess cCsOtj}dt_z)d}|j|}|j||Wd|t_XdS(NcSs|S(N((tpath((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pytR-s$/path/to/logfile/With/Case/Preserved(Rtexisting_dirpathRR (RtfuncR_R@((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt.test_returns_existing_dirpath_for_other_valuess  (RRRRXRZR]R^Rc(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRSs      tRangeCheckedConversionTestscBs;eZdZdddZdZdZdZRS(cCstjS(N(RtRangeCheckedConversion(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt_getTargetClassscCs|j|||S(N(Rf(Rt conversiontmintmax((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt_makeOnescCs,|jdd}|jt|ddS(NcWsdS(Ni((R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR`R-i(RjR RRV(RRg((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_below_lower_boundscCs/|jddd}|jt|ddS(NcWsdS(Ni((R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR`R-i(RjR RRV(RRg((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_above_upper_lower_boundscCs2|jddd}|j|dddS(NcWsdS(Ni((R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR`R-i(RjR (RRg((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_passessN(RRRfRVRjRkRlRm(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRds    tNameToGidTestscBseZdZededdddgdZededdddgdZededed d Zededed d Z RS( cCs tj|S(N(Rt name_to_gid(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRss grp.getgrnamt return_valueii*cCs#|jd}|j|ddS(NR i*(RR (Rtgid((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_gets_gid_from_group_namess grp.getgrgidcCs#|jd}|j|ddS(Nt42i*(RR (RRq((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_gets_gid_from_group_idst side_effectsbad group namecCs|jt|jddS(NR (R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_group_namess bad group idcCs|jt|jddS(NRs(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_group_ids( RRRRRRrRttKeyErrorRvRw(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRns  **'tNameToUidTestscBseZdZededdddgdZededdddgdZededed d Zededed d Z RS( cCs tj|S(N(Rt name_to_uid(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR ss pwd.getpwnamRpii*cCs#|jd}|j|ddS(NR i*(RR (Rtuid((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_gets_uid_from_username ss pwd.getpwuidcCs#|jd}|j|ddS(NRsi*(RR (RR{((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_gets_uid_from_user_idsRus bad usernamecCs|jt|jddS(NR (R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_usernamess bad user idcCs|jt|jddS(NRs(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_user_ids( RRRRRR|R}RxR~R(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRys  **'tOctalTypeTestscBs,eZdZdZdZdZRS(cCs tj|S(N(Rt octal_type(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs|j|jdddS(Nt10i(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_success"scCsRy|jd|jWn0tk rM}d}|j|jd|nXdS(Ntbads)bad can not be converted to an octal typei(RtfailRR targs(RteRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR%s  cCsRy|jd|jWn0tk rM}d}|j|jd|nXdS(Ns1.2s)1.2 can not be converted to an octal typei(RRRR R(RRRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt%test_raises_for_unconvertable_numeric-s  (RRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs   tExistingDirectoryTestscBs5eZdZdZdZdZdZRS(cCs tj|S(N(Rtexisting_directory(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR6scCs/tjjt}|j||j|dS(N(tosR_tdirnamet__file__R R(RR_((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_dir_exists9scCswtjjtjjtd}y|j||jWn4tk rr}d|}|j|j d|nXdS(Nt nonexistents%s is not an existing directoryi( RR_tjoinRRRRRR R(RR_RRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_dir_does_not_exist=s!  cCs\t}y|j||jWn4tk rW}d|}|j|jd|nXdS(Ns%s is not an existing directoryi(RRRRR R(RR_RRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_not_a_directoryFs  cCsJtjjd}tjj|rF|jd}|j||ndS(Nt~(RR_t expandusertexistsRR (RthomeR_((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_expands_homeOs(RRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR5s    tExistingDirpathTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(RRa(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRVscCs|j|jttdS(N(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_returns_existing_dirpathYscCs|j|jdddS(NR (R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_returns_dirpath_if_relative\scCsztjjtjjtdd}y|j||jWn4tk ru}d|}|j|j d|nXdS(NRR s:The directory named as part of the path %s does not exist.i( RR_RRRRRRR R(RR_RRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt!test_raises_if_dir_does_not_exist_s$ cCstjjtjjttjjtd}y|j||jWn4tk r}d|}|j |j d|nXdS(NR s:The directory named as part of the path %s does not exist.i( RR_RRRtbasenameRRRR R(RR_RRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt#test_raises_if_exists_but_not_a_diris cCsYtjjd}tjj|rU|jd}|jtjj|d|ndS(NRs~/fooR (RR_RRRR R(RRR_((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRts(RRRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRUs     tLoggingLevelTestscBs#eZdZdZdZRS(cCs tj|S(N(Rt logging_level(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR{scCs0ddlm}|j|jd|jdS(Ni(t LevelsByNametwArN(tsupervisor.loggersRR RtWARN(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt-test_returns_level_from_name_case_insensitive~scCs|jt|jddS(NR (R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_level_names (RRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRzs  tUrlTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(Rturl(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs#d}|j|j||dS(Nshttp://localhost:9001(R R(Rtgood_url((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt3test_accepts_urlparse_recognized_scheme_with_netlocscCs d}|jt|j|dS(Nshttp://(R RR(Rtbad_url((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt5test_rejects_urlparse_recognized_scheme_but_no_netlocscCs#d}|j||j|dS(Nsunix://somepath(R R(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt"test_accepts_unix_scheme_with_pathscCs d}|jt|j|dS(Nsunix:(R RR(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt0test_rejects_unix_scheme_with_no_slashes_or_pathscCs d}|jt|j|dS(Nsunix://(R RR(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt1test_rejects_unix_scheme_with_slashes_but_no_paths(RRRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs      tInetStreamSocketConfigTestscBskeZdZdZdZdZdZdZdZdZ dZ d Z d Z RS( cCstjS(N(RtInetStreamSocketConfig(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRfscOs|j||S(N(Rf(RRtkw((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRjscCs)|jdd}|j|jddS(Ns 127.0.0.1i!stcp://127.0.0.1:8675(RjR R(Rtconf((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_urlscCs,|jdd}|jt|ddS(Nt localhostistcp://localhost:65531(RjR R(Rtcfg((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test___str__scCsT|jdd}t|}|j|jd||j|jd|dS(Ns 127.0.0.1i!s/(Rjtreprt assertTruet startswithtendswith(RRR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_reprs    cCs2|jdd}|j}|j|ddS(Ns 127.0.0.1i!(s 127.0.0.1i!(RjtaddrR (RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_addrs cCs2|jdd}|j}|j|ddS(NRt5001i(Ri(RjRR (RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_port_as_strings cCsm|jdd}|j}|jtjtj}|j||j|j|j |j dS(Ns 127.0.0.1i!( Rjtcreate_and_bindt getsockopttsockett SOL_SOCKETt SO_REUSEADDRRR Rt getsocknametclose(RRtsocktreuse((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_create_and_binds   cCsN|jdd}|jdd}|j||k|j||kdS(NRi(RjRt assertFalse(Rtconf1tconf2((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_same_urls_are_equalscCsN|jdd}|jdd}|j||k|j||kdS(NRii(RjRR(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_diff_urls_are_not_equalscCsB|jdd}d}|j||k|j||kdS(NRitblah(RjRR(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_diff_objs_are_not_equals( RRRfRjRRRRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs          tUnixStreamSocketConfigTestscBsteZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( cCstjS(N(RtUnixStreamSocketConfig(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRfscOs|j||S(N(Rf(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRjscCs&|jd}|j|jddS(Ns /tmp/foo.socksunix:///tmp/foo.sock(RjR R(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs)|jd}|jt|ddS(Nsfoo/barsunix://foo/bar(RjR R(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCsQ|jd}t|}|j|jd||j|jd|dS(Ns /tmp/foo.socks/(RjRRRR(RRR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs    cCs/|jd}|j}|j|ddS(Ns /tmp/foo.sock(RjRR (RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_get_addrs cCstj\}}tjtjf}tj}|j|d|d|}t}t}td|td|d}||} |j t j j ||j |j| j| j|j t j j |t j||j d|j|jdd} |jdd} |jdd} |j || |j |d| |j |d| |j d|j|jdd} |jdd} |j || |j || dS( Ntownertmodesos.chownsos.chmodcSs |jS(N(R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pytcall_create_and_bindsiii(ttempfiletmkstempRR{RqRRjRRRRR_RR RRRtunlinkt call_countt call_args(Rttf_fdttf_nameRRRt chown_mockt chmod_mockRRtpath_argtuid_argtgid_argtmode_arg((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs4       c Cstj\}}tjtjf}tj}|j|d|d|}tdtdt dtdtd}y|||j WnIt k r}d}|j |j d ||jtjj|nXdS( NRRsos.chownRutmsgsos.chmodcSs |jS(N(R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRss.Could not change ownership of socket file: msgi(RRRR{RqRRjRRtOSErrorRRR RRRR_R( RRRRRRRRRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt%test_create_and_bind_when_chown_failss  c Cstj\}}tjtjf}tj}|j|d|d|}tdttdtdt dd}y|||j WnIt k r}d}|j |j d ||jtjj|nXdS( NRRsos.chownsos.chmodRuRcSs |jS(N(R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyR2ss0Could not change permissions of socket file: msgi(RRRR{RqRRjRRRRRR RRRR_R( RRRRRRRRRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt%test_create_and_bind_when_chmod_fails,s * cCsH|jd}|jd}|j||k|j||kdS(Ns /tmp/foo.sock(RjRR(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_same_paths_are_equal?scCsH|jd}|jd}|j||k|j||kdS(Ns /tmp/foo.socks /tmp/bar.sock(RjRR(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_diff_paths_are_not_equalEscCs?|jd}d}|j||k|j||kdS(Ns /tmp/foo.sockR(RjRR(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRKs(RRRfRjRRRRRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs       &    tInetAddressTestscBs5eZdZdZdZdZdZRS(cCs tj|S(N(Rt inet_address(RR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRRscCs|jt|jddS(Nsa:(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_no_port_numberUscCs|jt|jddS(Nta(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_bad_port_numberXscCs9|jd\}}|j|d|j|ddS(Ns*:8080R-i(RR (Rthosttport((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_default_host[scCs9|jd\}}|j|d|j|ddS(Ns localhost:80RiP(RR (RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_boring`s(RRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRQs     tSocketAddressTestscBs,eZdZdZdZdZRS(cCstjS(N(Rt SocketAddress(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRffscCs|j|S(N(Rf(RR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRjiscCsHddl}|jd}|j|j|j|j|jddS(Nis/foo/bar(RRjR tfamilytAF_UNIXtaddress(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_unix_socketls cCsHddl}|jd}|j|j|j|j|jddS(Nislocalhost:8080Ri(Ri(RRjR RtAF_INETR(RRR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_inet_socketrs (RRRfRjRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRes   tColonSeparatedUserGroupTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(Rtcolon_separated_user_group(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRyscCs!|j|jddddS(Ntrooti(R R(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_ok_username|scCs|jt|jddS(Ntgodihopethisuserdoesntexist(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_missinguser_usernames cCs|jt|jddS(Nsgodihopethisuserdoesntexist:foo(R RR(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt'test_missinguser_username_and_groupnames cstdd}tdd}td|td|fd}|d\}}|jdjd||jd jd|dS( NRpi i"s supervisor.datatypes.name_to_uids supervisor.datatypes.name_to_gidcs j|S(N(R(tvalue(R(sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pytcolon_separatedssfoo:barR R/(RRtassert_called_withR (RRzRoRR{Rq((RsC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt&test_separated_user_group_returns_boths !  csptdd}td|fd}|d\}}|jdjd|jd|dS(NRpi*s supervisor.datatypes.name_to_uidcs j|S(N(R(R(R(sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRsR i(RRRR (RRzRR{Rq((RsC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt+test_separated_user_group_returns_user_onlys  (RRRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRxs      tSignalNumberTestscBs>eZdZdZdZdZdZdZRS(cCs tj|S(N(Rt signal_number(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs#|j|jtjtjdS(N(R RtsignaltSIGTERM(R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_numberscCs |j|jdtjdS(Ns term (R RR R (R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_namescCs |j|jdtjdS(NR (R RR R (R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_signamescCsRy|jd|jWn0tk rM}d}|j|jd|nXdS(Nt12345678s-value '12345678' is not a valid signal numberi(RRRR R(RRRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_numbers  cCsRy|jd|jWn0tk rM}d}|j|jd|nXdS(NtBADSIGs)value 'BADSIG' is not a valid signal namei(RRRR R(RRRB((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_names  (RRRR R R RR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs      tAutoRestartTestscBs5eZdZdZdZdZdZRS(cCs tj|S(N(Rt auto_restart(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs:x3tjD](}|j|}|j|tjq WdS(N(RRRR tRestartUnconditionally(RR!tresult((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_truthyscCs.x'tjD]}|j|j|q WdS(N(RR&RR(RR!((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_falsyscCs7x0dD](}|j|}|j|tjqWdS(Nt unexpectedt UNEXPECTED(RR(RR RtRestartWhenExitUnexpected(RR!R((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_converts_unexpecteds cCsLy|jd|jWn*tk rG}|j|jddnXdS(NRis!invalid 'autorestart' value 'bad'(RRRR R(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_raises_for_bad_values  (RRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs     tProfileOptionsTestscBs,eZdZdZdZdZRS(cCs tj|S(N(Rtprofile_options(RR((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRscCs6|jd\}}|jg||j|dS(NR-(RR R(Rt sort_optionstcallers((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyt test_emptyscCs<|jd\}}|jddg||j|dS(NsCUMULATIVE,callst cumulativetcalls(RR R(RRR ((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_without_callersscCs9|jd\}}|jdg||j|dS(Nscumulative, callersR"(RR R(RRR ((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyttest_with_callerss(RRRR!R$R%(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyRs   (&t__doc__RR RRRtunittesttmockRRRt supervisorRtTestCaseRRRR+R3R8R>RSRdRnRyRRRRRRRRRRRRR(((sC/usr/lib/python2.7/dist-packages/supervisor/tests/test_datatypes.pyts@       B& % :y*