ó
ìŠ'Gc           @   sá  d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z m Z d  d l m Z d Z	 d Z
 d Z d e  j f d „  ƒ  YZ d  d l Z x7 e e j ƒ D] Z e j d	 ƒ r— Pq— q— We e d
 ƒ y d  d l Z Wn	e k
 rÜe e d ƒ yf d  d l Z e j d d ƒ \ Z Z e j ƒ  e j ƒ  y e j ƒ  Z Wn e k
 rRd  Z n XWn6 d  d l Z e j d ƒ \ Z  Z! e  d ?d @Z n Xe rÝe j" d ƒ x6 e e ƒ D]% Z e j d	 ƒ r­e e e ƒ q­q­WqÝn Xd S(   iÿÿÿÿN(   t   configt   splicet   logger(   t   minidoms   tests/work/applys   tests/data/apply/config-%s.inis   tests/data/apply/feed.xmlt	   ApplyTestc           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   s[   t  t ƒ } | j ƒ  |  _ | j ƒ  y t j t ƒ Wn |  j ƒ  t j t ƒ n Xd  S(   N(	   t   opent   testfeedt   readt   feeddatat   closet   ost   makedirst   workdirt   tearDown(   t   selft   testfile(    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   setUp   s    

c         C   s!   t  j t j j t ƒ d ƒ d  S(   Ni    (   t   shutilt   rmtreeR
   t   patht   splitR   (   R   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyR      s    c   	      C   sG  t  j |  j ƒ xk d d d g D]Z } t j j t | ƒ } |  j t j j | ƒ ƒ |  j t j	 | ƒ j
 d k | d ƒ q  Wt t j j t d ƒ ƒ } t j | ƒ } g  } d } } x^ | j d ƒ D]M } | j d ƒ d k ré qÈ n  | d	 7} | j d
 ƒ d k rÈ | d	 7} qÈ qÈ W| j ƒ  |  j d | ƒ |  j d | ƒ d  S(   Ns
   index.htmls   default.csss   images/foaf.pngi    s    has size 0t   divt   classt   contenti   s   xml:langs   en-usi   i   (   R   t   applyR   R
   R   t   joinR   t
   assertTruet   existst   statt   st_sizeR   R   t   parset   getElementsByTagNamet   getAttributeR	   t   assertEqual(	   R   t   fileR   t   htmlt   doct   listR   t   langR   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt	   apply_asf   s$    *
 
 
c         C   s   t  j t d ƒ |  j ƒ  d  S(   Nt   asf(   R    t   loadt
   configfileR'   (   R   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   test_apply_asf0   s    c         C   s   t  j t d ƒ |  j ƒ  d  S(   Nt   fancy(   R    R)   R*   t   apply_fancy(   R   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   test_apply_classic_fancy4   s    c         C   s   t  j t d ƒ |  j ƒ  d  S(   Nt   genshi(   R    R)   R*   R-   (   R   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   test_apply_genshi_fancy8   s    c         C   s™   t  j t d ƒ |  j ƒ  t t j j t d ƒ ƒ j	 ƒ  } |  j
 | j d ƒ d k ƒ t t j j t d ƒ ƒ j	 ƒ  } |  j
 | j d ƒ d k  ƒ d  S(   NR#   s
   index.htmls   />i    s   index.html4(   R    R)   R*   R'   R   R
   R   R   R   R   R   t   find(   R   t   output(    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   test_apply_filter_html<   s    
!!c         C   s\   t  j t d ƒ |  j ƒ  t t j j t d ƒ ƒ j	 ƒ  } |  j
 | j d ƒ d k ƒ d  S(   Nt   mememes
   index.htmls4   <div class="sidebar"><h2>Memes <a href="memes.atom">i    (   R    R)   R*   R-   R   R
   R   R   R   R   R   R1   (   R   R2   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   test_apply_filter_mememeF   s    
!c         C   s+  t  j j d d ƒ j ƒ  } | j d ƒ | j d ƒ t  j j d d d j | ƒ ƒ t j |  j	 ƒ xg d d d g D]V } t
 j j t | ƒ } |  j t
 j j | ƒ | ƒ |  j t
 j | ƒ j d	 k ƒ qt Wt t
 j j t d ƒ ƒ j ƒ  } |  j | j d
 ƒ d	 k ƒ |  j | j d ƒ d	 k ƒ d  S(   Nt   Planett   template_filess   rss10.xml.tmpls   rss20.xml.tmplt    s
   index.htmls
   planet.csss   images/jdub.pngi    s   <h1>test planet</h1>s1   <h4><a href="http://example.com/2">Venus</a></h4>(   R    t   parsert   getR   t   removet   setR   R   R   R   R
   R   R   R   R   R   R   R   R   R1   (   R   t	   templatesR"   R   R#   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyR-   M   s    #!c         C   sb   t  j t d ƒ t j |  j ƒ t t j j	 t
 d ƒ ƒ j ƒ  } |  j | j d ƒ d k ƒ d  S(   Nt   filters
   index.htmls&    href="http://example.com/default.css"i    (   R    R)   R*   R   R   R   R   R
   R   R   R   R   R   R1   (   R   R#   (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   test_apply_filterb   s    !(   t   __name__t
   __module__R   R   R'   R+   R.   R0   R3   R5   R-   R?   (    (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyR      s   							
		t   test_R0   R5   s   xsltproc -Vt   ti   iÿ   s6   xsltproc is not available => can't test XSLT templates(#   t   unittestR
   R   t   planetR    R   R   t   xml.domR   R   R*   R   t   TestCaseR   t   test_filter_genshit   dirt   GenshiFilterTestst   methodt
   startswitht   delattrt   libxml2t   ImportErrort	   win32pipet   popen4t   stdint   stdoutR	   R   t   exitcodet   IOErrort   commandst   getstatusoutputt
   exitstatusR2   t   warn(    (    (    sA   /home/sa3ruby/intertwingly.net/code/venus-bzr/tests/test_apply.pyt   <module>   sB   $_ 

 