3
�[g!1 � @ s� d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd lm
Z
dd
lmZ ddlmZ ddl
mZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G dd� de�ZG dd� de�ZG dd � d e�Z G d!d"� d"e�Z!G d#d$� d$e�Z"dS )%z�Contracts tests. These tests mainly check API sanity in terms of
returned types and APIs availability.
Some of these are duplicates of tests test_system.py and test_process.py.
� N)�AIX)�FREEBSD)�LINUX)�MACOS)�NETBSD)�OPENBSD)�POSIX)�SUNOS)�WINDOWS)�long)�GITHUB_ACTIONS)�HAS_CPU_FREQ)�HAS_NET_IO_COUNTERS)�HAS_SENSORS_FANS)�HAS_SENSORS_TEMPERATURES)�PYPY)� QEMU_USER)�SKIP_SYSCONS)�PsutilTestCase)�create_sockets)�enum)�
is_namedtuple)�kernel_version)�pytestc @ sH e Zd Zdd� Zdd� Zdd� Zdd� Zejj e
o4ed d
�dd� �Zd
S )�TestAvailConstantsAPIsc C s t td�tptptkst�d S )N�PROCFS_PATH)�hasattr�psutilr r r �AssertionError)�self� r �G/usr/local/lib64/python3.6/site-packages/psutil/tests/test_contracts.py�test_PROCFS_PATH3 s z'TestAvailConstantsAPIs.test_PROCFS_PATHc C sj | j }|ttd�t� |ttd�t� |ttd�t� |ttd�t� |ttd�t� |ttd�t� d S )NZABOVE_NORMAL_PRIORITY_CLASSZBELOW_NORMAL_PRIORITY_CLASSZHIGH_PRIORITY_CLASSZIDLE_PRIORITY_CLASSZNORMAL_PRIORITY_CLASSZREALTIME_PRIORITY_CLASS)�assertEqualr r r
)r �aer r r! �test_win_priority6 s z(TestAvailConstantsAPIs.test_win_priorityc C sJ | j }|ttd�t� |ttd�t� |ttd�t� |ttd�t� d S )NZIOPRIO_CLASS_NONEZIOPRIO_CLASS_RTZIOPRIO_CLASS_BEZIOPRIO_CLASS_IDLE)r# r r r )r r$ r r r! �test_linux_ioprio_linux? s
z.TestAvailConstantsAPIs.test_linux_ioprio_linuxc C sJ | j }|ttd�t� |ttd�t� |ttd�t� |ttd�t� d S )NZIOPRIO_HIGHZ
IOPRIO_NORMALZ
IOPRIO_LOWZIOPRIO_VERYLOW)r# r r r
)r r$ r r r! �test_linux_ioprio_windowsF s
z0TestAvailConstantsAPIs.test_linux_ioprio_windowsz%unsupported on GITHUB_ACTIONS + LINUX)�reasonc C s� | j }|ttd�tpt� |ttd�tp*t� |ttd�tp>t� |ttd�tpRt� |ttd�tpft� |ttd�tpzt� |ttd�tp�t� |ttd�tp�t� |ttd �tp�t� |ttd
�tp�t� |ttd�tp�t� |ttd�t� t�r�t� dk�r|ttd�t� t� dk�r0|ttd�t� t� dk�rL|ttd�t� t� dk�rh|ttd�t� t� dk�r�|ttd�t� |ttd�t� |ttd�t� |ttd�t� d S )NZ
RLIM_INFINITYZ RLIMIT_ASZRLIMIT_COREZ
RLIMIT_CPUZRLIMIT_DATAZRLIMIT_FSIZEZRLIMIT_MEMLOCKZ
RLIMIT_NOFILEZRLIMIT_NPROCZ
RLIMIT_RSSZRLIMIT_STACKZRLIMIT_LOCKS� � � ZRLIMIT_MSGQUEUE� ZRLIMIT_NICEZ
RLIMIT_RTPRIO� Z
RLIMIT_RTTIMEZRLIMIT_SIGPENDINGZRLIMIT_SWAPZ
RLIMIT_SBSIZEZRLIMIT_NPTS)r) r* r+ )r) r* r, )r) r* r, )r) r* r- )r) r* r+ )r# r r r r r r )r r$ r r r! �test_rlimitM s6 z"TestAvailConstantsAPIs.test_rlimitN)
�__name__�
__module__�__qualname__r" |