�
$.VfcK � �\ � d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm Z d dlm
Z
G d� d� Z G d� d � Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ ejB d� Z" ejB d� Z# ejB d � Z$d!Z%d"Z&d#Z'd$Z(d%Z)d&Z*d'� Z+d(� Z,y))� N)�base64)� AptFacade)�append_binary_file)�create_binary_filec �V � e Zd ZdZd� Z d
d�Z dd�Zd� Z d
d�Zd� Z d � Z
y)�AptFacadeHelperz<Helper that sets up an AptFacade with a tempdir as its root.c �F � |j � |_ t j t j j |j d� � t j j |j dddd� | _ t |_ t |j �� |_ d|j _
d|j _ | j |_ | j |_
| j |_ | j |_ | j |_ y ) Nzetc/apt/preferences.d�var�lib�dpkg�status)�rootTr )�makeDir�apt_root�os�makedirs�path�join�dpkg_statusr �Facade�facade�refetch_package_index�dpkg_retry_sleep�_add_system_package�_install_deb_file�_add_package_to_deb_dir�_touch_packages_file�_hash_packages_by_name��self� test_cases �C/usr/lib/python3/dist-packages/landscape/lib/apt/package/testing.py�set_upzAptFacadeHelper.set_up s� � �&�.�.�0� ��
���B�G�G�L�L��!3�!3�5L�M�N��7�7�<�<��������
��� %� ��$�)�*<�*<�=� ��15� ���.� -.� ���)�(,�(@�(@� �%�&*�&<�&<� �#�,0�,H�,H� �)�)-�)B�)B� �&�+/�+F�+F� �(� Nc
� � |�i }|dddd|d|d|z d� }|j |� t |d� 5 }|j � j d � } d d d � d
v r| j d
� dj
t j D �
cg c] }
|
|v rdj |
||
� �� c}
� j d
� }| j |� t |dd� 5 }|j d j
t | � � � |j d� d d d � y # 1 sw Y ��xY w# t $ r g } Y ��w xY wc c}
w # 1 sw Y y xY w)N�optional�misc�1234�Someone�sourcezshort description
) �Package�Priority�SectionzInstalled-Size�
Maintainer�Architecture�Source�Version�Description�rb�
r$ �
z{}: {}zutf-8�wbr �
)�update�open�read�split�OSError�remover �apt_pkg�REWRITE_PACKAGE_ORDER�format�encode�append�write�sorted)
r �
packages_file�name�architecture�version�description�control_fields�package_stanza�src�packages�key�new_package�dests
r" |