o
    ˷i	                     @   s   d dl Z d dlZd dlZd dlmZ e jdd ejd e	ee
 jd  d dlmZ G dd dZG d	d
 d
ZG dd dejZedkrPe  dS dS )    N)PathDATABASE_URLzsqlite:///./test.db   )MilvusVectorStorec                   @   s.   e Zd ZdddZdd Zdd Zdd	 Zd
S )_FakeCollectionTc                 C   s   || _ g | _d S N)_has_partitioncalls)selfhas_partition r   T/lsinfo/ai/hellotax_ai/base_platform/tests/services/test_milvus_partition_cleanup.py__init__   s   
z_FakeCollection.__init__c                 C   s   | j d|f | jS )Nr   )r	   appendr   r
   partition_namer   r   r   r      s   z_FakeCollection.has_partitionc                 C   s   | j d d S )NreleaseNr	   r   r
   r   r   r   r         z_FakeCollection.releasec                 C   s   | j d|f d S )Ndrop_partitionr   r   r   r   r   r      s   z_FakeCollection.drop_partitionNT)__name__
__module____qualname__r   r   r   r   r   r   r   r   r      s
    
r   c                   @   sF   e Zd ZG dd dZG dd dZG dd dZdd Zd	d
 ZdS )_FailingMinioServicec                   @   s   e Zd ZdZdZdZi ZdS )z#_FailingMinioService._DummyResponsei  zInternal Server Errors   testN)r   r   r   statusreasondataheadersr   r   r   r   _DummyResponse   s
    r!   c                   @      e Zd Zdd ZdS )z _FailingMinioService._DummyErrorc                 C   s
   || _ d S r   )object_name)r
   r#   r   r   r   r   $      
z)_FailingMinioService._DummyError.__init__N)r   r   r   r   r   r   r   r   _DummyError#       r%   c                   @   s&   e Zd Zdd Zd	ddZdd ZdS )
z!_FailingMinioService._DummyClientc                 C   s
   g | _ d S r   )r	   r   r   r   r   r   (   r$   z*_FailingMinioService._DummyClient.__init__Tc                 C   s(   | j d|||f tddddi gS )Nlist_objectsObjr   r#   tenant_0/kb_3/a.txt)r	   r   type)r
   bucket_nameprefix	recursiver   r   r   r'   +   s   z._FailingMinioService._DummyClient.list_objectsc                 C   s"   | j d|t|f tdgS )Nremove_objectsr)   )r	   r   lenr   r%   )r
   r+   delete_listr   r   r   r.   /   s   z0_FailingMinioService._DummyClient.remove_objectsNr   )r   r   r   r   r'   r.   r   r   r   r   _DummyClient'   s    
r1   c                 C   s(   ddl m} ||| _|  | j_d S )Nr   )MinioService)app.services.storage.minior2   __new___svcr1   client)r
   r2   r   r   r   r   3   s   z_FailingMinioService.__init__c                 C   s   | j j||dS )N)r+   r,   )r5   delete_by_prefix)r
   r+   r,   r   r   r   r7   9   r   z%_FailingMinioService.delete_by_prefixN)r   r   r   r!   r%   r1   r   r7   r   r   r   r   r      s    r   c                   @   r"   )#MilvusVectorStoreDropPartitionTestsc                 C   sF   t t }d|_tdd|_| }| | | |jjg d d S )N   T)r   ))r   kb_3r   )r   r:   )	r   r4   knowledge_base_idr   
collectionr   
assertTrueassertEqualr	   )r
   storeresultr   r   r   3test_drop_partition_releases_collection_before_drop>   s   

zWMilvusVectorStoreDropPartitionTests.test_drop_partition_releases_collection_before_dropN)r   r   r   rA   r   r   r   r   r8   =   r&   r8   __main__)ossysunittestpathlibr   environ
setdefaultpathinsertstr__file__resolveparentsapp.services.storage.milvusr   r   r   TestCaser8   r   mainr   r   r   r   <module>   s     !