o
    h(                     @   s   d dl Z d dlmZ d dlmZmZmZ G dd dZG dd dZG dd	 d	eZ	ee	 e G d
d deZ
ee
 e G dd deZG dd dZG dd deZee e G dd deZdS )    N)TestCase)Adapter	JSContextregisterc                   @      e Zd Zdd ZdS )Artistc                 C   
   || _ d S Nname)selfr    r   [/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/tests/test_telepath.py__init__	      
zArtist.__init__N__name__
__module____qualname__r   r   r   r   r   r          r   c                   @   r   )Albumc                 C   s   || _ || _d S r	   titleartists)r   r   r   r   r   r   r      s   
zAlbum.__init__Nr   r   r   r   r   r      r   r   c                   @      e Zd ZdZdd ZdS )ArtistAdaptermusic.Artistc                 C   s   |j gS r	   r
   r   objr   r   r   js_args   s   zArtistAdapter.js_argsNr   r   r   js_constructorr   r   r   r   r   r          r   c                   @   s&   e Zd ZdZdd ZG dd dZdS )AlbumAdaptermusic.Albumc                 C   s   |j |jgS r	   r   r   r   r   r   r       s   zAlbumAdapter.js_argsc                   @   s   e Zd ZdgZdS )zAlbumAdapter.Mediamusic_player.jsN)r   r   r   jsr   r   r   r   Media#   s    
r'   N)r   r   r   r!   r   r'   r   r   r   r   r#      s    r#   c                   @   sT   e Z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 )TestPackingc                 C   s0   t d}t }||}| |ddgd d S )N   Beyoncér   _type_argsr   r   packassertEqual)r   beyoncectxresultr   r   r   test_pack_object+   s   
zTestPacking.test_pack_objectc                 C   sT   t dt dt dg}t }||}| |ddgdddgdddgdg d S )Nr)   Kelly RowlandMichelle Williamsr   r*   r-   )r   destinys_childr1   r2   r   r   r   test_pack_list2   s   



zTestPacking.test_pack_listc                 C   sH   t dt dd}t }||}| |ddgdddgdd d S )Nr)   z
Ed Sheeran)pyramid_stageacoustic_stager   r*   r-   )r   glastonburyr1   r2   r   r   r   test_pack_dictD   s   


zTestPacking.test_pack_dictc                 C   s@   t ddd}t }||}| |dddgdddi d S )Nr)   zR&B)_artistr+   _dictr   r*   r-   )r   profiler1   r2   r   r   r   test_dict_reserved_wordsS   s   

z$TestPacking.test_dict_reserved_wordsc                 C   sV   t dtdg}t }||}| |ddddgdggd | dt|j d S )NDangerously in Lover)   r$   r   r*   r%   )r   r   r   r.   r/   assertInstrmedia)r   dangerously_in_lover1   r2   r   r   r   test_recursive_arg_packinge   s"   

z&TestPacking.test_recursive_arg_packingc              
   C   s   t d}t d}td|gtd||gg}t }||}| |ddddgddggd	ddd
diddgd	ggd	g | dt|j d S )Nr)   zJay-Zr@   zEverything Is Lover$   r   r   r+   r,   _idr*   _refr%   )r   r   r   r.   r/   rA   rB   rC   )r   r0   jay_zdiscographyr1   r2   r   r   r   test_object_references~   s2   



z"TestPacking.test_object_referencesc              
   C   s   t dt dt dg}td|td|g}t }||}| |ddddgdddgdddgdgd	d
gddddd	igdg d S )Nr)   r4   r5   zDestiny's ChildSurvivorr$   r   r*   r   )_listrG   rH   r   r   r   r.   r/   )r   r6   rJ   r1   r2   r   r   r   test_list_references   s<   


z TestPacking.test_list_referencesc              	   C   sx   d}t |}td|gt||gg}t }||}| |ddddddgddggd	dd
did
diggd	g d S )Nu   Beyoncé Giselle Knowles-Carterr@   r$   r   r   )_valrG      rF   r*   rH   rN   r   beyonce_namer0   rJ   r1   r2   r   r   r   test_primitive_value_references   s6   


z+TestPacking.test_primitive_value_referencesc              	   C   sn   d}t |}td|gt||gg}t }||}| |ddddgddggdddddiggdg d S )	Nr)   r@   r$   r   rQ   rF   r*   rH   rN   rR   r   r   r   7test_avoid_primitive_value_references_for_short_strings   s4   


zCTestPacking.test_avoid_primitive_value_references_for_short_stringsN)r   r   r   r3   r7   r;   r?   rE   rK   rO   rT   rU   r   r   r   r   r(   *   s    %+(r(   c                   @   s   e Zd Zdd Zdd ZdS )Arkc                 C   r   r	   )animals)r   rW   r   r   r   r     r   zArk.__init__c                 C   s   t | jdd S )Nc                 S   s   | d S )Ntyper   )animalr   r   r   <lambda>"  s    z%Ark.animals_by_type.<locals>.<lambda>)	itertoolsgroupbyrW   )r   r   r   r   animals_by_type!  s   zArk.animals_by_typeN)r   r   r   r   r]   r   r   r   r   rV     s    rV   c                   @   r   )
ArkAdapter	boats.Arkc                 C   s
   |  gS r	   )r]   r   r   r   r   r   (  r   zArkAdapter.js_argsNr    r   r   r   r   r^   %  r"   r^   c                   @   r   )TestIDCollisionsc                 C   s   dd t ddD }t }||}| t|d t|D ],\}}| |dddd| ddd	| dggd
d
d| dd
d| dggggd qdS )ar  
        Certain functions such as itertools.groupby will cause new objects (namely, tuples and
        custom itertools._grouper iterables) to be created in the course of iterating over the
        object tree. If we're not careful, these will be released and the memory reallocated to
        new objects while we're still iterating, leading to ID collisions.
        c              	   S   sD   g | ]}t d d| dd d| ddd| ddd| dgqS )lionSimba %irX   r   Nala %idogLady %iTramp %i)rV   ).0ir   r   r   
<listcomp>8  s    	zCTestIDCollisions.test_grouper_object_collisions.<locals>.<listcomp>r   d   r_   ra   rb   rc   rd   re   rf   rg   r*   N)ranger   r.   r/   len	enumerate)r   arksr1   r2   ri   arkr   r   r   test_grouper_object_collisions0  s2   	
z/TestIDCollisions.test_grouper_object_collisionsN)r   r   r   rq   r   r   r   r   r`   /  r   r`   )r[   django.testr   wagtail.telepathr   r   r   r   r   r   r#   r(   rV   r^   r`   r   r   r   r   <module>   s    
 t