
    ^iI	                         d dl Zd dlmc mZ d dlZd dlmZmZ d dl	m
Z
mZmZ d dlmZ d dlZej                   j#                  d d       d dlmZ  ee      Zej*                  d        Zd Zd	 Zy)
    N)datetimetimezone)	AsyncMock	MagicMockpatch)
TestClientz!/home/jang/Projects/ai-researcher)appc                     t               } t               | _        t               | _        t               | _        t               | _        t               }t        |       |j                  _        t        d      |j                  _        || fS )u*   创建mock session maker用于集成测试return_valueN)	r   r   addflushrefreshcommitr   
__aenter__	__aexit__)mock_sessionmakers     E/home/jang/Projects/ai-researcher/tests/integration/test_tasks_api.pymock_session_makerr      sk     ;L {L"L$;L#+LKE$-<$HE!#,$#?E ,    c                    | \  }}t        d|      5  t        j                  ddi d      }|j                  }d}||k(  }|st	        j
                  d|fd	||f      d
t        j                         v st	        j                  |      rt	        j                  |      nd
t	        j                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}|j                         d   }	t               }
|	|
_        d|
_        t!        j"                  t$        j&                        |
_        t!        j"                  t$        j&                        |
_        d |
_        |
|j.                  _        t        j/                  d|	       }|j                  }d}||k(  }|st	        j
                  d|fd	||f      d
t        j                         v st	        j                  |      rt	        j                  |      nd
t	        j                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}|j                         }|d   }||	k(  }|st	        j
                  d|fd||	f      t	        j                  |      dt        j                         v st	        j                  |	      rt	        j                  |	      nddz  }dd|iz  }t        t	        j                  |            d x}}d}||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |      rt	        j                  |      nddz  }dd|iz  }t        t	        j                  |            d x}}d d d        y # 1 sw Y   y xY w)N'src.core.task_manager.get_session_makerr   /api/v1/chat'   对比技术部和产品部员工数量messagecontextjson   ==z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sresponsepy0py2py5assert %(py7)spy7task_idpending/api/v1/tasks/   )z%(py1)s == %(py3)s)py1py3zassert %(py5)sr)   status)in)z%(py1)s in %(py3)sdata)r   clientpoststatus_code
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr    r   idr2   r   nowr   utc
created_at
updated_atcompleted_atgetr   )r   r   r   r%   @py_assert1@py_assert4@py_assert3@py_format6@py_format8r,   	mock_taskr4   @py_assert0@py_assert2@py_format4s                  r   test_get_task_statusrP      si   ,E<	8u	M  ;;~@ivx4y;z##*s*#s****#s******x***x***#***s*******--/), K		$	'||HLL9	'||HLL9	!%	(1% ::wi89##*s*#s****#s******x***x***#***s*******}}I)'))))')))))))))')))')))))))x4x4x44'     s   N4OOc                    | \  }}t        d|      5  t        j                  ddi d      }|j                  }d}||k(  }|st	        j
                  d|fd	||f      d
t        j                         v st	        j                  |      rt	        j                  |      nd
t	        j                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}|j                         d   }	t        j                  d|	 dddi      }|j                  }d}||k(  }|st	        j
                  d|fd	||f      d
t        j                         v st	        j                  |      rt	        j                  |      nd
t	        j                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r!   r"   r$   r%   r&   r*   r+   r,   r.   z/streamAcceptztext/event-stream)headersr/   )r   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r    rF   )
r   r   _r%   rG   rH   rI   rJ   rK   r,   s
             r   test_get_task_streamrU   7   s[   !HE1	8u	M +;;~@ivx4y;z##*s*#s****#s******x***x***#***s*******--/), ::wiw?(TgIh:i##*s*#s****#s******x***x***#***s*******+ + +s   GG77H )builtinsr:   _pytest.assertion.rewrite	assertionrewriter8   pytestr   r   unittest.mockr   r   r   fastapi.testclientr   syspathinsertsrc.mainr	   r5   fixturer   rP   rU    r   r   <module>rc      s\       ' 5 5 ) 
 6 7 	C   2	+r   