Your IP : 216.73.216.196
B
.��V�
� @ sD d dl mZ d dlmZ d dlmZ d dlmZ G dd� de�Z dS )� )�Adapter)� Directive)�_)�Resultc @ sl e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� ZdS )�Rulesc C s || _ || _g dg d�| _d S )Nr )�plan�test�version)� _filename�_suite�_lines_seen)�self�filenameZsuite� r �:/opt/alt/python37/lib/python3.7/site-packages/tap/rules.py�__init__ s zRules.__init__c C s | j d r| �� | �|� dS )z;Check the status of all provided data and update the suite.r N)r �_process_version_lines�_process_plan_lines)r
�final_line_countr r r �check s
zRules.checkc C sF t | jd �dkr"| �td�� n | jd d dkrB| �td�� dS )zProcess version line rules.r � z Multiple version lines appeared.r z&The version must be on the first line.N)�lenr �
_add_errorr )r
r r r r s zRules._process_version_linesc C s� | j d s| �td�� dS t| j d �dkr@| �td�� dS | j d d \}}| �||�sp| �td�� dS |j| j d kr�| �td �j|j| j d d
�� dS )zProcess plan line rules.r zMissing a plan.Nr z)Only one plan line is permitted per file.r z7A plan must appear at the beginning or end of the file.r z:Expected {expected_count} tests but only {seen_count} ran.)Zexpected_countZ
seen_count)r r r r �_plan_on_valid_lineZexpected_tests�format)r
r r �at_liner r r r s
zRules._process_plan_linesc C sD |dks||krdS | j d o6| j d d dko6|dk}|r@dS dS )z#Check if a plan is on a valid line.r Tr r � F)r )r
r r Z
after_versionr r r r 4 s
zRules._plan_on_valid_linec C s | � td�j|jd�� dS )zHandle a bail line.zBailed: {reason})�reasonN)r r r r )r
Zbailr r r �handle_bailD s zRules.handle_bailc C s | � td�j| jd�� dS )z'Handle a test file that does not exist.z{filename} does not exist.)r N)r r r r
)r
r r r �handle_file_does_not_existH s z Rules.handle_file_does_not_existc C s. t dd|jjtd��}| j�t| j|�� dS )z-Handle a plan that contains a SKIP directive.TNZSKIP)r Z directive�textr r �addTestr r
)r
Z skip_planZ skip_liner r r �handle_skipping_planM s zRules.handle_skipping_planc C s | j d �||f� dS )z!Record when a plan line was seen.r N)r �append)r
r r r r r �saw_planS s zRules.saw_planc C s | j d d7 <