File: //usr/lib/python3/dist-packages/pbr/tests/__pycache__/test_packaging.cpython-38.pyc
U
jP�^�� � @ s d dl Z d dlZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dl
mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ ej�ej�eddd��ZG dd � d ej�ZG d
d� dej�ZG dd
� d
ej�ZG dd� dej�Z G dd� dej!�Z"G dd� dej!�Z#G dd� dej!�Z$G dd� dej!�Z%G dd� de
j&�Z'G dd� dej!�Z(G dd� dej!�Z)G dd� dej!�Z*G d d!� d!ej!�Z+G d"d#� d#ej!�Z,G d$d%� d%ej!�Z-G d&d'� d'ej!�Z.G d(d)� d)ej!�Z/d*d+� Z0dS ),� N)�matchers)� wheelfile)�git)� packaging)�basez..c sF e Zd ZdZ� fdd�Z� fdd�Zd
dd�Zd d
� Zdd� Z� Z S )�TestRepoz�A git repo for testing with.
Use of TempHomeDir with this fixture is strongly recommended as due to the
lack of config --local in older gits, it will write to the users global
configuration without TempHomeDir.
c s t t| ��� || _d S �N)�superr �__init__�_basedir)�selfZbasedir�� __class__� �:/usr/lib/python3/dist-packages/pbr/tests/test_packaging.pyr
L s zTestRepo.__init__c sB t t| ��� t�dddg| j� t�� t�dddg| j� d S )Nr Zinit�.�add)r r �setUpr �_run_cmdr Z_config_git�r r
r r r P s zTestRepo.setUp�test commitc C sZ t t�| j��}| jd| }t|d��� t�dd|g| j� t�ddd|g| j� d S )Nz/%d�wtr r �commit�-m)�len�os�listdirr �open�closer r )r �message_content�files�pathr r r r V s
zTestRepo.commitc C s t �ddddg| j� d S )Nr �resetz--hardzHEAD^�r r r r r r r �uncommit] s zTestRepo.uncommitc C s t �dddd|g| j� d S )Nr �tagz-smztest tagr# �r �versionr r r r% ` s �zTestRepo.tag)r )
�__name__�
__module__�__qualname__�__doc__r
r r r$ r% �
__classcell__r r r
r r D s
r c s e Zd ZdZ� fdd�Z� ZS )�
GPGKeyFixturezxCreates a GPG key for testing.
It's recommended that this be used in concert with a unique home
directory.
c s* t t| ��� | �t�� �}t�d�}t� ddg|j
�}|d �d�D ]>}|�|�}|rFt
|�d��t
|�d��t
|�d��f} q�qF|d kr�d }tj
�|j
d
�}t|d��2}|d dkr�|d dkr�|�d� |�d
� W 5 Q R X |d dkr�d}n|d dk�r
d}nd}t� ddd||g|j
� d S )Nz#^gpg\s.*\s([\d+])\.([\d+])\.([\d+])Zgpgz --versionr �
� � � )r r r z
key-configr zO
%no-protection
%transient-key
a
%no-ask-passphrase
Key-Type: RSA
Name-Real: Example Key
Name-Comment: N/A
Name-Email: example@example.com
Expire-Date: 2d
Preferences: (setpref)
%commit
z--quick-randomz--debug-quick-random� z --gen-keyz--batch)r r- r �
useFixture�fixtures�TempDir�re�compiler r r! �split�match�int�groupr �joinr �write)r �tempdirZgnupg_version_reZ
gnupg_version�lineZconfig_file�fZgnupg_randomr
r r r l s8
�
�zGPGKeyFixture.setUp)r( r) r* r+ r r, r r r
r r- e s r- c @ s"