�
���h8! � � � d Z ddlZddlmc mZ ddlZddlZddl Z ddl
mZ ddlm
Z
ddlmZ ddlmZ G d� d� Z G d � d
� Zy)z!Integration tests for MCP server.� N)�BackgroundJobConfig)� JobStatus)�get_job_manager��
JobManagerc �, � e Zd ZdZej
d� � 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� � Zy)
�TestServerIntegrationz3Integration tests for the MCP server functionality.c �0 � t d�� }t |� S )�)Create a fresh job manager for each test.� )�max_concurrent_jobs)r r )�self�configs �b/Users/dylan/Workspace/mcp/servers/mcp-background-job/tests/integration/test_server_integration.py�job_managerz!TestServerIntegration.job_manager s � � %��;���&�!�!� c � � K � t � }t � }||u }|s�t j d|fd||f� dt j � v st j
|� rt j |� nddt j � v st j
|� rt j |� ndd�z }dd|iz }t t j |� � �d}t |t � }|�sd d
t j � v st j
t � rt j t � nd
dt j � v st j
|� rt j |� nddt j � v st j
t � rt j t � ndt j |� d�z }t t j |� � �d}y�w)
z7Test that get_job_manager returns a singleton instance.)�is)z%(py0)s is %(py2)s�manager1�manager2��py0�py2�assert %(py4)s�py4Nz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}�
isinstancer )r �py1r r )r �
@pytest_ar�_call_reprcompare�@py_builtins�locals�_should_repr_global_name� _saferepr�AssertionError�_format_explanationr r )r r r �@py_assert1�@py_format3�@py_format5�@py_assert3s r �test_job_manager_singletonz0TestServerIntegration.test_job_manager_singleton s � �� � #�$��"�$���8�#�#�#�#�x�8�#�#�#�#�#�#�x�#�#�#�x�#�#�#�#�#�#�8�#�#�#�8�#�#�#�#�#�#�#��(�J�/�/�/�/�/�/�/�/�z�/�/�/�z�/�/�/�/�/�/�(�/�/�/�(�/�/�/�/�/�/�J�/�/�/�J�/�/�/�/�/�/�/�/�/�/�s �HHc � � K � |j d� � d{ ��� }t j } ||� }|s�ddt j � v st j t � rt j t � ndt j |� dt j � v st j |� rt j |� ndt j |� d�z }t t j |� � �dx}}|j |� � d{ ��� }t j t j g}||v }|s�t j d|fd||f� d t j � v st j |� rt j |� nd t j |� d
�z }dd|iz }t t j |� � �dx}}t j d
� � d{ ��� |j |� � d{ ��� } t j }
| |
k( }|s�t j d|fd| |
f� dt j � v st j | � rt j | � nddt j � v st j t � rt j t � ndt j |
� d�z }dd|iz }t t j |� � �dx}}
|j# |� � d{ ��� }
d}|
j$ }||v }|s�t j d|fd||f� t j |� dt j � v st j |
� rt j |
� ndt j |� d�z }dd|iz }t t j |� � �dx}x}}|j'