î
â^Q\^1  ã               @   sR   d  d l  Z  d  d l m Z d d l m Z m Z m Z Gd d „  d e ƒ Z d S)é    N)ÚBaseNestedAdminTestCaseé   )ÚGFKRootÚGFKAÚGFKBc               @   s¦   e  Z d  Z e 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)ÚTestGenericInlineAdminc             C   s–   |  j  j j d d ƒ } |  j | ƒ |  j d d ƒ |  j ƒ  | j j ƒ  } |  j t	 | ƒ d ƒ |  j | d j
 d ƒ |  j | d j d ƒ d  S)NÚslugÚtestr   r   )Ú
root_modelÚobjectsÚcreateÚ
load_adminÚ
add_inlineÚ	save_formÚa_setÚallÚassertEqualÚlenr   Úposition)ÚselfÚrootr   © r   úO/var/www/dbchiro/venv/build/django-nested-admin/nested_admin/tests/gfk/tests.pyÚtest_add_to_empty_one_deep   s    
z1TestGenericInlineAdmin.test_add_to_empty_one_deepc             C   s½   |  j  j j d d ƒ } t j j d d d | d d ƒ } |  j | ƒ |  j d g d d ƒ|  j ƒ  | j j ƒ  } |  j	 t
 | ƒ d ƒ |  j	 | d j d ƒ |  j	 | d j d ƒ d  S)	Nr   r	   Úcontent_objectr   r   ÚnameZTestr   )r
   r   r   r   r   r   r   Úb_setr   r   r   r   r   )r   r   Úar   r   r   r   Útest_add_to_empty_two_deep   s    !
z1TestGenericInlineAdmin.test_add_to_empty_two_deepc             C   sö  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d d g d d d g d d ƒ |  j ƒ  t j j d	 d ƒ } |  j	 | j
 | d ƒ |  j	 | j d d ƒ |  j	 d d „  | j j ƒ  Dƒ d d d d g ƒ |  j	 d d „  | j j ƒ  Dƒ d d g ƒ d  S) Nr   r   Úxr   r   r   Úyr   r   zX 0zX 1zX 2é   zY 0zY 1zY 2Úfrom_indexesÚ
to_indexesÚscreenshot_hackTz(item was not moved to the correct parentz*item was not moved to the correct positionc             S   s   g  |  ] } d  | ‘ q S)z%sr   )Ú.0Úir   r   r   ú
<listcomp>=   s   	 zBTestGenericInlineAdmin.test_drag_existing_objs.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/Y 2[1]zroot/x[0]/X 1[2]zroot/x[0]/X 2[3]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   C   s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 1[1])r
   r   r   r   r   r   Údrag_and_drop_itemr   Úgetr   r   r   r   r   )r   r   r   r    Úy_2r   r   r   Útest_drag_existing_objs'   s0    !!!

z.TestGenericInlineAdmin.test_drag_existing_objsc             C   s  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d g d	 d ƒ |  j d d d g d d d g d d ƒ |  j ƒ  t j j	 d	 d ƒ } |  j
 | j | d ƒ |  j
 | j d d ƒ |  j
 d d „  | j j ƒ  Dƒ d d d d d g ƒ |  j
 d  d „  | j j ƒ  Dƒ d! d" g ƒ d  S)#Nr   r   r   r   r   r   r    r   r   zX 0zX 1zX 2r!   zY 0zY 1zY 2ÚindexeszX 3r"   r#   r$   Tz&Y1 was not moved to the correct parentz(Y1 was not moved to the correct positionc             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ^   s   	 z=TestGenericInlineAdmin.test_drag_add_drag.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/Y 1[1]zroot/x[0]/X 1[2]zroot/x[0]/X 2[3]zroot/x[0]/X 3[4]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   e   s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 2[1])r
   r   r   r   r   r   r   r(   r   r)   r   r   r   r   r   )r   r   r   r    Zy_1r   r   r   Útest_drag_add_dragG   s4    !!!

