o
    pj                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ ee jd Zdd Zd	d
 Zdd Zdd Zdd ZdS )    )annotationsN)Path)Config)ScriptDirectory   c                  c  s0    h d} t dD ]}| |js|V  q
d S )N>   .gitvenvstorage__pycache__z*.py)ROOTrglobintersectionparts)excludedpath r    tests/test_platform_structure.py_python_sources   s   r   c                   C  s,   dt ttddvsJ td  rJ d S )Nzflask_server/platform__file__ platform)strgetattrstdlib_platformr   existsr   r   r   r   %test_platform_name_resolves_to_stdlib   s   r   c                   C  s"   t d t d t d d S )Nbridge_platformzapps.qr_servicezapps.messaging_service)	importlibimport_moduler   r   r   r   'test_bridge_platform_and_v1_apps_import   s   

r   c                    s   g } t  D ]B tj jddt d}t|D ]-}t|tjr3|jp%d	dr3| 
t t t|tjrF|  fdd|jD  qq| rUJ dtt|  d S )	Nutf-8encoding)filenamer   	platform.c                 3  s*    | ]}|j d rt tV  qdS )r$   N)name
startswithr   relative_tor   ).0aliasr   r   r   	<genexpr>)   s    

zBtest_no_internal_import_uses_platform_namespace.<locals>.<genexpr>z%forbidden internal platform imports: )r   astparse	read_textr   walk
isinstance
ImportFrommoduler&   appendr'   r   Importextendnamessortedset)
violationstreenoder   r*   r   /test_no_internal_import_uses_platform_namespace!   s   
	r<   c                  C  sj   t d } tt| }t|}| dgksJ | jdd}d|vs$J | jd jdd}d|vs3J d S )Nz&bridge_platform/migrations/alembic.inic9a31f2e7d44r    r!   NUEVA_PASSWORD_FUERTEzalembic/env.pyztarget_metadata = None)r   r   r   r   from_config	get_headsr.   parent)iniconfigscriptscontentsenv_contentsr   r   r   Dtest_alembic_has_one_expected_head_and_no_embedded_database_password1   s   
rG   )
__future__r   r,   r   r   r   pathlibr   alembic.configr   alembic.scriptr   r   resolveparentsr   r   r   r   r<   rG   r   r   r   r   <module>   s    