관리-도구
편집 파일: test_rules.cpython-39.pyc
a "e� � @ s� d dl T ddlmZ ddlmZmZ zddlmZmZ dZ W n ddl mZmZ dZ Y n0 G dd � d ej�Z ed kr�e�� dS )� )�*� )�DATA_DIR)�Rules�Rule)�patch� mock_openz builtins.openz__builtin__.openc @ s` e Zd Zedd� �Zdd� Zdd� Zdd� Zd d � Zdd� Z d d� Z dd� Zdd� Zdd� Z dS )� TestRulesc C s dd� t jD �| _d S )Nc S s g | ]}|� t�r|�qS � )� startswithr ��.0�xr r �;/usr/lib/python3.9/site-packages/tracer/tests/test_rules.py� <listcomp> s �z(TestRules.setUpClass.<locals>.<listcomp>)r �DEFINITIONS)�clsr r r � setUpClass s zTestRules.setUpClassc C s | j t_ d t_d S �N)r r Z_rules��selfr r r �setUp s zTestRules.setUpc C s t �� D ]}| �|t� qd S r )r �allZassertIsInstancer �r Zruler r r �test_rules_types s zTestRules.test_rules_typesc C s| d}t �� D ]j}d|vs d|vr2| �dt|� � |jt j�� vrR| �d|j � t|�dkrn| �d|j � |d7 }qd S )Nr �name�actionzMissing attributes in rule #zUnknown action in rule: � z Unsupported attributes in rule: ) r r �fail�strr ZACTIONS�valuesr �len)r �i�rr r r �test_rules_attributes s zTestRules.test_rules_attributesc C s4 t �� }|D ]"}|�|�dkr| �d|j � qd S )Nr zDuplicate rules for: )r r �countr r )r �rulesr# r r r �test_rules_duplicity* s zTestRules.test_rules_duplicityc C s | � t�d�� d S )NZNON_EXISTING_APPLICATION)ZassertIsNoner �findr r r r �test_app_with_no_rule0 s zTestRules.test_app_with_no_rulec C s0 t ddi�}| �t|�d� | �t|�d� d S )Nr �fooz<Rule: foo>)r �assertEqualr �reprr r r r �test_representations3 s zTestRules.test_representationsc C s8 t ddd��}t ddd��}|�|� | �|jd� d S )Nr* �bar)r r Zbaz)r �updater+ r )r Zr1Zr2r r r �test_update8 s zTestRules.test_updatec C s� dgt _d}ttt|d���v t �� }| �t|�d� | �tdd� |D ��� | �|d j d� | �|d j d � | �|d j d� W d � n1 s�0 Y dS ) z/ Test parsing a single XML file with rules zwhatever-file.xmlzM<rules> <rule name='foo' action='return' /> <rule name='bar' /></rules>)Z read_datar c S s g | ]}t |t��qS r )� isinstancer r r r r r M � z'TestRules.test_load.<locals>.<listcomp>r r* �returnr r. N)r r r � builtins_openr r r+ r! Z assertTruer r )r �datar&