U
    jPŒ^Y  ã                   @   sJ   d dl mZ d dlZd dlZd dlmZ d dlmZ G dd„ dejƒZ	dS )é    )Úprint_functionN©Úfiles)Úbasec                       sT   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
‡  ZS )ÚFilesConfigTestc              	      sÒ  t t| ƒ ¡  t dddg¡}|  |¡ tj |j	d¡}tj |j	ddd¡}tj |j	d¡}tj |j	d	d
¡}tj |d¡}tj |j	dd¡}t 
|¡ t 
|¡ t 
|¡ t 
|¡ t 
|¡ ttj |d¡dƒ}| d¡ W 5 Q R X ttj |d¡dƒ}| d¡ W 5 Q R X ttj |d¡dƒ}	|	 d¡ W 5 Q R X ttj |d¡dƒ}| d¡ W 5 Q R X ttj |d¡dƒ}
|
 d¡ W 5 Q R X ttj |d¡dƒ}| d¡ W 5 Q R X |  t	 |j	¡¡ d S )NÚfake_package)zfake_module.pyó    )zother_fake_module.pyr   ÚetcZansiblezkolla-ansibleZtestzdir with spacezmulti spacezmore spacesÚsubÚ
subpackageZfooÚwzFoo DataZbarzBar DataZbazzBaz Dataz__init__.pyz# emptyzfile with spc)Úsuperr   ÚsetUpÚfixturesZPythonPackageZ
useFixtureÚosÚpathÚjoinr   ÚmakedirsÚopenÚwriteZDiveDir)ÚselfZpkg_fixtureZpkg_etcZpkg_ansibleZdir_spcsZdir_subdir_spcZpkg_subr   Zfoo_fileZbaz_fileZspc_fileZfile_©Ú	__class__© ú6/usr/lib/python3/dist-packages/pbr/tests/test_files.pyr      sR    þÿ
 ÿÿ  ÿ




zFilesConfigTest.setUpc                 C   s4   t t ƒ d}t |d¡ ¡  |  d|d d ¡ d S )Nr   r   r   r   Úpackages©Údictr   ZFilesConfigÚrunZassertIn©r   Úconfigr   r   r   Útest_implicit_auto_packageB   s
    ÿz*FilesConfigTest.test_implicit_auto_packagec                 C   s8   t t ddd}t |d¡ ¡  |  d|d d ¡ d S )Nr   )r   r   r   r   r   r   r   r   r   r   Útest_auto_packageJ   s    ÿÿz!FilesConfigTest.test_auto_packagec                 C   s8   t t ddd}t |d¡ ¡  |  d|d d ¡ d S )Nz
  etc/pbr = etc/*©Ú
data_filesr   r   z9
'etc/pbr/' = 
 'etc/foo'
'etc/pbr/sub' = 
 'etc/sub/bar'r   r$   r   r   r   r   r   Útest_data_files_globbingS   s    ÿÿ
þz(FilesConfigTest.test_data_files_globbingc                 C   s8   t t ddd}t |d¡ ¡  |  d|d d ¡ d S )Nz'
  'i like spaces' = 'dir with space'/*r#   r   r   z4
'i like spaces/' = 
 'dir with space/file with spc'r   r$   r   r   r   r   r   Útest_data_files_with_spaces^   s    ÿÿ
þz+FilesConfigTest.test_data_files_with_spacesc                 C   s@   d}d}t t |dd}t |d¡ ¡  |  ||d d ¡ d S )Nz5
 'one space/two space' = 'multi space/more spaces'/*úC
'one space/two space/' = 
 'multi space/more spaces/file with spc'r#   r   r   r   r$   r   ©r   r$   Zexpectedr    r   r   r   Ú*test_data_files_with_spaces_subdirectoriesi   s    ÿÿÿz:FilesConfigTest.test_data_files_with_spaces_subdirectoriesc                 C   s@   d}d}t t |dd}t |d¡ ¡  |  ||d d ¡ d S )Nz8
'one space'/'two space' = 'multi space'/'more spaces'/*r'   r#   r   r   r   r$   r   r(   r   r   r   Ú-test_data_files_with_spaces_quoted_componentsw   s    ÿÿÿz=FilesConfigTest.test_data_files_with_spaces_quoted_componentsc                 C   s8   t t ddd}t |d¡ ¡  |  d|d d ¡ d S )Nz
  share/ansible = ansible/*r#   r   r   z}
'share/ansible/' = 
'share/ansible/kolla-ansible' = 
'share/ansible/kolla-ansible/test' = 
 'ansible/kolla-ansible/test/baz'r   r$   r   r   r   r   r   Ú8test_data_files_globbing_source_prefix_in_directory_name†   s    ÿÿ
ûzHFilesConfigTest.test_data_files_globbing_source_prefix_in_directory_name)Ú__name__Ú
__module__Ú__qualname__r   r!   r"   r%   r&   r)   r*   r+   Ú__classcell__r   r   r   r   r      s   &	r   )
Z
__future__r   r   r   Z	pbr.hooksr   Z	pbr.testsr   ZBaseTestCaser   r   r   r   r   Ú<module>   s
   