o
    tf                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	 e 
e d dlmZ W d   n1 s6w   Y  dd Zdd Zdd	 Zd
d Zdd Zejde dd ZdS )    N)	API_NAMESQtCoreQtGui	QtWidgets)QtWebEngineWidgetsc                  C   sf   ddl } tj| jju sJ tj| jju sJ tj| jju sJ tj| jju s(J t	j
d dks1J dS ),
    Make sure that we are using PySide
    r   NQT_APIpyside2)PySide2r   QEventr   QPainterr   QWidgetr   ZQWebEnginePageosenviron)r
    r   ]/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/qtpy/tests/test_main.pyassert_pyside2   s   r   c                  C   T   ddl } tj| jju sJ tj| jju sJ tj| jju sJ tjd dks(J dS )r   r   Nr   pyside6)	PySide6r   r   r   r   r   r   r   r   )r   r   r   r   assert_pyside6   s
   r   c                  C   r   )z+
    Make sure that we are using PyQt5
    r   Nr   pyqt5)	PyQt5r   r   r   r   r   r   r   r   )r   r   r   r   assert_pyqt5-   
   r   c                  C   r   )z+
    Make sure that we are using PyQt6
    r   Nr   pyqt6)	PyQt6r   r   r   r   r   r   r   r   )r   r   r   r   assert_pyqt69   r   r   c                  C   s   t jdd } | dkrt  dS | dkrt  dS | dkr$t  dS | dkr-t  dS zddl}W n= t	yp   zddl
}W n) t	yi   zddl}W n t	y]   ddl}t  Y nw t  Y Y dS Y Y dS w t  Y dS w t  dS )	zO
    If QT_API is specified, we check that the correct Qt wrapper was used
    r    r   r	   r   r   r   N)r   r   getlowerr   r   r   r   r   ImportErrorr
   r   r   )r   r   r
   r   r   r   r   r   test_qt_apiE   s6   






r"   apic                 C   s   |  d}t j|d|  d tj }dD ]	}||v r||= qd| d}tjtjd|g|d}|	 
d	 \}}||  ksDJ ||  ksLJ d
|d< d}tjtjd|g|d dS )z[
    If no QT_API is specified but some Qt is imported, ensure QT_API is set properly.
    z.QtCorez	Requires )reason)r   Z
USE_QT_APIz
import zG
from qtpy import API
import os
print(API)
print(os.environ['QT_API'])
z-c)envzutf-8badr   z
try:
    import qtpy
except ValueError as exc:
    assert 'Specified QT_API' in str(exc), str(exc)
else:
    raise AssertionError('QtPy imported despite bad QT_API')
z-OcN)pytestZimportorskipr   r   copy
subprocesscheck_outputsys
executablestripdecode
splitlinesr    
check_call)r#   modr%   keycmdoutputZgot_apiZ
env_qt_apir   r   r   test_qt_api_environm   s"   

r5   )
contextlibr   r)   r+   r'   Zqtpyr   r   r   r   suppress	Exceptionr   r   r   r   r   r"   markZparametrizevaluesr5   r   r   r   r   <module>   s     (