Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_msilib.cpython-311.opt-1.pyc
�

�Ke��L�dZddlZddlZddlmZddlmZmZddlZej	��5ej
de��ed��Zddd��n#1swxYwYddl
Zd�ZGd�d	ej��ZGd
�dej��Zedkrej��dSdS)
z# Test suite for the code in msilib �N)�
import_module)�TESTFN�unlink�ignore�msilibc�d�tdz}tj|tjdddd��}||fS)Nz.msizPython Tests�product_codez1.0�PSF)rr�
init_database�schema)�path�dbs  �:/usr/local/apps/python3/lib/python3.11/test/test_msilib.pyrr
s<���F�?�D�	�	���
���
�
�

�
�B��t�8�O�c�D�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
S)�MsiDatabaseTestCasec��t��\}}g}|�d��}|�d��	|���}|�n)|�|�d�����@|���|���|�|gd���|�t|��dS)Nz$SELECT Property, Value FROM PropertyT�)�ProductName�ProductCode�ProductVersion�Manufacturer�ProductLanguage)
r�OpenView�Execute�Fetch�append�	GetString�Close�assertEqual�
addCleanupr)�selfr�db_path�
properties�view�records      r�test_view_fetch_returns_nonez0MsiDatabaseTestCase.test_view_fetch_returns_nones���#�o�o���G��
��{�{�A�B�B�����T����	3��Z�Z�\�\�F��~�����f�.�.�q�1�1�2�2�2�		3�
	
�
�
����
���
�
�
�����
�
�
�	
�	
�	
�	
�����(�(�(�(�(rc�|�t��\}}|�d��}|�d��|���}|�|�d��d��|���|���|�t|��dS)Nu&SELECT 'ß-розпад' FROM Propertyruß-розпад)	rrrrr rrr!r)r"rr#r%r&s     r�test_view_non_asciiz'MsiDatabaseTestCase.test_view_non_ascii1s���#�o�o���G��{�{�C�D�D�����T��������������)�)�!�,�,�.?�@�@�@��
�
����
���
�
�
������(�(�(�(�(rc�&�t��\}}	|�d��}|�tj��}|�|d��|�tjd��|�tj��}|�|d��|�tjd��|�tj��}|�|d��|�tjd��|�tj��}|�|d��d}d}tj|��dS#d}d}tj|��wxYw)	N�csInstallation Database��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa��aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)	r�GetSummaryInformation�GetPropertyr�	PID_TITLEr �SetProperty�osr)r"rr#�sum_info�titles     r�&test_summaryinfo_getproperty_issue1104z:MsiDatabaseTestCase.test_summaryinfo_getproperty_issue1104;sf��#�o�o���G�	��/�/��3�3�H��(�(��)9�:�:�E����U�$<�=�=�=�� � ��!1�9�=�=�=��(�(��)9�:�:�E����U�J�/�/�/�� � ��!1�:�>�>�>��(�(��)9�:�:�E����U�K�0�0�0�� � ��!1�:�>�>�>��(�(��)9�:�:�E����U�K�0�0�0��B��H��I�g��������B��H��I�g�������s�E	E6�6Fc��|�tj��5}tjdtj��ddd��n#1swxYwY|�t
|j��d��dS)Nznon-existent.msizopen failed)�assertRaisesr�MSIError�OpenDatabase�MSIDBOPEN_READONLYr �str�	exception)r"�cms  r�test_database_open_failedz-MsiDatabaseTestCase.test_database_open_failedRs���
�
�
�v��
/�
/�	O�2��� 2�F�4M�N�N�N�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�����R�\�*�*�M�:�:�:�:�:s� A�A�Ac�L�tj�td��}|�t
j��5}tj|t
j��ddd��n#1swxYwY|�	t|j��d��dS)Nztest.msiz
create failed)r3r
�joinrr8rr9r:�MSIDBOPEN_CREATEr r<r=)r"r#r>s   r�test_database_create_failedz/MsiDatabaseTestCase.test_database_create_failedWs����'�,�,�v�z�2�2��
�
�
�v��
/�
/�	B�2�����)@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�����R�\�*�*�O�<�<�<�<�<s� A1�1A5�8A5c��t��\}}|�d��}|�|�tj����|���|�t|��dS)Nr)	rr/�assertIsNoner0r�PID_SECURITYrr!r)r"rr#�summarys    r�test_get_property_vt_emptyz.MsiDatabaseTestCase.test_get_property_vt_empty]sn��#�o�o���G��*�*�1�-�-�����'�-�-�f�.A�B�B�C�C�C�
���
�
�
������(�(�(�(�(rc	��t��\}}|�t|��|�|j��|�tjj��t	j|dddd��}t	jd��}t	j	||dtddd��}|�d|dd��dS)	Nr�Featurez	A feature�Python�CAB�	TARGETDIR�	SourceDir�keyfile)rr!rrr�_directories�clearrJrL�	Directoryr�start_component)r"rr#�feature�cab�dirs      r�&test_directory_start_component_keyfilez:MsiDatabaseTestCase.test_directory_start_component_keyfileds���#�o�o���G������(�(�(������!�!�!�����+�1�2�2�2��.��Q�	�;��I�I���j�������r�3��f�k�*�A�/�/�����D�'�4��;�;�;�;�;rc�V�t��\}}|�t|��|�|j��|�d��}|�tj��5|�d��ddd��dS#1swxYwYdS)Nr���)	rr!rrr/r8rr9r0)r"rr#�sis    r�"test_getproperty_uninitialized_varz6MsiDatabaseTestCase.test_getproperty_uninitialized_varos���#�o�o���G������(�(�(������!�!�!�
�
%�
%�a�
(�
(��
�
�
�v��
/�
/�	�	��N�N�2����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�;B�B"�%B"c��tdz}tdz}|�t|��t|d��5	ddd��n#1swxYwY|�t|��t	j||dfg��|�tj�	|����dS)Nz.txtz.cab�wbztest.txt)
rr!r�openr�	FCICreate�
assertTruer3r
�isfile)r"�filepath�cabpaths   r�test_FCICreatez"MsiDatabaseTestCase.test_FCICreatews����F�?���6�/�������)�)�)�
�(�D�
!�
!�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������(�(�(����H�j�#9�":�;�;�;��������w�/�/�0�0�0�0�0s�A�A�AN)�__name__�
__module__�__qualname__r'r)r6r?rCrHrWr[rd�rrrrs�������)�)�)�*)�)�)����.;�;�;�
=�=�=�)�)�)�	<�	<�	<����1�1�1�1�1rrc�$�eZdZdZd�Zd�Zd�ZdS)�Test_make_idz�The Identifier data type is a text string. Identifiers may contain the
    ASCII characters A-Z (a-z), digits, underscores (_), or periods (.).
    However, every identifier must begin with either a letter or an
    underscore.
    c��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��dS)N�short�nochangerequiredzone.dot�_�a�r r�make_id�r"s r�test_is_no_change_requiredz'Test_make_id.test_is_no_change_required�s�������N�7�#�#�W�	.�	.�	.�����N�-�.�.�0B�	D�	D�	D�����N�9�%�%�y�	2�	2�	2�����N�3����	&�	&�	&�����N�3����	&�	&�	&�	&�	&rc��|�tjd��d��|�tjd��d��dS)Nz9.shortz_9.shortz.shortz_.shortrprrs r�test_invalid_first_charz$Test_make_id.test_invalid_first_char�sZ������N�9�%�%�z�	3�	3�	3�����N�8�$�$�i�	1�	1�	1�	1�	1rc��|�tjd��d��|�tjd��d��dS)Nu.s‚ortz_.s_ortu
.s‚o?*+rtz
_.s_o___rtrprrs r�test_invalid_any_charz"Test_make_id.test_invalid_any_char�sZ������N�;�'�'��	4�	4�	4�����N�>�*�*�L�	:�	:�	:�	:�	:rN)rerfrg�__doc__rsrurwrhrrrjrj�sK��������
&�
&�
&�1�1�1�:�:�:�:�:rrj�__main__)rxr3�unittest�test.support.import_helperr�test.support.os_helperrr�warnings�catch_warnings�simplefilter�DeprecationWarningr�
msilib.schemar�TestCaserrjre�mainrhrr�<module>r�s���)�)�	�	�	�	�����4�4�4�4�4�4�1�1�1�1�1�1�1�1������X����%�%��H��(�$6�7�7�7�
�]�8�
$�
$�F�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�����
�
�
�e1�e1�e1�e1�e1�(�+�e1�e1�e1�P :� :� :� :� :�8�$� :� :� :�F�z����H�M�O�O�O�O�O��s�A�A�A