ó
?ú¼Wc           @   s)   d  d l  Z  d e  j f d „  ƒ  YZ d S(   iÿÿÿÿNt   EvalTestc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s…   t  t |  ƒ j | | ƒ t | j d d ƒ d |  j ƒ  d ƒ |  _ t | d d |  j ƒ  d ƒ |  _ | d |  _ | d	 |  _	 d  S(
   Nt   preamblet    s   %s.preamblet   exect   tests   %s.testt   evalt   successt   failure(
   t   superR    t   __init__t   compilet   gett   getPathR   R   R   R   (   t   selft   questiont   testDict(    (    s   tutorialTestClasses.pyR	      s
    +#c         B   s-   e  | ƒ } |  j | Ue e |  j | ƒ ƒ S(   N(   t   dictR   t   strR   R   (   R   t
   moduleDictt   bindings(    (    s   tutorialTestClasses.pyt   evalCode   s    c         C   s   |  j  | ƒ } | | d k rK | j d |  j ƒ | j d |  j ƒ t S| j d |  j ƒ | j d |  j ƒ | j d | ƒ | j d | d ƒ t S(   Nt   results   PASS: %ss   	%ss   FAIL: %ss   	student result: "%s"s   	correct result: "%s"(   R   t
   addMessaget   pathR   t   TrueR   t   False(   R   t   gradesR   t   solutionDictR   (    (    s   tutorialTestClasses.pyt   execute"   s    c         C   sX   t  | d ƒ } | j d |  j ƒ | j d ƒ | j d |  j | ƒ ƒ | j ƒ  t S(   Nt   ws$   # This is the solution file for %s.
sP   # The result of evaluating the test must equal the below when cast to a string.
s   result: "%s"
(   t   opent   writeR   R   t   closeR   (   R   R   t   filePatht   handle(    (    s   tutorialTestClasses.pyt   writeSolution0   s    
(   t   __name__t
   __module__R	   R   R   R#   (    (    (    s   tutorialTestClasses.pyR       s   			(   t   testClassest   TestCaseR    (    (    (    s   tutorialTestClasses.pyt   <module>   s   