�
!��hj/ � � � d Z ddlZddlmc mZ ddlZddlZddl Z ddl
m
Z
mZ ddlm
Z
ddlmZmZ ddlmZ G d� d� Z G d � d
� Zy)zTests for JobManager service.� N)�datetime�timezone)�BackgroundJobConfig)� JobStatus�
ProcessOutput)�
JobManagerc �� � e Zd ZdZd� Zd� Zej j d� � Z ej j d� � Z
ej j d� � Zej j d� � Zej j d� � Z
ej j d � � Zej j d
� � Zej j d� � Zej j d� � Zej j d
� � Zej j d� � Zej j d� � Zej j d� � Zej j d� � Zej j d� � Zej j d� � Zej j d� � Zej j d� � Zd� Zej j d� � Zd� Zej j d� � Zej j d� � Zy)�TestJobManagerz Test cases for JobManager class.c �r � t � }|j }d}||u}|s�t j d|fd||f� dt j
� v st j |� rt j |� ndt j |� t j |� d�z }dd|iz }t t j |� � �dx}x}}|j }t |� }d}||k( } | �s
t j d | fd
||f� dt j
� v st j t � rt j t � nddt j
� v st j |� rt j |� ndt j |� t j |� t j |� d�z }
d
d|
iz }t t j |� � �dx}x}x} }|j }t |� }d}||k( } | �s
t j d | fd||f� dt j
� v st j t � rt j t � nddt j
� v st j |� rt j |� ndt j |� t j |� t j |� d�z }
d
d|
iz }t t j |� � �dx}x}x} }y)zTest JobManager initialization.N��is not)z2%(py2)s
{%(py2)s = %(py0)s.config
} is not %(py5)s�manager��py0�py2�py5�assert %(py7)s�py7r ��==�zK%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s._jobs
})
} == %(py8)s�len�r �py1�py3r �py8�assert %(py10)s�py10�zP%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s._processes
})
} == %(py8)s)
r �config�
@pytest_ar�_call_reprcompare�@py_builtins�locals�_should_repr_global_name� _saferepr�AssertionError�_format_explanation�_jobsr �
_processes)�selfr �@py_assert1�@py_assert4�@py_assert3�@py_format6�@py_format8�@py_assert2�@py_assert7�@py_assert6�@py_format9�@py_format11s �P/Users/dylan/Workspace/mcp/servers/mcp-background-job/tests/unit/test_service.py� test_initzTestJobManager.test_init s� � ��,���~�~�)�T�)�~�T�)�)�)�)�~�T�)�)�)�)�)�)�w�)�)�)�w�)�)�)�~�)�)�)�T�)�)�)�)�)�)�)��=�=�&�s�=�!�&�Q�&�!�Q�&�&�&�&�!�Q�&�&�&�&�&�&�s�&�&�&�s�&�&�&�&�&�&�7�&�&�&�7�&�&�&�=�&�&�&�!�&�&�&�Q�&�&�&�&�&�&�&��%�%�+�s�%�&�+�!�+�&�!�+�+�+�+�&�!�+�+�+�+�+�+�s�+�+�+�s�+�+�+�+�+�+�7�+�+�+�7�+�+�+�%�+�+�+�&�+�+�+�!�+�+�+�+�+�+�+� c � � t dd�� }t |� }|j }||k( }|s�t j d|fd||f� dt j � v st j |� rt j |� ndt j |� dt j � v st j |� rt j |� ndd�z }d d
|iz }t t j |� � �dx}}|j }|j }d}||k( }|s�t j d|fd||f� dt j � v st j |� rt j |� ndt j |� t j |� t j |� d
�z } dd| iz }
t t j |
� � �dx}x}x}}|j }|j }d}||k( }|s�t j d|fd||f� dt j � v st j |� rt j |� ndt j |� t j |� t j |� d
�z } dd| iz }
t t j |
� � �dx}x}x}}y)z2Test JobManager initialization with custom config.� i )�max_concurrent_jobs�max_output_size_bytesr )z.%(py2)s
{%(py2)s = %(py0)s.config
} == %(py4)sr r �r r �py4�assert %(py6)s�py6N)zW%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.config
}.max_concurrent_jobs
} == %(py7)s)r r r>