o
    +ke                     @   s   d dl Z ddlmZ ddlmZ ddlmZ dd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )     N   )ChunkListEntry)Item)
StableDictc                  C   s  t  } |  i ksJ d| vsJ tt d| v  W d    n1 s%w   Y  tt d| v  W d    n1 s>w   Y  tt d| v  W d    n1 sWw   Y  | dd u seJ | dddksoJ tt | d W d    n1 sw   Y  tt | d W d    n1 sw   Y  tt | d W d    n1 sw   Y  tt | j W d    n1 sw   Y  tt | `W d    d S 1 sw   Y  d S )Npathzinvalid-key   path*   mode     mode)	r   as_dictpytestraises
ValueError	TypeErrorgetAttributeErrorr   item r   7usr/lib/python3.10/site-packages/borg/testsuite/item.pytest_item_empty   s:   


"r   c                  C   s  t ddd} | jdksJ | jdksJ d| v sJ t ddd} | jdks)J | jdks0J d| v s6J tt t d W d    n1 sJw   Y  tt t ddi W d    n1 sew   Y  tt t d	d
i W d    d S 1 sw   Y  d S )N/a/b/cr
   )r   r   r   r   r	   r	   r      Zfoobarbaz)r   r   r	   r   r   r   r   r   r   r   r   test_item_from_dict%   s"   
"r   c                  C   s,   t ddd} | jdksJ | jdksJ d S )Nr   r
   r   )r   r   r	   r   r   r   r   test_item_from_kw?   s   r   c                  C   sx   t  } d| _| jdksJ |  ddiksJ | `|  i ks!J tt d| _W d    d S 1 s5w   Y  d S )Nr
   r	   invalid)r   r	   r   r   r   r   r   r   r   r   test_item_int_propertyE   s   "r   c                  C   sh   t  } ddd }}|| _| j|ksJ |  d|iksJ || _| j|ks(J |  ddiks2J d S )Nr   r   A   atimes	           )r   r!   r   )r   Zsmallbigr   r   r   test_item_bigint_propertyP   s   r#   c                  C   s2   t  } d | _| jd u sJ d | _| jd u sJ d S N)r   usergroupr   r   r   r   test_item_user_group_none[   s
   r'   c                  C   s   t  } d| _| jdksJ |  ddiksJ | `|  i ks!J tt d| _W d    n1 s4w   Y  t ddid} | jdksGJ |  ddiksQJ | `d| vsYJ d| _|  ddiksfJ d S )Nr   r   s   /a/b/cr   s   /a//c)Zinternal_dictu   /a//c)r   r   r   r   r   r   r   r   r   r   test_item_se_str_propertyc   s    r(   c                  C   sp   t  } g | _| jg ksJ | jd | jdgksJ | jd | jddgks*J |  dddgiks6J d S )Nr      chunks)r   r*   appendr   r   r   r   r   test_item_list_propertyx   s   r,   c                  C   sz   t  } t | _| jt ksJ d| jd< | jd dksJ d| jd< | jtdddks.J |  ddddiks;J d S )Nbarfoor   )r.   r-   xattrs)r   r   r/   r   r   r   r   r   test_item_dict_property   s   

r0   c                  C   s<   t  } tt d | _W d    d S 1 sw   Y  d S r$   )r   r   r   r   Zunknown_attributer   r   r   r   test_unknown_property   s   "r1   c                  C   s   t dtddd dtddd dgd} |  dksJ tt | jddd	 W d    n1 s1w   Y  | jdd
dks@J | jdd | jdksMJ d S )N鶁  r)   i  )Zcsizesizeidi  )r	   r*   i  T)
compressedmemorize)r5   r   )r6   )r   r   get_sizer   r   AssertionErrorr3   r   r   r   r   test_item_file_size   s   r9   c                  C   s   t dd} |  dksJ d S )Nr2   )r	   r   )r   r7   r   r   r   r   test_item_file_size_no_chunks   s   
r:   c                  C   s    t  } t |  | u sJ d S r$   )r   Z	from_optrZto_optrr   r   r   r   test_item_optr   s   r;   )r   cacher   r   r   helpersr   r   r   r   r   r#   r'   r(   r,   r0   r1   r9   r:   r;   r   r   r   r   <module>   s"    	