ó
j1dc           @  sÞ  d  d l  m Z d  d l m Z m Z m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z m Z m Z m Z m Z m Z m Z d  d l m Z m Z d e	 f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ  d e	 f d „  ƒ  YZ! d e f d „  ƒ  YZ" d  e	 f d! „  ƒ  YZ# d" e f d# „  ƒ  YZ$ d$ S(%   iÿÿÿÿ(   t   unicode_literals(   t
   ip_addresst   ip_interfacet
   ip_network(   t   EUI(   t	   ModelForm(   t   TestCase(   t   CidrTestModelt   InetTestModelt   UniqueInetTestModelt   UniqueCidrTestModelt   NoPrefixInetTestModelt   MACTestModelt   MAC8TestModel(   t	   mac_eui64t   mac_unix_commont   InetAddressTestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   t   Metac           B  s   e  Z e Z g  Z RS(    (   t   __name__t
   __module__R   t   modelt   exclude(    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR      s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR      s   t   TestInetAddressFormFieldc           B  sV   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu   10.0.0.1u   field(   t
   form_classt
   assertTruet   is_validt   assertEqualt   cleaned_dataR   (   t   selft   form(    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv4_valid   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu
   10.0.0.1.2u   field(   R   t   assertFalseR   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv4_invalid"   s    c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu
    10.0.0.1 u   fieldu   10.0.0.1(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv4_strip&   s    c         C  sƒ   t  j j d d ƒ } |  j i d d 6d | ƒ} |  j | j ƒ  ƒ | j ƒ  t  j j d | j ƒ } |  j	 | j
 t d ƒ ƒ d  S(   Nt   fieldu   10.1.2.3/24u   10.1.2.4/24u   fieldt   instancet   pk(   R   t   objectst   createR   R   R   t   savet   getR$   R   R"   R   (   R   R#   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv4_change+   s    
c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu   2001:0:1::2u   field(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv6_valid3   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   2001:0::1::2u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv6_invalid8   s    c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu    2001:0:1::2 u   fieldu   2001:0:1::2(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv6_strip<   s    c         C  sƒ   t  j j d d ƒ } |  j i d d 6d | ƒ} |  j | j ƒ  ƒ | j ƒ  t  j j d | j ƒ } |  j	 | j
 t d ƒ ƒ d  S(   NR"   u   2001:0:1::2/64u   2001:0:1::3/64u   fieldR#   R$   (   R   R%   R&   R   R   R   R'   R(   R$   R   R"   R   (   R   R#   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv6_changeA   s    
(   R   R   R   R   R   R    R!   R)   R*   R+   R,   R-   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR      s   							t    NoPrefixInetAddressTestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   R   c           B  s   e  Z e Z g  Z RS(    (   R   R   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   K   s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR.   J   s   t    TestNoPrefixInetAddressFormFieldc           B  sD   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu   10.0.0.1u   field(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   S   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu
   10.0.0.1.2u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR    X   s    c         C  sH   t  j j d d ƒ } |  j i d d 6d | ƒ} |  j | j ƒ  ƒ d  S(   NR"   u   10.1.2.3/24u   10.1.2.4/24u   fieldR#   (   R   R%   R&   R   R   R   (   R   R#   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv4_prefix_invalid\   s    c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu   2001:0:1::2u   field(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR*   a   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   2001:0::1::2u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR+   f   s    c         C  sH   t  j j d d ƒ } |  j i d d 6d | ƒ} |  j | j ƒ  ƒ d  S(   NR"   u   2001:0:1::2/64u   2001:0:1::3/64u   fieldR#   (   R   R%   R&   R   R   R   (   R   R#   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_form_ipv6_prefix_invalidj   s    (
   R   R   R.   R   R   R    R0   R*   R+   R1   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR/   P   s   					t   UniqueInetAddressTestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   R   c           B  s   e  Z e Z g  Z RS(    (   R   R   R	   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   q   s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR2   p   s   t   TestUniqueInetAddressFormFieldc           B  s   e  Z e Z RS(    (   R   R   R2   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR3   v   s   t   CidrAddressTestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   R   c           B  s   e  Z e Z g  Z RS(    (   R   R   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   {   s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR4   z   s   t   TestCidrAddressFormFieldc           B  sV   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu   10.0.1.0/24u   field(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   ƒ   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   10.0.0.1.2/32u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR    ˆ   s    c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu    10.0.1.0/24 u   fieldu   10.0.1.0/24(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR!   Œ   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   10.0.0.1.2/24u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt$   test_form_ipv4_bits_to_right_of_mask‘   s    c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu   2001:0:1::/64u   field(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR*   •   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   2001:0::1::2/128u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR+   š   s    c         C  sJ   |  j  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d t d ƒ ƒ d  S(   Nu    2001:0:1::/64 u   fieldu   2001:0:1::/64(   R   R   R   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR,   ž   s    c         C  s-   |  j  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   2001:0::1::2/64u   field(   R   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt$   test_form_ipv6_bits_to_right_of_mask£   s    (   R   R   R4   R   R   R    R!   R6   R*   R+   R,   R7   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR5   €   s   							t   UniqueCidrAddressTestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   R   c           B  s   e  Z e Z g  Z RS(    (   R   R   R
   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   ©   s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR8   ¨   s   t   TestUniqueCidrAddressFormFieldc           B  s   e  Z e Z RS(    (   R   R   R8   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR9   ®   s   t   MacAddressTestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   R   c           B  s   e  Z e Z g  Z RS(    (   R   R   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   ³   s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR:   ²   s   t   TestMacAddressFormFieldc           B  sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C  s   t  d d t ƒ|  _ d  S(   Nu   00:aa:2b:c3:dd:44t   dialect(   R   R   t   mac(   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   setUp¹   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   0:AA:2b:c3:dd:44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt	   test_unix¼   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00:aa:2b:c3:dd:44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_unix_commonÁ   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00-AA-2B-C3-DD-44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt
   test_eui48Æ   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa.2bc3.dd44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt
   test_ciscoË   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa2b:c3dd44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_24bit_colonÐ   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa2b-c3dd44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_24bit_hyphenÕ   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa2b:c3dd44u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt	   test_bareÚ   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu    00:aa:2b:c3:dd:44 u   field(   R:   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt
   test_stripß   s    c         C  s*   t  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   notvalidu   field(   R:   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_invalidä   s    (   R   R   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR;   ¸   s   									t   MacAddress8TestModelFormc           B  s   e  Z d  d d „  ƒ  YZ RS(   R   c           B  s   e  Z e Z g  Z RS(    (   R   R   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR   ê   s   (    (   R   R   R   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyRH   é   s   t   TestMacAddress8FormFieldc           B  sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C  s   t  d d t ƒ|  _ d  S(   Nu   00:aa:2b:c3:dd:44:55:ffR<   (   R   R   R=   (   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR>   ð   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   0:AA:2b:c3:dd:44:55:FFu   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR?   ó   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00:aa:2b:c3:dd:44:55:ffu   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyR@   ø   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00-AA-2B-C3-DD-44-55-FFu   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt
   test_eui64ý   s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa.2bc3.dd44.55ffu   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyRB     s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa:2bc3:dd44:55ffu   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_16bit_colon  s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu   00aa-2bc3-dd44-55ffu   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   test_16bit_hyphen  s    c         C  sD   t  i d d 6ƒ } |  j | j ƒ  ƒ |  j | j d |  j ƒ d  S(   Nu    00:aa:2b:c3:dd:44:55:ff u   field(   RH   R   R   R   R   R=   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyRF     s    c         C  s*   t  i d d 6ƒ } |  j | j ƒ  ƒ d  S(   Nu   notvalidu   field(   RH   R   R   (   R   R   (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyRG     s    (   R   R   R>   R?   R@   RJ   RB   RK   RL   RF   RG   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyRI   ï   s   								N(%   t
   __future__R    t	   ipaddressR   R   R   t   netaddrR   t   django.formsR   t   django.testR   t   test.modelsR   R   R	   R
   R   R   R   t   netfields.macR   R   R   R   R.   R/   R2   R3   R4   R5   R8   R9   R:   R;   RH   RI   (    (    (    sO   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_form_fields.pyt   <module>   s(   4	0 (1