
    $gJ"                         d dl mZ d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    )literal_evalN)iter_iprange	IPAddress
cidr_merge	IPNetworkIPRangeZEROFILLAddrFormatErrorc                     t          t          dd                    } t          |           dk    sJ | t          d          t          d          t          d          t          d          t          d          t          d          t          d	          t          d
          t          d          t          d          t          d          t          d          t          d          t          d          gk    sJ t	          |           t          d          t          d          t          d          t          d          t          d          t          d          gk    sJ d S )N	192.0.2.1
192.0.2.14   	192.0.2.2	192.0.2.3	192.0.2.4	192.0.2.5	192.0.2.6	192.0.2.7	192.0.2.8	192.0.2.9
192.0.2.10
192.0.2.11
192.0.2.12
192.0.2.13192.0.2.1/32192.0.2.2/31192.0.2.4/30z192.0.2.8/30z192.0.2.12/31z192.0.2.14/32)listr   lenr   r   r   )ip_lists    _/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/netaddr/tests/ip/test_ip_ranges.pytest_ip_ranger"      sX   <\::;;Gw<<2+++++++++,,,,,    " g.!!.!!.!!.!!/""/""#          c                  T   t          dd          } | t          dd          k    sJ |                                 t          d          t          d          t          d          t          d          gk    sJ t          dd          t          d	          k    sJ t          dd          }t          |          }|t	          d          t	          d
          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          t	          d          gk    sJ ||k    sJ t          |          |k    sJ |                                }|t          d          t          d          t          d          t          d          gk    sJ ||k    sJ |                                |k    sJ d S )Nr   z
192.0.2.15r   r   r   z192.0.2.8/29	192.0.2.0z192.0.2.255z192.0.2.0/24r   r   r   r   r   r   r   r   r   r   r   r   r   )r   cidrsr   r   r   )range1range2addrssubnetss       r!   test_ipranger+   2   s)   [,//FW[,777777<<>>.!!.!!.!!.!!	     ;..)N2K2KKKKK[,//FLLE+++++++++,,,,,,    " U????<<5    llnnG.!!.!!.!!.!!	     W<<>>W$$$$$$r#   c                  R   t          t          dd                    t          d          t          d          t          d          t          d          t          d          t          d          t          d          t          d          gk    sJ t          t          d	d
                    t          d	          t          d          t          d          t          d          t          d          t          d          t          d          t          d
          gk    sJ d S )Nr%   r   r   r   r   r   r   r   z::ffff:192.0.2.0z::ffff:192.0.2.7::ffff:192.0.2.1z::ffff:192.0.2.2z::ffff:192.0.2.3z::ffff:192.0.2.4z::ffff:192.0.2.5z::ffff:192.0.2.6)r   r   r    r#   r!   test_iprange_boundariesr/   d   s%   [+6677++++++++	< 	 	 	 	 /1CDDEE$%%$%%$%%$%%$%%$%%$%%$%%	J 	 	 	 	 	 	r#   c                      t          t          dd                    sJ t          t          dd                    sJ d S )N0.0.0.0255.255.255.255)boolr   r.   r#   r!   test_iprange_boolean_evaluationr4   |   sE    	#45566666	9--.......r#   c                     t          d          t          d          ft          d          t          d          ft          d          t          d          ft          d          t          d          ff} t          |           t          d          t          d          ft          d          t          d          ft          d          t          d          ft          d          t          d          fgk    sJ d S )N::r1   r2   ::255.255.255.255)r   sorted)rangess    r!   test_iprange_sortingr:      s    	4)D//*	9		y):;;<	4)$7889	9		y334	F &>>	9		y334	9		y):;;<	4)D//*	4)$7889	      r#   c                     t          dd          } | t          dd          k    sJ d| z  dk    sJ t          dd          t          dd          k    sJ t          dd          t          dd          k    sJ t          ddt          	          t          d
d          k    sJ t          j        t                    5  t          dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          dd           d d d            d S # 1 swxY w Y   d S )Nr   192.0.2.254z%sz192.0.2.1-192.0.2.254r-   ::ffff:192.0.2.254z208.049.164.000z208.050.066.255)flagsz208.49.164.0z208.50.66.255r   r6   z0.0.0.1r1   z::1)r   r	   pytestraisesr
   ipranges    r!   test_iprange_constructorrC      sO   k=11Ggk=999999'>44444%';<<0A A     ;,,[0Q0QQQQQ$&7xHHHGM M     
	'	' * *[)))* * * * * * * * * * * * * * * 
	'	' ! !i   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
	'	' " "	5!!!" " " " " " " " " " " " " " " " " "s6   >CC"C?DD #D  EE"%E"c                  d   t          dd          } t          |           dk    sJ | j        dk    sJ | j        dk    sJ | d         t	          d          k    sJ | d         t	          d          k    sJ t          j        t                    5  | d          d d d            d S # 1 swxY w Y   d S )	Nr   r<                  r      )r   r   firstlastr   r?   r@   
