
#dVS1                 @   s   d  d l  Z  d  d l 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 y d  d l Z Wn" e k
 r d  d l	 m Z Yn Xd  d l m Z m Z e d	 d
  e d i   Gd d   d e    Z d S)    N)TestCase)override_settings)User)reverse)sixtranslationtimezone)
simplejson)CategoryEntryZGRAPPELLI_AUTOCOMPLETE_LIMIT
   Z$GRAPPELLI_AUTOCOMPLETE_SEARCH_FIELDSc               @   sR   e  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 d   Z d S)RelatedTestszgrappelli.tests.urlsc             C   s  t  j j d d d  |  _ t  j j d d d  |  _ d |  j _ |  j j   t  j j d d	 d
  |  _ d |  j _ |  j j   x+ t	 d  D] } t
 j j d d |  q Wt j j d d d t j   d |  j  |  _ t j j d d d t j   d |  j  |  _ t j d  d S)z6
        Create users, categories and entries
        Superuser001zsuperuser001@example.comsuperuser001	Editor001zeditor001@example.com	editor001TUser001zuser001@example.comuser001Fd   namezCategory No %stitlezEntry SuperuserdateuserzEntry EditorenN)r   objectsZcreate_superuserZsuperuser_1Zcreate_userZeditor_1Zis_staffsaveZuser_1ranger
   creater   r   nowZentry_superuserZentry_editorr   activate)selfi r"   H/tmp/pip-build-0jahl3lb/django-grappelli/grappelli/tests/test_related.pysetUp   s     zRelatedTests.setUpc             C   sa   |  j  t j j   j   d  |  j  t j j   j   d  |  j  t j j   j   d  d S)z
        Test setup
           r      N)assertEqualr   r   allcountr
   r   )r    r"   r"   r#   
test_setup6   s    zRelatedTests.test_setupc             C   s  |  j  j d d d d  |  j  j t d   } |  j | j d  |  j  j d d d d  |  j  j t d   } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d  d 6d! d 6g  |  j  j d d" d d#  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d$ t d   } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d% t d   } |  j | j d	  |  j | j j d
  i d d 6d d 6g  d S)&z%
        Test related lookup
        usernamer   passwordr   grp_related_lookupi  r   r      zutf-8Nvalue labelz)%s?object_id=1&app_label=%s&model_name=%s	grappellicategory1zCategory No 0 (1)z-%s?object_id=10000&app_label=%s&model_name=%s10000?zA%s?object_id=1&app_label=%s&model_name=%s&query_string=id__gte=99zC%s?object_id=100&app_label=%s&model_name=%s&query_string=id__gte=99Z100zCategory No 99 (100)zT%s?object_id=1&app_label=%s&model_name=%s&query_string=name__icontains=99:id__gte=99zV%s?object_id=100&app_label=%s&model_name=%s&query_string=name__icontains=99:id__gte=99entryzEntry Superuserz)%s?object_id=2&app_label=%s&model_name=%s2zEntry Editorr   r   z/%s?object_id=1&app_label=false&model_name=falsez.%s?object_id=&app_label=false&model_name=false)	clientlogingetr   r'   status_codeassertJSONEqualcontentdecode)r    responser"   r"   r#   test_related_lookup>   sR    -%-%-%-%-%-%-%-%-%--z RelatedTests.test_related_lookupc             C   s  |  j  j d d d d  |  j  j t d   } |  j | j d  |  j  j d d d d  |  j  j t d   } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6i d d 6d d 6g  |  j  j d  t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6i d d 6d d 6g  |  j  j d! t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6i d d 6d d 6g  d S)"z!
        Test M2M lookup
        r+   r   r,   r   r-   i  r   r   r.   zutf-8Nr/   r0   r1   z)%s?object_id=1&app_label=%s&model_name=%sZgrp_m2m_lookupr2   r3   r4   zCategory No 0 (1)z-%s?object_id=10000&app_label=%s&model_name=%sr5   r6   z-%s?object_id=1,2,3&app_label=%s&model_name=%sr8   zCategory No 1 (2)3zCategory No 2 (3)z1%s?object_id=1,10000,3&app_label=%s&model_name=%szE%s?object_id=1,2,3&app_label=%s&model_name=%s&query_string=id__gte=99zD%s?object_id=1,2,3&app_label=%s&model_name=%s&query_string=id__lte=3zX%s?object_id=1,2,3&app_label=%s&model_name=%s&query_string=name__icontains=99:id__gte=99z]%s?object_id=1,2,3&app_label=%s&model_name=%s&query_string=name__icontains=Category:id__lte=3)	r9   r:   r;   r   r'   r<   r=   r>   r?   )r    r@   r"   r"   r#   test_m2m_lookup   s>    -%-%-%O%O%O%O%O%zRelatedTests.test_m2m_lookupc             C   so  |  j  j d d d d  |  j  j t d   } |  j | j d  |  j  j d d d d  |  j  j t d   } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6i d d 6d d 6g  |  j  j d t d  d d f  } |  j | j d	  |  j | j j d
  i d d 6d d 6g  d S)z*
        Test autocomplete lookup
        r+   r   r,   r   r-   i  r   r   r.   zutf-8Nr/   r0   r1   z-%s?term=XXXXXXXXXX&app_label=%s&model_name=%sZgrp_autocomplete_lookupr2   r3   z	0 resultsz1%s?term=Category No 99&app_label=%s&model_name=%sc   zCategory No 98 (99)r   zCategory No 99 (100)zC%s?term=Category&app_label=%s&model_name=%s&query_string=id__gte=99zV%s?term=Category&app_label=%s&model_name=%s&query_string=name__icontains=99:id__gte=99)	r9   r:   r;   r   r'   r<   r=   r>   r?   )r    r@   r"   r"   r#   test_autocomplete_lookup   s&    -%-%>%>%z%RelatedTests.test_autocomplete_lookupN)	__name__
__module____qualname__urlsr$   r*   rA   rC   rE   r"   r"   r"   r#   r      s   D5r   )datetimeZdjango.testr   Zdjango.test.utilsr   Zdjango.contrib.auth.modelsr   Zdjango.core.urlresolversr   Zdjango.utilsr   r   r   jsonImportErrorr	   Zgrappelli.tests.modelsr
   r   r   r"   r"   r"   r#   <module>   s   