z)TestGenericInlineAdmin.test_drag_add_dragc             C   sý  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d g d	 d ƒ t j d ƒ |  j	 d d d g d d d g d d ƒ |  j
 ƒ  t j j d	 d ƒ } |  j | j | d ƒ |  j | j d d ƒ |  j d d „  | j j ƒ  Dƒ d d d d g ƒ |  j d d „  | j j ƒ  Dƒ d  d! g ƒ d  S)"Nr   r   r   r   r   r   r    r   r   zX 0zX 1zX 2r!   zY 0zY 1r,   zY 2g{®Gáz„?r"   r#   r$   Tz&Y2 was not moved to the correct parentz(Y2 was not moved to the correct positionc             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ‚   s   	 z=TestGenericInlineAdmin.test_drag_new_item.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/Y 2[1]zroot/x[0]/X 1[2]zroot/x[0]/X 2[3]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ˆ   s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 1[1])r
   r   r   r   r   r   r   ÚtimeÚsleepr(   r   r)   r   r   r   r   r   )r   r   r   r    r*   r   r   r   Útest_drag_new_itemi   s2    !!!

z)TestGenericInlineAdmin.test_drag_new_itemc             C   s   |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d d g ƒ |  j ƒ  |  j d d „  | j	 j
 ƒ  Dƒ d d d g ƒ |  j d d „  | j	 j
 ƒ  Dƒ d d g ƒ d  S)Nr   r   r   r   r   r   r    r   r   zX 0zX 1zX 2r!   zY 0zY 1zY 2r,   c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'      s   	 z?TestGenericInlineAdmin.test_delete_two_deep.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/X 1[1]zroot/x[0]/X 2[2]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ¢   s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 2[1])r
   r   r   r   r   r   Údelete_inliner   r   r   r   )r   r   r   r    r   r   r   Útest_delete_two_deepŒ   s&    !!

z+TestGenericInlineAdmin.test_delete_two_deepc             C   s®  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d g ƒ |  j ƒ  |  j t	 t j j
 d d ƒ ƒ d d ƒ t j j d d ƒ } |  j d d „  | j j ƒ  Dƒ d d d g ƒ d  S)Nr   r   r   r   r   r   r    r   r   zX 0zX 1zX 2r!   zY 0zY 1zY 2r,   zGFKA instance was not deletedc             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ¼   s   	 z?TestGenericInlineAdmin.test_delete_one_deep.<locals>.<listcomp>zroot/y[0]/Y 0[0]zroot/y[0]/Y 1[1]zroot/y[0]/Y 2[2])r
   r   r   r   r   r   r1   r   r   r   Úfilterr)   r   r   )r   r   r   r    r   r   r   Útest_delete_one_deep¦   s&    !!
!z+TestGenericInlineAdmin.test_delete_one_deepc             C   sî  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d d g ƒ |  j d d g ƒ |  j d d g ƒ |  j ƒ  |  j	 t
 t j j d d ƒ ƒ d d ƒ |  j	 d d „  | j j ƒ  Dƒ d d g ƒ |  j	 d d „  | j j ƒ  Dƒ d d d g ƒ d S)z–
        Test that, if an item is deleted, then the parent is deleted, and
        then the parent is undeleted, that the item stays deleted.
        r   r   r   r   r   r   r    r   r   zX 0zX 1zX 2r!   zY 0zY 1zY 2r,   z#GFKA instance should not be deletedc             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   Û   s   	 zQTestGenericInlineAdmin.test_delete_two_deep_undelete_one_deep.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/X 2[1]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ß   s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 1[1]zroot/y[1]/Y 2[2]N)r
   r   r   r   r   r   r1   Zundelete_inliner   r   r   r3   r   r   )r   r   r   r    r   r   r   Ú&test_delete_two_deep_undelete_one_deepÁ   s.    !!
!
z=TestGenericInlineAdmin.test_delete_two_deep_undelete_one_deepc             C   sš  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d g d	 d ƒ |  j d d d g ƒ |  j ƒ  |  j	 d d „  | j
 j ƒ  Dƒ d d d g ƒ |  j	 d d „  | j
 j ƒ  Dƒ d d g ƒ d  S)Nr   r   r   r   r   r   r    r   r   zX 0zX 1zX 2r!   zY 0zY 1r,   zY 2c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   õ   s   	 z?TestGenericInlineAdmin.test_remove_two_deep.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/X 1[1]zroot/x[0]/X 2[2]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   ú   s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 1[1])r
   r   r   r   r   r   r   Zremove_inliner   r   r   r   )r   r   r   r    r   r   r   Útest_remove_two_deepä   s&    !!