IndexErrorrA   s    r!   test_iprange_indexingrM      s   k=11Gw<<3=J&&&&<:%%%%1:;//////2;)M222222	z	"	"                   s   	B%%B),B)c                     t          dd          } t          | dd                   t          d          t          d          t          d          gk    sJ t          | ddd                   t          d          t          d          t          d	          t          d
          t          d          gk    sJ t          | ddd                   t          d          gk    sJ d S )Nr   r<   r      r   r   
      r   r   r   i   rI   )r   r   r   rA   s    r!   test_iprange_slicingrR      s    k=11G!+++"     "Q  +++++%     $s
#$$;)?)?(@@@@@@@r#   c                      t          j        t                    5  t          dd          ddd          d d d            d S # 1 swxY w Y   d S )Nr-   r=   r   rP   rQ   )r?   r@   	TypeErrorr   r.   r#   r!   %test_iprange_ipv6_unsupported_slicingrU      s    	y	!	! B B"$899!Bq&AAB B B B B B B B B B B B B B B B B Bs   AAAc                  ,   t          dd          t          dd          v sJ t          dd          t          dd          v sJ t          dd          t          d	d
          vsJ t          d          } | t          | j        | j                  v sJ d S )Nr   r   r   r<   zfe80::1z
fe80::fffefe80::fe80::ffff:ffff:ffff:ffffr6   r7   z10.0.0.0/30)r   r   rJ   rK   )nets    r!   test_iprange_membershiprZ      s    ;--m1T1TTTTT9l++wxA\/]/]]]]];--WTCV5W5WWWWW M
"
"C'#)SX........r#   c                     t          dd          t          dd          t          dd          f} t          |           t          dd          t          dd          t          dd          gk    sJ t          |           } |                     t          dd                     t          |           t          dd          t          dd          t          dd          t          dd          gk    sJ d S )	Nz
192.0.2.40z
192.0.2.50z
192.0.2.20z
192.0.2.30r   r<   z
192.0.2.45z
192.0.2.49)r   r8   r   append)iprangess    r!   test_more_iprange_sortingr^      s   l++l++]++H (]++l++l++      H~~HOOGL,77888(]++l++l++l++	       r#   c                  2   t          dd                                          t          d          t          d          t          d          t          d          gk    sJ t          dd                                          t          d	          gk    sJ d S )
Nr   r   z192.0.2.5/32z192.0.2.6/31z192.0.2.8/31z192.0.2.10/32rW   rX   z	fe80::/64)r   r&   r   r.   r#   r!   "test_iprange_cidr_interoperabilityr`      s    ;--3355.!!.!!.!!/""	:     8899??AAiP[F\F\E]]]]]]]r#   c                      t          dd          } t          t          | j                            ddddddd	gik    sJ |                                 sJ | j        d
k    sJ d S )Nr   r<   IPv4z1993-05zAdministered by ARINz192/8Legacyzwhois.arin.net)datedesignationprefixstatuswhois   )r   r   strinfois_reservedversionrA   s    r!    test_iprange_info_and_propertiesrn      s    k=11GGL))**!5!") 

/ 
 
 
 
      ?ar#   c                     t          t          d          t          t          j        d                    } t	          j        t                    5  t          |            d d d            n# 1 swxY w Y   t          t          d          t          t          j        dz
  d                    }t          |          t          j        k    sJ d S )Nz::0      )r   r   sysmaxsizer?   r@   rL   r   )r'   r(   s     r!   (test_iprange_invalid_len_and_alternativert     s    Yu%%ya'@'@AAF	z	"	"  F               Yu%%yq!'D'DEEFv;;#+%%%%%%s   A++A/2A/c                     t          dd          } | t          dd          k    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t	          j        |           }t	          j        |          }|| k    sJ t          |          t          |           k    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )Nr   r<   rF   rG   ri   )r   rJ   rK   rm   pickledumpsloadsidrB   bufiprange2s      r!   test_iprange_pickling_v4r}     s    k=11Ggk=999999=J&&&&<:%%%%?a
,w

C|C  Hwh<<2g;;&&&&>Z''''=J&&&&q      r#   c                  N   t          dd          } | t          dd          k    sJ | j        dk    sJ | j        dk    sJ | j        dk    sJ t	          j        |           }t	          j        |          }|| k    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )Nr-   r=   l      l      rp   )r   rJ   rK   rm   rv   rw   rx   rz   s      r!   test_iprange_pickling_v6r   )  s    (*>??Gg02FGGGGGG=O++++<?****?a
,w

C|C  Hw>_,,,,=O++++q      r#   )astr   rv   rr   r?   netaddrr   r   r   r   r   r	   r
   r"   r+   r/   r4   r:   rC   rM   rR   rU   rZ   r^   r`   rn   rt   r}   r   r.   r#   r!   <module>r      s          



 



                    @/% /% /%d  0/ / /
   " " ".
 
 
A A A(B B B
/ / /  0^ ^ ^     (& & &! ! ! ! ! ! ! !r#   