o
    "iF                     @   s   d dl Zd dlm  mZ d dlZd dlmZ d dl	m
Z
 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rDe  dS dS )    N)patch)Base)TenantSchemaManagerc                   @      e Zd Zdd Zdd ZdS )FakeConnectionc                 C   s
   i | _ d S N)execution_kwargsself r   I/lsinfo/ai/hellotax_ai/base_platform/tests/services/test_tenant_schema.py__init__	      
zFakeConnection.__init__c                 K   s   | j | | S r   )r   update)r
   kwargsr   r   r   execution_options   s   z FakeConnection.execution_optionsN)__name__
__module____qualname__r   r   r   r   r   r   r      s    r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
FakeSessionc                 C   s   t  | _d| _d| _d S )NF)r   connection_obj	committedrolled_backr	   r   r   r   r      s   
zFakeSession.__init__c                 C   s   | j S r   )r   r	   r   r   r   
connection   s   zFakeSession.connectionc                 C   
   d| _ d S NT)r   r	   r   r   r   commit   r   zFakeSession.commitc                 C   r   r   )r   r	   r   r   r   rollback   r   zFakeSession.rollbackN)r   r   r   r   r   r   r   r   r   r   r   r      s
    r   c                   @   r   )TenantSchemaManagerTestsc                 C   sb   t  }dd |D }| d| | d| | d| | d| | tdd |D  d S )	Nc                 S      h | ]}|j qS r   name.0tabler   r   r   	<setcomp>$       ztTenantSchemaManagerTests.test_get_tenant_table_definitions_only_returns_schema_less_tenant_tables.<locals>.<setcomp>agentsknowledge_basesdata_model_fieldsdata_modelsc                 s   s    | ]}|j d u V  qd S r   )schemar"   r   r   r   	<genexpr>*   s    ztTenantSchemaManagerTests.test_get_tenant_table_definitions_only_returns_schema_less_tenant_tables.<locals>.<genexpr>)r   get_tenant_table_definitionsassertInassertNotIn
assertTrueall)r
   tablestable_namesr   r   r   Htest_get_tenant_table_definitions_only_returns_schema_less_tenant_tables"   s   zaTenantSchemaManagerTests.test_get_tenant_table_definitions_only_returns_schema_less_tenant_tablesc                    s   i   fdd}t  }ttjd| | t|d W d    n1 s'w   Y  | |j | 	|j
 | |jjd d di |  d  | d d	  | d
 d	  d S )Nc                    s&   |  d< dd |D  d< | d< d S )Nbindc                 S   r   r   r    r"   r   r   r   r%   1   r&   zxTenantSchemaManagerTests.test_create_tenant_tables_uses_schema_translate_map.<locals>.fake_create_all.<locals>.<setcomp>r3   
checkfirstr   )r5   r2   r6   capturedr   r   fake_create_all/   s   zeTenantSchemaManagerTests.test_create_tenant_tables_uses_schema_translate_map.<locals>.fake_create_all
create_all   schema_translate_maptenant_7r6   r'   r3   r(   )r   r   objectr   metadatar0   r   create_tenant_tablesr   assertFalser   assertEqualr   r   r.   )r
   r9   dbr   r7   r   3test_create_tenant_tables_uses_schema_translate_map,   s   
zLTenantSchemaManagerTests.test_create_tenant_tables_uses_schema_translate_mapN)r   r   r   r4   rD   r   r   r   r   r   !   s    
r   __main__)builtins@py_builtins_pytest.assertion.rewrite	assertionrewrite
@pytest_arunittestunittest.mockr   app.db.baser   app.db.tenant_schemar   r   r   TestCaser   r   mainr   r   r   r   <module>   s   " 	#