
j1dc           @  s  d  d l  m Z d  d l Z d  d l 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 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 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$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, d e- f d     YZ. d e. f d     YZ/ d e/ f d     YZ0 d e/ f d     YZ1 d e0 e f d     YZ2 d e0 e f d     YZ3 d e0 e f d     YZ4 d e0 e f d     YZ5 d e1 e f d     YZ6 d e1 e f d      YZ7 d! e1 e f d"     YZ8 d# e. f d$     YZ9 d% e9 e f d&     YZ: d' e9 e f d(     YZ; d) e f d*     YZ< d+ e f d,     YZ= d- e f d.     YZ> d/ e f d0     YZ? d1 e f d2     YZ@ d S(3   i(   t   unicode_literalsN(   t   VERSION(   t   ValidationError(	   t   IPv4Addresst   IPv4Interfacet   IPv4Networkt   IPv6Addresst   IPv6Interfacet   IPv6Networkt
   ip_addresst   ip_interfacet
   ip_network(   t   EUI(   t   IntegrityError(   t   F(   t   EmptyResultSett
   FieldError(   t   TestCase(   t   skipIf(   t   CidrArrayTestModelt   CidrTestModelt   InetArrayTestModelt   InetTestModelt   NullCidrTestModelt   NullInetTestModelt   UniqueInetTestModelt   UniqueCidrTestModelt   NoPrefixInetTestModelt   MACArrayTestModelt   MAC8ArrayTestModelt   MACTestModelt   MAC8TestModelt   AggregateTestModelt   AggregateTestChildModelt   BaseSqlTestCasec           B  s   e  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   Z RS(   u2   SELECT "table"."id", "table"."field" FROM "table" c         C  s^   | j  d d |  j  } |  j | j j | j  j   d j   j   | j   j    d  S(   Nu   "table"u   "%s"i    (	   t   replacet   tablet   assertEqualt   queryt   get_compilert   dbt   as_sqlt   stript   lower(   t   selft   qst   sql(    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   assertSqlEquals/   s    (c         C  s   | j  j | j  j   d  S(   N(   R&   R'   R(   R)   (   R,   R-   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   compile_queryset6   s    c         C  s   |  j    d  S(   N(   t   model(   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_init_with_blank9   s    c         C  s*   |  j  |  j j d t  |  j d  d  S(   Nt   field__isnullu   WHERE "table"."field" IS NULL(   R/   R-   t   filtert   Truet   select(   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_isnull_true_lookup<   s    c         C  s*   |  j  |  j j d t  |  j d  d  S(   NR3   u!   WHERE "table"."field" IS NOT NULL(   R/   R-   R4   t   FalseR6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_isnull_false_lookupB   s    c         C  s   |  j  d |  j  j   d  S(   Nt   field(   R1   t   value1t   save(   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt	   test_saveH   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   NR:   u   WHERE "table"."field" = %s(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_equals_lookupK   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   Nt   field__exactu   WHERE "table"."field" = %s(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_exact_lookupQ   s    c         C  s6   |  j  |  j j d |  j |  j g  |  j d  d  S(   Nt	   field__inu!   WHERE "table"."field" IN (%s, %s)(   R/   R-   R4   R;   t   value2R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_in_lookupW   s    c         C  s0   |  j  |  j j d |  j g  |  j d  d  S(   NRA   u   WHERE "table"."field" IN (%s)(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_in_single_lookup]   s    c         C  sE   |  j  t  0 |  j j d g   j j |  j j  j   Wd  QXd  S(   NRA   (   t   assertRaisesR   R-   R4   R&   R'   R(   R)   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_in_empty_lookupc   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   Nt	   field__gtu   WHERE "table"."field" > %s(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_gt_lookupg   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   Nt
   field__gteu   WHERE "table"."field" >= %s(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_gte_lookupm   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   Nt	   field__ltu   WHERE "table"."field" < %s(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_lt_lookups   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   Nt
   field__lteu   WHERE "table"."field" <= %s(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_lte_lookupy   s    c         C  s6   |  j  |  j j d |  j |  j f  |  j d  d  S(   Nt   field__rangeu'   WHERE "table"."field" BETWEEN %s AND %s(   R/   R-   R4   R;   t   value3R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_range_lookup   s    (   t   __name__t
   __module__R6   R/   R0   R2   R7   R9   R=   R>   R@   RC   RD   RF   RH   RJ   RL   RN   RQ   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR"   ,   s"   															t   BaseInetTestCasec           B  s   e  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   Z d   Z d   Z d   Z d   Z e e d k  d  d    Z RS(   c         C  s   |  j  d |  j  j   d  S(   NR:   (   R1   R;   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_object   s    c         C  s#   |  j  t |  j j j d d d  S(   NR:   u   abc(   RE   R   R1   t   objectst   create(   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_with_text_fails   s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   Nt   field__iexactu.   WHERE UPPER("table"."field"::text) = UPPER(%s)(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_iexact_lookup   s    c         C  sQ   t  d k r t } n t } |  j |  ! |  j |  j j d d   Wd  QXd  S(   Ni   i    t   field__searchu   10(   i   i    (   R   R   t   NotImplementedErrorRE   R0   R-   R4   (   R,   t   expected(    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_search_lookup_fails   s
    	c         C  s6   |  j  t  ! |  j |  j j d d   Wd  QXd  S(   Nt   field__yeari   (   RE   R   R0   R-   R4   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_year_lookup_fails   s    c         C  s6   |  j  t  ! |  j |  j j d d   Wd  QXd  S(   Nt   field__monthi   (   RE   R   R0   R-   R4   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_month_lookup_fails   s    c         C  s6   |  j  t  ! |  j |  j j d d   Wd  QXd  S(   Nt
   field__dayi   (   RE   R   R0   R-   R4   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_day_lookup_fails   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__net_containedu   10.0.0.0/24u   WHERE "table"."field" << %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_net_contained   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__net_contained_or_equalu   10.0.0.0/24u   WHERE "table"."field" <<= %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_net_contained_or_equals   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__net_overlapsu   10.0.0.0/24u   WHERE "table"."field" && %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_net_overlaps   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__familyi   u"   WHERE family("table"."field") = %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_family_lookup   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__hostu   10.0.0.1u&   WHERE HOST("table"."field") = HOST(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_host_lookup_sql   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__prefixlenu   16u#   WHERE MASKLEN("table"."field") = %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_prefixlen_exact_lookup_sql   s    c         C  s0   |  j  |  j j d d d g  |  j d  d  S(   Nt   field__prefixlen__inu   16u   24u*   WHERE MASKLEN("table"."field") IN (%s, %s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_prefixlen_in_lookup_sql   s    c         C  s-   |  j  |  j j d d g  |  j d  d  S(   NRq   u   16u&   WHERE MASKLEN("table"."field") IN (%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt#   test_prefixlen_in_single_lookup_sql   s    c         C  sE   |  j  t  0 |  j j d g   j j |  j j  j   Wd  QXd  S(   NRq   (   RE   R   R-   R4   R&   R'   R(   R)   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt"   test_prefixlen_in_empty_lookup_sql   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__prefixlen__gtu   16u#   WHERE MASKLEN("table"."field") > %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_prefixlen_gt_lookup_sql   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__prefixlen__gteu   16u$   WHERE MASKLEN("table"."field") >= %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_prefixlen_gte_lookup_sql   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__prefixlen__ltu   16u#   WHERE MASKLEN("table"."field") < %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_prefixlen_lt_lookup_sql   s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__prefixlen__lteu   16u$   WHERE MASKLEN("table"."field") <= %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_prefixlen_lte_lookup_sql   s    c         C  s    |  j  j j d t d   d  S(   NR:   u   field(   R1   RV   R4   R   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_query_filter_f_expression   s    i   i   ur   Subquery added in Django 1.11. https://docs.djangoproject.com/en/1.11/ref/models/expressions/#subquery-expressionsc         C  s[   d d l  m } m } |  j j j d | |  j j j d | d   j d  d    d  S(   Ni(   t   OuterReft   Subqueryt	   samefieldR:   u   fieldi   (   t   django.db.modelsR~   R   R1   RV   t   annotateR4   t   values(   R,   R~   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_query_filter_subquery   s    (   i   i   (   RR   RS   RU   RX   RZ   R^   R`   Rb   Rd   Rf   Rh   Rj   Rl   Rn   Rp   Rr   Rs   Rt   Rv   Rx   Rz   R|   R}   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyRT      s,   																						t   BaseInetFieldTestCasec           B  sk   e  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 RS(   u   10.0.0.1u   10.0.0.2/24u	   10.0.0.10c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__startswithu   10.u#   WHERE HOST("table"."field") LIKE %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_startswith_lookup
  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__istartswithu   10.u*   WHERE HOST("table"."field") LIKE UPPER(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_istartswith_lookup  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__endswithu   .1u#   WHERE HOST("table"."field") LIKE %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_endswith_lookup  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__iendswithu   .1u*   WHERE HOST("table"."field") LIKE UPPER(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_iendswith_lookup  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__regexu   10u    WHERE HOST("table"."field") ~ %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_regex_lookup"  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__iregexu   10u!   WHERE HOST("table"."field") ~* %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_iregex_lookup(  s    c         C  s   |  j  j j d d  d  S(   NR:   u   1.2.3.4(   R1   RV   R4   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_query_filter_str.  s    c         C  s    |  j  j j d t d   d  S(   NR:   u   1.2.3.4(   R1   RV   R4   R
   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_query_filter_ipaddress1  s    c         C  s    |  j  j j d t d   d  S(   Nt   field__net_containsu
   2001::0/16(   R1   RV   R4   R   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt$   test_query_filter_contains_ipnetwork4  s    (   RR   RS   R;   RB   RP   R   R   R   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   								t   BaseCidrFieldTestCasec           B  s   e  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 RS(   u   10.0.0.1/32u   10.0.2.0/24u   10.5.0.0/16c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   10.u#   WHERE TEXT("table"."field") LIKE %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   =  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   10.u*   WHERE TEXT("table"."field") LIKE UPPER(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   C  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   .1u#   WHERE TEXT("table"."field") LIKE %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   I  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   .1u*   WHERE TEXT("table"."field") LIKE UPPER(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   O  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   10u    WHERE TEXT("table"."field") ~ %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   U  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   10u!   WHERE TEXT("table"."field") ~* %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   [  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   10.0.0.1u   WHERE "table"."field" >> %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_net_contains_lookupa  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   Nt   field__net_contains_or_equalsu   10.0.0.1u   WHERE "table"."field" >>= %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_net_contains_or_equalsg  s    c         C  s   |  j  j j d d  d  S(   NR:   u
   1.2.3.0/24(   R1   RV   R4   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   m  s    c         C  s    |  j  j j d t d   d  S(   NR:   u
   1.2.3.0/24(   R1   RV   R4   R   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_query_filter_ipnetworkp  s    c         C  s   t  j d t  n } t  j d  |  j |  j j d d  |  j d  t |  d k s` t	  t
 | d j t  s| t	  Wd  QXd  S(   Nt   recordu   alwayst   field__max_prefixlenu   16u$   WHERE masklen("table"."field") <= %si   i(   t   warningst   catch_warningsR5   t   simplefilterR/   R-   R4   R6   t   lent   AssertionErrort
   issubclasst   categoryt   DeprecationWarning(   R,   t   w(    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_max_prefixlens  s    c         C  s   t  j d t  n } t  j d  |  j |  j j d d  |  j d  t |  d k s` t	  t
 | d j t  s| t	  Wd  QXd  S(   NR   u   alwayst   field__min_prefixlenu   16u$   WHERE masklen("table"."field") >= %si   i(   R   R   R5   R   R/   R-   R4   R6   R   R   R   R   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_min_prefixlen}  s    (   RR   RS   R;   RB   RP   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   8  s   											
t   TestInetFieldc           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  |  _ |  j j j   |  _ d |  _ d  S(   Nu   inet(   R   R1   RV   t   allR-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   setUp  s    	c         C  s#   |  j  t |  j d d  j  d  S(   NR:   u    (   RE   R   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_blank_fails  s    c         C  s#   |  j  t |  j d d   j  d  S(   NR:   (   RE   R   R1   t   NoneR<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_none_fails  s    c         C  s   |  j  t |  j   j  d  S(   N(   RE   R   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_nothing_fails  s    c         C  s   |  j  d d  j   d  S(   NR:   s
   1.1.1.1/24(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_accepts_bytes  s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   10.1.2.3/24t   pk(   R1   RV   RW   t   getR   t   assertIsInstanceR:   R   (   R,   t   instance(    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt$   test_retrieves_ipv4_ipinterface_type  s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   2001:db8::1/32R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt$   test_retrieves_ipv6_ipinterface_type  s    c         C  sP   |  j  j j d d  } |  j  j j d | j  } |  j t | j  d  d  S(   NR:   u   10.1.2.3/24R   (   R1   RV   RW   R   R   R%   t   strR:   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt!   test_save_preserves_prefix_length  s    c         C  s~   |  j  j j d d  } |  j  j j d d  } |  j t | j  d  |  j  j j d d  } |  j t | j  d  d  S(   NR:   u   10.1.2.3/24Rm   u   10.1.2.3u   10.1.2.3/27(   R1   RV   RW   R   R%   R   R:   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt	   test_host  s
    (   RR   RS   R   R   R   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   								t   TestInetFieldNullablec           B  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu   nullinet(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_blank  s    c         C  s   |  j  d d   j   d  S(   NR:   (   R1   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_none  s    c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    (   RR   RS   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   			t   TestInetFieldUniquec           B  s   e  Z d    Z d   Z RS(   c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu
   uniqueinet(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  s9   |  j  d d  j   |  j t |  j  d d  j  d  S(   NR:   u   1.2.3.4(   R1   R<   RE   R   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_nonunique  s    (   RR   RS   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   	t   TestInetFieldNoPrefixc           B  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu   noprefixinet(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  sP   |  j  j j d d  } |  j  j j d | j  } |  j t | j  d  d  S(   NR:   u   10.1.2.3/24R   u   10.1.2.3(   R1   RV   RW   R   R   R%   R   R:   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt!   test_save_truncates_prefix_length  s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   10.1.2.3/24R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt"   test_retrieves_ipv4_ipaddress_type  s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   2001:db8::1/32R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt"   test_retrieves_ipv6_ipaddress_type  s    c         C  s{   |  j  j j d d  |  j  j j d d  |  j  j j d d  } |  j | j   d  |  j | d j t d   d  S(   NR:   u   10.1.2.1u   10.1.3.1Re   u   10.1.2.0/24i   i    (   R1   RV   RW   R4   R%   t   countR:   R	   (   R,   R&   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_net_contained_network  s
    (   RR   RS   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s
   				t   TestCidrFieldc           B  sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu   cidr(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  s#   |  j  t |  j d d  j  d  S(   NR:   u    (   RE   R   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s#   |  j  t |  j d d   j  d  S(   NR:   (   RE   R   R1   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   |  j  t |  j   j  d  S(   N(   RE   R   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   10.1.2.0/24R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt"   test_retrieves_ipv4_ipnetwork_type  s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   2001:db8::0/32R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt"   test_retrieves_ipv6_ipnetwork_type  s    c         C  s~   |  j  j j d d  } |  j  j j d d  } |  j t | j  d  |  j  j j d d  } |  j t | j  d  d  S(   NR:   u   10.1.2.0/24Rm   u   10.1.2.0u   10.1.2.0/27(   R1   RV   RW   R   R%   R   R:   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s
    (	   RR   RS   R   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   						t   TestCidrFieldNullablec           B  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu   nullcidr(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   |  j  d d   j   d  S(   NR:   (   R1   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    (   RR   RS   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   
  s   			t   TestCidrFieldUniquec           B  s   e  Z d    Z d   Z RS(   c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu
   uniquecidr(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  s9   |  j  d d  j   |  j t |  j  d d  j  d  S(   NR:   u
   1.2.3.0/24(   R1   R<   RE   R   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR      s    (   RR   RS   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   	t   BaseMacTestCasec           B  s   e  Z e Z e Z e Z d    Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d   Z e e d k  d  d    Z RS(   c         C  s#   |  j  d t |  j   j   d  S(   NR:   (   R1   R   R;   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyRU   *  s    c         C  s-   |  j  |  j j d |  j  |  j d  d  S(   NRY   u.   WHERE UPPER("table"."field"::text) = UPPER(%s)(   R/   R-   R4   R;   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyRZ   -  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   00:u#   WHERE "table"."field"::text LIKE %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   3  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   00:u1   WHERE UPPER("table"."field"::text) LIKE UPPER(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   9  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   :ffu#   WHERE "table"."field"::text LIKE %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   ?  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   :ffu1   WHERE UPPER("table"."field"::text) LIKE UPPER(%s)(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   E  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   00u    WHERE "table"."field"::text ~ %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   K  s    c         C  s*   |  j  |  j j d d  |  j d  d  S(   NR   u   00u!   WHERE "table"."field"::text ~* %s(   R/   R-   R4   R6   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   Q  s    c         C  s    |  j  j j d t d   d  S(   NR:   u   field(   R1   RV   R4   R   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR}   W  s    i   i   ur   Subquery added in Django 1.11. https://docs.djangoproject.com/en/1.11/ref/models/expressions/#subquery-expressionsc         C  s[   d d l  m } m } |  j j j d | |  j j j d | d   j d  d    d  S(   Ni(   R~   R   R   R:   u   fieldi   (   R   R~   R   R1   RV   R   R4   R   (   R,   R~   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   Z  s    (   i   i   (   RR   RS   t   NotImplementedR;   RB   RP   RU   RZ   R   R   R   R   R   R   R}   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   %  s   									t   TestMacAddressFieldc           B  sP   e  Z d  Z d Z d Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   u   00:aa:2b:c3:dd:44u   00:aa:2b:c3:dd:45u   00:aa:2b:c3:dd:ffc         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu   mac(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   m  s    	c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   r  s    c         C  s   |  j  d d   j   d  S(   NR:   (   R1   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   u  s    c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   x  s    c           s     j  t   f d    d  S(   Nc             s     j  d d  j   S(   NR:   u   foobar(   R1   R<   (    (   R,   (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   <lambda>|  t    (   RE   R   (   R,   (    (   R,   sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_invalid_fails{  s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   00:aa:2b:c3:dd:44R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_retrieves_eui_type~  s    (   RR   RS   R;   RB   RP   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR   h  s   					t   TestMacAddress8Fieldc           B  sP   e  Z d  Z d Z d Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   u   00:aa:2b:c3:dd:44:56:74u   00:aa:2b:c3:dd:45:98:63u   00:aa:2b:c3:dd:ff:a5:b6c         C  s+   t  |  _ |  j j j   |  _ d |  _ d  S(   Nu   mac8(   R   R1   RV   R   R-   R$   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    	c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   |  j  d d   j   d  S(   NR:   (   R1   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   |  j    j   d  S(   N(   R1   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c           s     j  t   f d    d  S(   Nc             s     j  d d  j   S(   NR:   u   foobar(   R1   R<   (    (   R,   (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     R   (   RE   R   (   R,   (    (   R,   sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  sJ   |  j  j j d d  } |  j  j j d | j  } |  j | j t  d  S(   NR:   u   00:aa:2b:c3:dd:44:55:66R   (   R1   RV   RW   R   R   R   R:   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    (   RR   RS   R;   RB   RP   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   					t   TestInetAddressFieldArrayc           B  sA   e  Z d    Z d   Z d   Z e e d k  d  d    Z RS(   c         C  s   t    j   d  S(   N(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_null  s    c         C  s   t  d d g  j   d  S(   NR:   u   10.1.1.1/24(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_single_item  s    c         C  s   t  d d d g  j   d  S(   NR:   u   10.1.1.1u   10.1.1.2(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_save_multiple_items  s    i   i
   uf   ArrayField does not return correct types in Django < 1.10. https://code.djangoproject.com/ticket/25143c         C  sk   t  d d g  } | j   t  j j d | j  } |  j | j t d  g  |  j | j d t  d  S(   NR:   u   10.1.1.1/24t   idi    (	   R   R<   RV   R   R   R%   R:   R   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s
    
(   i   i
   (   RR   RS   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   			t   TestCidrAddressFieldArrayc           B  sA   e  Z d    Z d   Z d   Z e e d k  d  d    Z RS(   c         C  s   t    j   d  S(   N(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   t  d d g  j   d  S(   NR:   u   10.1.1.0/24(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   t  d d d g  j   d  S(   NR:   u   10.1.1.0/24u   10.1.2.0/24(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    i   i
   uf   ArrayField does not return correct types in Django < 1.10. https://code.djangoproject.com/ticket/25143c         C  sk   t  d d g  } | j   t  j j d | j  } |  j | j t d  g  |  j | j d t  d  S(   NR:   u   10.1.1.0/24R   i    (	   R   R<   RV   R   R   R%   R:   R   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s
    
(   i   i
   (   RR   RS   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   			t   TestMACAddressFieldArrayc           B  sA   e  Z d    Z d   Z d   Z e e d k  d  d    Z RS(   c         C  s   t    j   d  S(   N(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   t  d d g  j   d  S(   NR:   u   00:aa:2b:c3:dd:44(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   t  d d d g  j   d  S(   NR:   u   00:aa:2b:c3:dd:44u   00:aa:2b:c3:dd:45(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    i   i
   uf   ArrayField does not return correct types in Django < 1.10. https://code.djangoproject.com/ticket/25143c         C  sk   t  d d g  } | j   t  j j d | j  } |  j | j t d  g  |  j | j d t  d  S(   NR:   u   00:aa:2b:c3:dd:44R   i    (	   R   R<   RV   R   R   R%   R:   R   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s
    
(   i   i
   (   RR   RS   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   			t   TestMACAddress8FieldArrayc           B  sA   e  Z d    Z d   Z d   Z e e d k  d  d    Z RS(   c         C  s   t    j   d  S(   N(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   t  d d g  j   d  S(   NR:   u   00:aa:2b:c3:dd:44:55:ff(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    c         C  s   t  d d d g  j   d  S(   NR:   u   00:aa:2b:c3:dd:44:55:ffu   00:aa:2b:c3:dd:45:7e:6b(   R   R<   (   R,   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s    i   i
   uf   ArrayField does not return correct types in Django < 1.10. https://code.djangoproject.com/ticket/25143c         C  sk   t  d d g  } | j   t  j j d | j  } |  j | j t d  g  |  j | j d t  d  S(   NR:   u   00:aa:2b:c3:dd:44:55:67R   i    (	   R   R<   RV   R   R   R%   R:   R   R   (   R,   R   (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s
    
(   i   i
   (   RR   RS   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   			t   TestAggregatec           B  sD   e  Z e e d k  d  d    Z e e d k  d  d    Z RS(   i   i	   u1   Postgres aggregates not supported in Django < 1.9c         C  s   d d l  m } t d  } t d  } t j j   } t j j d | d   } |  j | d j	 d  g  t j j d | d	 | d
 |  |  j | d j	 | g  d  S(   Ni(   t   ArrayAggu   10.20.30.20/32u   10.10.10.10/32t   agg_inetu   children__ineti    t   parentt   networkt   inet(   t"   django.contrib.postgres.aggregatesR   R   R   R    RV   RW   R   R%   R   R   R!   (   R,   R   R   R   R   t   inet_qs(    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_aggregate_inet  s    c         C  s   d d l  m } t d  } t d  } t j j   } t j j d | d   } |  j | d j	 d  g  t j j d | d	 | d
 |  |  j | d j	 | g  d  S(   Ni(   R   u   10.20.30.20/32u   10.10.10.10/32t   agg_networku   children__networki    R   R   R   (   R   R   R   R   R    RV   RW   R   R%   R   R   R!   (   R,   R   R   R   R   t
   network_qs(    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   test_aggregate_network  s    (   i   i	   (   i   i	   (   RR   RS   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyR     s   (A   t
   __future__R    R   t   djangoR   t   django.core.exceptionsR   t	   ipaddressR   R   R   R   R   R   R	   R
   R   t   netaddrR   t	   django.dbR   R   R   R   R   t   django.testR   t   unittestR   t   test.modelsR   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   t   objectR"   RT   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sN   /home/jfunk/projects/django-postgresql-netfields/test/tests/test_sql_fields.pyt   <module>   s>   @dZ3P)!C