Ñò
÷ÿKc           @   s»  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l Z d d k	 l
 Z
 y d d k Z e Z Wn e j
 o e Z n Xe i i d ƒ Z d Z x' d d d	 d
 g D] Z e i e ƒ qË We i i e i i e ƒ d ƒ i d d ƒ Z e i i ƒ  Z d e d <e
 e i i e i i e ƒ e ƒ i d d ƒ d e d e ƒZ  d a" d „  Z# d „  Z$ d e e d „ Z% d „  Z& d „  Z' d „  Z( d „  Z) d d d „ Z* d „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d  „  Z0 d! „  Z1 d" „  Z2 d# „  Z3 d$ „  Z4 d% „  Z5 d& „  Z6 d' „  Z7 d( „  Z8 d) „  Z9 d* „  Z: d+ „  Z; d, „  Z< d- „  Z= d. „  Z> d/ „  Z? d0 „  Z@ d1 „  ZA d2 „  ZB d3 „  ZC d4 „  ZD d5 „  ZE d S(6   s7   Tests against full Pylons projects created from scratchiÿÿÿÿN(   t   SkipTest(   t   TestFileEnvironmentt   javat   outputt   PasteScriptt   Pastet   PasteDeployt   pylonst   filestotests   \t   /t   truet   PASTE_TESTINGt   template_patht   environc         C   s9   t  i d j o% |  i ƒ  i d ƒ o |  d 7}  n |  S(   Nt   win32s   .exe(   t   syst   platformt   lowert   endswith(   t   script(    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   _get_script_name'   s    'c          C   s›   t  i t d ƒ d d d t ƒ}  t  i i d d ƒ i d d ƒ } d	 } d
 | j o
 d } n | | d t  _ d |  i j p t ‚ t  i	 i
 d ƒ d  S(   Nt   svnadmint   createt   REPOSt   printresults   \R	   t    s   %20s   file://t   :s   file:///s   /REPOS(   t   testenvt   runR   t   Falset	   base_patht   replacet   svn_urlt   files_createdt   AssertionErrort   ignore_pathst   append(   t   rest   patht   base(    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   svn_repos_setup,   s    	!
t   makoc      
   C   s  d d d g } | o | i  d ƒ n | i d d d d | d	 d
 |  g ƒ t i t d ƒ | Œ } d d d d d g } xb | D]Z } t i i d | ƒ } | p! | | i i	 ƒ  j p t
 ‚ n | | i j p t
 ‚ q‚ W| ph | i t i i d d ƒ } | i d ƒ | i d ƒ | i d ƒ | i d ƒ d | j p t
 ‚ n t i t t i ƒ d d t i i t i d ƒ i d d ƒ d t ƒt t i i t i d ƒ i d d ƒ d t d t d t ƒa t i i d d ƒ d t i t i d <t i d  d! d" ƒd  S(#   NR   s	   --verboses   --no-interactives   -fs   --template=pylonst   ProjectNames   version=0.1s   sqlalchemy=%ss   zip_safe=Falses   template_engine=%st   pastert   projectnames   development.inis	   setup.cfgs
   README.txts   setup.pys   0.1s&   projectname.config.middleware:make_apps"   main = pylons.util:PylonsInstallers   include_package_data=Trues    setup.py egg_infot   cwds   \R	   t   expect_stderrt   start_clearR   R   t
   PYTHONPATHt    R   s   .coveragerct   frompatht
   coveragerc(   R$   t   extendR   R   R   t   osR&   t   joinR!   t   keysR"   t   stdoutt   mustcontainR   t
   executableR-   R   t   TrueR   R   R   R   t   test_environt   projenvR   t   gett	   writefile(   t   template_enginet	   overwritet   sqlatestingt   paster_argsR%   t	   expect_fnt   fnt   setup(    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   paster_create7   sF    		 !$$	'c          C   s‰   t  i t d ƒ d ƒ }  t i i d d d ƒ |  i j p t ‚ t i i d d d d ƒ |  i j p t ‚ d	 |  i j p t ‚ d  S(
   NR+   s    controller sampleR,   t   controllerss	   sample.pyt   testst
   functionals   test_sample.pyt   ?(	   R=   R   R   R5   R&   R6   R!   R"   R8   (   R%   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   make_controllerb   s    ),c          C   sŒ   t  i t d ƒ d ƒ }  t i i d d d d ƒ |  i j p t ‚ t i i d d d d	 ƒ |  i j p t ‚ d
 |  i j p t ‚ d  S(   NR+   s    controller mysubdir/sampleR,   RH   t   mysubdirs	   sample.pyRI   RJ   s   test_mysubdir_sample.pyRK   (	   R=   R   R   R5   R&   R6   R!   R"   R8   (   R%   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   make_controller_subdirectoryj   s    ,,c          C   s‰   t  i t d ƒ d ƒ }  t i i d d d ƒ |  i j p t ‚ t i i d d d d ƒ |  i j p t ‚ d	 |  i j p t ‚ d  S(
   NR+   s&    restcontroller restsample restsamplesR,   RH   s   restsamples.pyRI   RJ   s   test_restsamples.pyRK   (	   R=   R   R   R5   R&   R6   R!   R"   R8   (   R%   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   make_restcontrollerr   s    ),c          C   sŒ   t  i t d ƒ d ƒ }  t i i d d d d ƒ |  i j p t ‚ t i i d d d d	 ƒ |  i j p t ‚ d
 |  i j p t ‚ d  S(   NR+   s8    restcontroller mysubdir/restsample mysubdir/restsamplesR,   RH   RM   s   restsamples.pyRI   RJ   s   test_mysubdir_restsamples.pyRK   (	   R=   R   R   R5   R&   R6   R!   R"   R8   (   R%   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt    make_restcontroller_subdirectoryz   s    ,,c         C   sE  t  i i o d t  i _ n | p
 g  } n x- |  i ƒ  D] \ } } t i | d | ƒq; Wx | D] } t i | ƒ qe Wt i t d ƒ d d t	 d t
 i i t i d ƒ i d d ƒ ƒ} | o{ t i t d	 ƒ d
 d t d t
 i i t i d ƒ i d d ƒ ƒ} x5 | D]) } t i | ƒ i | i ƒ p t ‚ qWn d S(   sÀ   Given a dict of files, where the key is a filename in filestotest, the value is
    the destination in the new projects dir. emptyfiles is a list of files that should
    be created and empty.R2   t	   nosetestss*    -d --with-coverage --cover-package=pylonsR.   R-   R*   s   \R	   R+   s    routesN(   R   t   testt	   pylonsappt   Nonet	   iteritemsR=   R?   R   R   R;   R5   R&   R6   R   R-   R   R   t   ret   compilet   searchR8   R"   (   t   copydictt
   emptyfilest   match_routes_outputt   originalt   newfilet   fiR%   t   pattern(    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   _do_proj_testƒ   s(    
  '' c           C   s   t  h d d 6ƒ d  S(   Ns   development.ini(   R`   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_nosetests¥   s    c          C   s0   h d d 6d d 6d d 6d d 6}  t  |  ƒ d  S(	   Ns   projectname/lib/helpers.pys   helpers_sample.pys!   projectname/controllers/sample.pys   controller_sample.pys   projectname/lib/app_globals.pys   app_globals.pys+   projectname/tests/functional/test_sample.pys'   functional_sample_controller_sample1.py(   R`   (   RY   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_knowntest¨   s    
c          C   s)   h d d 6d d 6d d 6}  t  |  ƒ d  S(   Ns)   projectname/tests/functional/test_i18n.pys$   functional_sample_controller_i18n.pys.   projectname/i18n/ja/LC_MESSAGES/projectname.pos   messages.ja.pos.   projectname/i18n/ja/LC_MESSAGES/projectname.mos   messages.ja.mo(   R`   (   RY   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_i18ntest±   s
    
c          C   sz   t  d d d t ƒ h d d 6d d 6d d	 6d
 d
 6}  h d d 6d d 6d d 6} | i |  ƒ d d g } t | | ƒ d  S(   NR@   t   genshiRA   s   projectname/lib/helpers.pys   helpers_sample.pys   projectname/lib/app_globals.pys   app_globals.pys   projectname/config/routing.pys   rest_routing.pys   development.inis%   projectname/templates/testgenshi.htmls   testgenshi.htmls!   projectname/config/environment.pys   environment_def_engine.pys,   projectname/tests/functional/test_sample2.pys'   functional_sample_controller_sample2.pys!   projectname/templates/__init__.pys*   projectname/tests/functional/test_cache.py(   RG   R;   t   updateR`   (   t   resetRY   t   empty(    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt	   do_genshi¹   s    

c          C   s)   h d d 6d d 6d d 6}  t  |  ƒ d  S(   Ns    projectname/config/middleware.pys   middleware_two_engines.pys$   projectname/templates/test_mako.htmls   test_mako.htmls,   projectname/tests/functional/test_sample2.pys'   functional_sample_controller_sample3.py(   R`   (   RY   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_two_enginesÊ   s
    
c           C   s   t  h d d 6ƒ d  S(   Ns,   projectname/tests/functional/test_sample3.pys'   functional_sample_controller_sample4.py(   R`   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_crazy_decoratorsÒ   s    c          C   sƒ   t  d d d t ƒ h d d 6d d 6d d	 6d
 d
 6}  h d d 6d d 6d d 6} | i |  ƒ d d d d d g } t | | ƒ d  S(   NR@   t   jinja2RA   s   projectname/lib/helpers.pys   helpers_sample.pys   projectname/lib/app_globals.pys   app_globals.pys   projectname/config/routing.pys   rest_routing.pys   development.inis!   projectname/controllers/sample.pys   controller_sample.pys%   projectname/templates/testjinja2.htmls   testjinja2.htmls+   projectname/tests/functional/test_jinja2.pys&   functional_sample_controller_jinja2.pys!   projectname/templates/__init__.pys+   projectname/tests/functional/test_sample.pys,   projectname/tests/functional/test_sample2.pys,   projectname/tests/functional/test_sample3.pys*   projectname/tests/functional/test_cache.py(   RG   R;   Re   R`   (   Rf   RY   Rg   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt	   do_jinja2Õ   s"    

	c          C   sH   h d d 6d d 6d d 6d d 6}  d	 d
 d d d g } t  |  | ƒ d  S(   Ns    projectname/config/middleware.pys   middleware_mako.pys   projectname/lib/app_globals.pys   app_globals.pys    projectname/controllers/cache.pys   cache_controller.pys*   projectname/tests/functional/test_cache.pys(   functional_controller_cache_decorator.pys)   projectname/tests/functional/test_mako.pys+   projectname/tests/functional/test_jinja2.pys+   projectname/tests/functional/test_sample.pys,   projectname/tests/functional/test_sample2.pys,   projectname/tests/functional/test_sample3.py(   R`   (   RY   Rg   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_cache_decoratorì   s    
	c          C   s?   h d d 6d d 6d d 6d d 6}  d	 d
 g } t  |  | ƒ d  S(   Ns    projectname/config/middleware.pys   middleware_mako.pys   projectname/lib/base.pys   base_with_xmlrpc.pys!   projectname/controllers/xmlrpc.pys   controller_xmlrpc.pys+   projectname/tests/functional/test_xmlrpc.pys   functional_controller_xmlrpc.pys*   projectname/tests/functional/test_cache.pys+   projectname/tests/functional/test_jinja2.py(   R`   (   RY   Rg   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt	   do_xmlrpcü   s    
	c          C   s¹   d |  i  j p t ‚ d |  i  j p t ‚ t i t d ƒ d t i ƒ }  |  i d } | i d ƒ d |  i j p t ‚ t t	 i
 i t i d ƒ i d	 d
 ƒ d t d t ƒa d  S(   Ns   Tagging 0.5 versions   Auto-update of version stringst   svns$    co %s/ProjectName/tags/0.5 Proj-05 s   Proj-05/setup.pys   0.5s   Proj-05/setup.cfgs   Proj-05s   \R	   R/   R   (   R8   R"   R   R   R   R    R!   R9   R   R5   R&   R6   R   R   R   R   t   tagenv(   R%   RF   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   make_tag
  s    $c          C   s¬   t  d d d t d t ƒ h d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6d d 6}  h d d 6d d 6d d 6d d 6} | i |  ƒ d d d d  d! g } t | | ƒ d  S("   NR@   R)   RA   RB   s   projectname/lib/helpers.pys   helpers_sample.pys   projectname/lib/app_globals.pys   app_globals.pys   projectname/config/routing.pys   rest_routing.pys   development.inis   development_sqlatesting.inis   projectname/websetup.pys   websetup.pys   projectname/model/__init__.pys   model__init__.pys!   projectname/config/environment.pys   environment_def_sqlamodel.pys   projectname/tests/__init__.pys   tests__init__.pys!   projectname/controllers/sample.pys   controller_sqlatest.pys$   projectname/templates/test_mako.htmls   test_mako.htmls*   projectname/templates/test_sqlalchemy.htmls   test_sqlalchemy.htmls6   projectname/tests/functional/test_sqlalchemyproject.pys+   functional_sample_controller_sqlatesting.pys!   projectname/templates/__init__.pys+   projectname/tests/functional/test_sample.pys,   projectname/tests/functional/test_sample2.pys,   projectname/tests/functional/test_sample3.pys*   projectname/tests/functional/test_cache.py(   RG   R;   Re   R`   (   Rf   RY   Rg   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   do_sqlaproject  s,    

	c           C   s   t  ƒ  d  S(   N(   RG   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_paster_create<  s    c           C   s   t  ƒ  d  S(   N(   RL   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_make_controller?  s    c           C   s   t  ƒ  d  S(   N(   RN   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt)   test_project_make_controller_subdirectoryB  s    c           C   s   t  ƒ  d  S(   N(   Ra   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_nosetestsE  s    c           C   s   t  ƒ  d  S(   N(   Rb   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_knowntestH  s    c           C   s   t  ƒ  d  S(   N(   Rc   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_i18ntestK  s    c           C   s   t  ƒ  d  S(   N(   RO   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt    test_project_make_restcontrollerN  s    c           C   s   t  ƒ  d  S(   N(   RP   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt-   test_project_make_restcontroller_subdirectoryQ  s    c          C   s1   h d d 6d d 6}  d d g } t  |  | ƒ d  S(   Ns   projectname/config/routing.pys   rest_routing.pys   development.inis   Route name +Methods +Paths   restsamples +GET +/restsamples(   R`   (   RY   R[   (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_rest_nosetestsT  s    
	c           C   s   t  ƒ  d  S(   N(   Rj   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt    test_project_do_crazy_decorators`  s    c           C   s   t  ƒ  d  S(   N(   Rm   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_cache_decoratorc  s    c           C   s"   t  o t d ƒ ‚ n t ƒ  d  S(   Ns(   Jython does not currently support Genshi(   t	   is_jythonR    Rh   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_genshi_defaultf  s    c           C   s   t  ƒ  d  S(   N(   Rl   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_jinja2k  s    c           C   s   t  ƒ  d  S(   N(   Rn   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_xmlrpcn  s    c           C   s   t  o t ƒ  n d  S(   N(   t   SQLAtestingRr   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   test_project_do_sqlaprojects  s    c          C   sq   t  i i t  i i t ƒ t ƒ }  t  i i |  d ƒ } t  i i t  i i t  i i t ƒ ƒ ƒ } t i |  ƒ d  S(   NR*   (   R5   R&   R6   t   dirnamet   __file__t   TEST_OUTPUT_DIRNAMEt   shutilt   rmtree(   t   dir_to_cleant   cov_dirt   main_dir(    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   teardowny  s    !*(F   t   __doc__R5   R   R‡   RV   t   pkg_resourcesR   t   noseR    t   paste.fixtureR   t
   sqlalchemyt   saR;   R‚   t   ImportErrorR   R   t
   startswithR~   R†   t   spect   requireR&   R6   R„   R…   R   R   R   t   copyR<   R   RT   R=   R   R(   RG   RL   RN   RO   RP   R`   Ra   Rb   Rc   Rh   Ri   Rj   Rl   Rm   Rn   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   Rz   R{   R|   R}   R   R€   R   Rƒ   RŒ   (    (    (    sP   /Users/ben/Programming/Python/pylons-dev/tests/test_webapps/test_make_project.pyt   <module>   s|   
 	$
-			+					"												 															