File: //lib/python3/dist-packages/samba/tests/samba_tool/__pycache__/gpo.cpython-310.pyc
o
�/aw4 � @ s d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlm Z m
Z
d dlmZ d dl
mZmZ d dlmZ d dlmZmZ d dlmZ d d lmZ d d
lmZ d dlm mZ d dlmZ d dl m!Z! e j"�#e j"�$e j"�%e&�d
��Z'ddd�Z(G dd� de�Z)dS )� N)�SambaToolCmdTest)�
get_gpo_dn�get_gpo_info)�LoadParm)�
stage_file�unstage_file)�preg)�ndr_pack�
ndr_unpack)�
get_string)�ConfigParser)�StringIO)�NamedTemporaryFile)�sleepz../../../../..TFc C sH t j�| �r4|r$t| ��� }|�� t| ��� }|�� ||kr"| S dS t| ��� t|��� kr2| S dS | g}|g}|r�|�� } |�� }
t �| �}t �|
�}|�� |�� ||kr\|S |D ]A}
t j� | |
�}t j� |
|
�}t j�
|�r|�|� |�|� q^|�d�r�|s�|�d�r�|r�t|d��� t|d��� kr�| S q^|s<dS )z�Use this function to determine if the GPO backup differs from another.
xml=True checks whether any xml files are equal
binary=True checks whether any .SAMBABACKUP files are equal
Nz.xmlz.SAMBABACKUP�rb)
�os�path�isfile�open� readlines�sort�read�pop�listdir�join�isdir�append�endswith)�path1�path2�binary�xml� sortlines�file1�file2�l_dirs�r_dirs�l_dir�r_dir�dirlist�
dirlist_other�e�l_name�r_name� r. �</usr/lib/python3/dist-packages/samba/tests/samba_tool/gpo.py�has_difference( sN �
����r0 c s4 e Zd ZdZdZdZdd� Zdd� Zdd � Zd
d� Z dd
� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Z d:d;� Z!d<d=� Z"d>d?� Z#d@dA� Z$dBdC� Z%� fdDdE�Z&� fdFdG�Z'� Z(S )H�GpoCmdTestCasez%Tests for samba-tool time subcommands�testgpoz&{1E1DC8EA-390C-4800-B327-98B56A0AEA5D}c C s4 | � ddddtjd �\}}}| �|||d� dS )z?Run gpo list against the server and make sure it looks accurate�gpo�listall�-H� ldap://%s�SERVERz%Ensuring gpo listall ran successfullyN�� runsubcmdr �environ�assertCmdSuccess��self�result�out�errr. r. r/ �
test_gpo_listb s zGpoCmdTestCase.test_gpo_listc C s2 | � dddddtjd �\}}}| �|d� dS ) zfRun against a non-existent GPO, and make sure it fails (this hard-coded UUID is very unlikely to existr3 �fetchz$c25cac17-a02a-4151-835d-fae17446ee43r5 r6 r7 zcheck for result codeN)r9 r r: �
assertCmdFailr<