z+TestGenericInlineAdmin.test_remove_two_deepc             C   sŠ  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ } t j j d	 d
 d | d d ƒ t j j d	 d d | d d ƒ t j j d	 d d | d d ƒ |  j | ƒ |  j d d d g d d d g ƒ |  j ƒ  t j j d	 d ƒ } |  j	 | j
 | d ƒ |  j	 | j d d ƒ |  j	 d d „  | j j ƒ  Dƒ d g ƒ |  j	 d d „  | j j ƒ  Dƒ d d g ƒ d  S)Nr   r   r   r   r   r   r    r   r   zY 0zY 1zY 2r!   r"   r#   z&Y2 was not moved to the correct parentz(Y2 was not moved to the correct positionc             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'     s   	 zITestGenericInlineAdmin.test_drag_item_to_empty_parent.<locals>.<listcomp>zroot/x[0]/Y 2[0]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'     s   	 zroot/y[1]/Y 0[0]zroot/y[1]/Y 1[1])r
   r   r   r   r   r   r(   r   r)   r   r   r   r   r   )r   r   r   r    r*   r   r   r   Útest_drag_item_to_empty_parentþ   s"    !!"

z5TestGenericInlineAdmin.test_drag_item_to_empty_parentc             C   sŽ  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ t j j d d	 d | d d
 ƒ t j j d d d | d d ƒ |  j | ƒ |  j d d ƒ |  j d d d g d d
 d g ƒ |  j ƒ  t j j	 d d ƒ } t j j	 d d ƒ } |  j
 | j | d ƒ |  j
 | j d d ƒ |  j
 d d „  | j j ƒ  Dƒ d d g ƒ |  j
 d d „  | j j ƒ  Dƒ d g ƒ d  S)Nr   r   r   r   r   r   r   zX 0zX 1r   zX 2r!   r    r"   r#   z&X2 was not moved to the correct parentz(X2 was not moved to the correct positionc             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   *  s   	 zMTestGenericInlineAdmin.test_drag_item_to_new_empty_parent.<locals>.<listcomp>zroot/x[0]/X 0[0]zroot/x[0]/X 1[1]c             S   s   g  |  ] } d  | ‘ q S)z%sr   )r%   r&   r   r   r   r'   -  s   	 zroot/y[1]/X 2[0])r
   r   r   r   r   r   r   r(   r   r)   r   r   r   r   r   )r   r   r   Zx_2r    r   r   r   Ú"test_drag_item_to_new_empty_parent  s"    !"
z9TestGenericInlineAdmin.test_drag_item_to_new_empty_parentc             C   s*  |  j  j j d d ƒ } t j j d d d | d d ƒ } t j j d d d | d d ƒ |  j | ƒ |  j d d	 ƒ |  j d
 d d g d d d g ƒ |  j d
 d d g d d d g ƒ |  j ƒ  |  j	 t
 t j j ƒ  ƒ d d ƒ t j j d d ƒ } |  j	 | j | d ƒ |  j	 | j d d ƒ d  S)Nr   r	   r   r   r   r   r   zX 0r    r"   r#   r   r!   zSave failedzX0 is in the wrong parentzX0 has the wrong position)r
   r   r   r   r   r   r   r(   r   r   r   r   r)   r   r   )r   r   r   Zx_0r   r   r   Ú.test_drag_existing_gfkb_to_new_parent_and_back0  s    !""
"zETestGenericInlineAdmin.test_drag_existing_gfkb_to_new_parent_and_backN)Ú__name__Ú
__module__Ú__qualname__r   r
   r   r   r+   r-   r0   r2   r4   r5   r6   r7   r8   r9   r   r   r   r   r      s    "##r   )r.   Znested_admin.tests.baser   Úmodelsr   r   r   r   r   r   r   r   Ú<module>   s   