
    恕f1b                        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 d dlmZmZ d dlmZmZ d dlmZ  G d	 d
e      Z G d dej.                        Z G d dej2                        Z G d dej6                        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-y"# e$ r	 d dlmZ Y w xY w)#    )Flask)DispatcherMiddleware)Client)fields)Adminform)	iteritems
itervalues)basefilters)macroc                       e Zd ZddZy)ModelNc                 <    || _         || _        || _        || _        y N)idcol1col2col3)selfr   c1c2c3s        [/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/flask_admin/tests/test_model.py__init__zModel.__init__   s    			    )N         )__name__
__module____qualname__r    r   r   r   r      s    r   r   c                   r    e Zd Z ej                         Z ej                         Z ej                         Zy)FormN)r    r!   r"   r   StringFieldr   r   r   r#   r   r   r%   r%      s2    6D6D6Dr   r%   c                       e Zd Zd Zd Zy)SimpleFilterc                     d|_         |S NT)_applied)r   querys     r   applyzSimpleFilter.apply    s    r   c                      y)Ntestr#   r   s    r   	operationzSimpleFilter.operation$   s    r   N)r    r!   r"   r-   r1   r#   r   r   r(   r(      s    r   r(   c                   j     e Zd Z	 	 d fd	Zd Zd Zd Zd Zd Zd Z		 ddZ
d	 Zd
 Zd Zd Z xZS )MockModelViewc                 2   t        |      D ]  \  }}	t        | ||	        t        t        |   |||||       g | _        g | _        g | _        g | _        |t        d      t        d      d| _
        n|| _
        t        | j                        dz   | _        y )Nr   r   )r   r   )r	   setattrsuperr3   r   created_modelsupdated_modelsdeleted_modelssearch_argumentsr   
all_modelslenlast_id)r   modeldatanamecategoryendpointurlkwargskv	__class__s             r   r   zMockModelView.__init__)   s     f% 	 DAqD!Q	  	mT+E48SQ    "<"'(uQx8DO"DO4??+a/r   c                     |j                   S r   )r   r   r>   s     r   get_pk_valuezMockModelView.get_pk_value?   s    xxr   c                 F     g d} j                   rt         fd|      S |S )Nr   r   r   c                      | j                   vS r   column_exclude_list)xr   s    r   <lambda>z5MockModelView.scaffold_list_columns.<locals>.<lambda>F   s    AT-E-E$E r   )rO   filter)r   columnss   ` r   scaffold_list_columnsz#MockModelView.scaffold_list_columnsB   s$    *##EwOOr   c                 ,    t        | j                        S r   )boolcolumn_searchable_listr0   s    r   init_searchzMockModelView.init_searchJ   s    D//00r   c                     t        |      gS r   )r(   )r   r@   s     r   scaffold_filterszMockModelView.scaffold_filtersM   s    T"##r   c                 
    g dS )NrL   r#   r0   s    r   scaffold_sortable_columnsz'MockModelView.scaffold_sortable_columnsP   s    ''r   c                     t         S r   )r%   r0   s    r   scaffold_formzMockModelView.scaffold_formS   s    r   c                     | j                   j                  |||||f       t        | j                        t	        | j                        fS r   )r:   appendr<   r;   r
   )r   page
sort_field	sort_descsearchr   	page_sizes          r   get_listzMockModelView.get_listW   s>    $$dJ	67%ST4??#Z%@@@r   c                 J    | j                   j                  t        |            S r   )r;   getint)r   r   s     r   get_onezMockModelView.get_one\   s    ""3r7++r   c                     t        | j                        }| xj                  dz  c_         |j                  |       | j                  j	                  |       || j
                  |j                  <   y)Nr   T)r   r=   populate_objr7   r`   r;   r   r   r   r>   s      r   create_modelzMockModelView.create_model_   sW    dll#% ""5)$)!r   c                 ^     |j                   |       | j                  j                  |       yr*   )rl   r8   r`   rm   s      r   update_modelzMockModelView.update_modeli   s)    % ""5)r   c                 :    | j                   j                  |       yr*   )r9   r`   rI   s     r   delete_modelzMockModelView.delete_modeln   s    ""5)r   )NNNNNr   )r    r!   r"   r   rJ   rT   rX   rZ   r\   r^   rf   rj   rn   rp   rr   __classcell__)rG   s   @r   r3   r3   (   sK    =A$(0,1$(
  A
,
r   r3   c                  j    t        t              } d| j                  d<   d| _        t	        |       }| |fS )NFCSRF_ENABLED1)r   r    config
secret_keyr   )appadmins     r   setupr{   s   s3    
/C!&CJJ~CN#JE:r   c            	      l   t               \  } }t        t              }|j                  |       |j                  t        k(  sJ |j
                  dk(  sJ |j                  dk(  sJ |j                  g dk(  sJ |j                  t        k(  sJ |j                  t        k(  sJ |j                  du sJ |j                  J | j                         }|j                  d      }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ |j!                  dt#        dd	d
            }|j                  dk(  sJ t%        |j&                        dk(  sJ |j&                  j)                         }|j*                  dk(  sJ |j,                  dk(  sJ |j.                  d	k(  sJ |j0                  d
k(  sJ |j                  d      }|j                  dk(  sJ |j2                  j5                  d      }d|v sJ |j!                  dt#        ddd            }|j                  dk(  sJ t%        |j6                        dk(  sJ |j6                  j)                         }|j,                  dk(  sJ |j.                  dk(  sJ |j0                  dk(  sJ |j                  d      }|j                  dk(  sJ |j!                  d      }|j                  dk(  sJ |j8                  d   j;                  d      sJ t=        d      }t?        |d| i      }tA        |      }	|	j!                  dt#        dddd            }tC        |tD              r|\  }
}}n|jF                  }|j8                  }|dk(  sJ |d   j;                  d      sJ |j6                  j)                         }|j,                  dk(  sJ y )Nr   r>   rL   F/admin/model/   /admin/model/new/test1test2test3r?   .  r   r   z/admin/model/edit/?id=3utf-8ztest!ztest@ztest#z/admin/model/edit/?id=4z/admin/model/delete/?id=3location	dummy_appz/dispatchedz"/dispatched/admin/model/edit/?id=3zanother test!True)r   r   r   _continue_editingz	302 FOUNDLocation)$r{   r3   r   add_viewr>   r@   rB   _sortable_columns_create_form_classr%   _edit_form_class_search_supported_filterstest_clientrh   status_codepostdictr<   r7   popr   r   r   r   r?   decoder8   headersendswithr   r   r   
isinstancetuplestatus)ry   rz   viewclientrvr>   r?   r   dispatched_appdispatched_clientapp_iterr   r   s                r   test_mockviewr   |   s   JCD	NN4::99==G### !!%====""d***  D(((!!U***==   __F 
O	$B>>S    
'	(B>>S   	(G'H 
 
JB>>S   t""#q(((##%E88q==::   ::   ::    
-	.B>>S   77>>'"Dd??	.G'H 
 
JB>>S   t""#q(((##%E::   ::   ::   	-	.B>>S    
0	1B>>S   ::j!**?;;; k"I))mS5IJN~.			,W7V\] 
  
_B
 "e$&!&'**[   :''(LMMM##%E::(((r   c                  t   t               \  } }t        t              }|j                  |       | j	                         }d|_        |j                  d      }|j                  dk(  sJ d|_        |j                  d      }|j                  dk(  sJ d|_	        |j                  d      }|j                  dk(  sJ y )NFr   r   /admin/model/edit/?id=1z/admin/model/delete/?id=1)r{   r3   r   r   r   
can_createrh   r   can_edit
can_deleter   ry   rz   r   r   r   s        r   test_permissionsr      s    JCD	NN4__FDO	'	(B>>S   DM	-	.B>>S   DO	0	1B>>S   r   c                  t   t               \  } }t        t              }|j                  |       | j	                         }d|_        d|_        d|_        |j                  d      }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ y )Nz	mock.htmlr}   s   Success!r   r   )
r{   r3   r   r   r   list_templatecreate_templateedit_templaterh   r?   r   s        r   test_templatesr      s    JCD	NN4__F$D&D$D	O	$B77k!!!	'	(B77k!!!	-	.B77k!!!r   c                  f   t               \  } }t        t        ddgt        d            }|j	                  |       t        |j                        dk(  sJ |j                  ddgk(  sJ | j                         }|j                  d	      }|j                  j                  d
      }d|v sJ d|vsJ y )Nr   r   Column1r   )column_listcolumn_labelsr   )r   r   r   Col3r}   r   Col2)r{   r3   r   r   r   r<   _list_columnsr   rh   r?   r   ry   rz   r   r   r   r?   s         r   test_list_columnsr      s    JC&,f%5'+';=D 
NN4t!!"a'''"57G!HHHH__F	O	$B77>>'"Dr   c                     t               \  } }t        t        dg      }|j                  |       |j                  ddgk(  sJ | j                         }|j                  d      }|j                  j                  d      }d|v sJ d|vsJ y )	Nr   rN   )r   Col1r   r}   r   r   r   )	r{   r3   r   r   r   r   rh   r?   r   r   s         r   test_exclude_columnsr     s    JCVH=D	NN4"24D!EEEE__F	O	$B77>>'"DT>>r   c                      t               \  } }t        t        ddg      }|j                  |       |j                  t        dd      k(  sJ y )Nr   )r   r   )column_sortable_listr   r   r   )r{   r3   r   r   r   r   ry   rz   r   s      r   test_sortable_columnsr   !  sF    JCf>O5PQD	NN4!!TvG%DDDDr   c                      t               \  } }t        t        ddg      }|j                  |       |j                  du sJ y )Nr   r   )rW   T)r{   r3   r   r   r   r   s      r   test_column_searchable_listr   *  s>    JC7GHD	NN4!!T)))r   c                     t               \  } }t        t        ddg      }|j                  |       t	        |j
                        dk(  sJ |j
                  d   j                  dk(  sJ |j
                  d   j                  dk(  sJ |j                  d   D cg c]  }|d   |d   k(   c}sJ d	g       |j                  d   D cg c]  }|d   |d   k(   c}sJ d
g       y c c}w c c}w )Nr   r   column_filtersr   r   r   indexr1   )r   r/   )r   r/   )r{   r3   r   r   r<   r   r@   _filter_groups)ry   rz   r   fs       r   test_column_filtersr   5  s    JC/?@D	NN4t}}"""==  F***==  F***484G4G4PQqQwZ1[>)Q`T_S``Q484G4G4PQqQwZ1[>)Q`T_S``Q RQs   C%C*c                      t               \  } }t        dd       }t        t        |g      }|j	                  |       |j                  |      }t        |      dk(  sJ |ddgk(  sJ y )Nr/   c                  
    ddgS )Nrv   zTest 12zTest 2r#   r#   r   r   rQ   z+test_filter_list_callable.<locals>.<lambda>H  s    /Q r   )optionsr   r   r   r   )r{   r(   r3   r   r   get_optionsr<   )ry   rz   fltr   optss        r   test_filter_list_callabler   E  se    JC
v'Q
RCu5D	NN4??4 Dt9>>O_5555r   c                       y r   r#   r#   r   r   	test_formr   R  s    
 	r   c                  ~    G d dt               } d }t               \  }} | t        d      }|j                  |       |j	                         }|j                  d      }|j                  dk(  sJ d|j                  j                  d	      v sJ  ||j                  j                  d	            }|j                  dt        d
            }|j                  dk(  sJ |j                  dt        d
|            }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ d|j                  j                  d	      v sJ  ||j                  j                  d	            }|j                  dt        d
            }|j                  dk(  sJ |j                  dt        d
|            }|j                  dk(  sJ |j                  d      }|j                  dk(  sJ d|j                  j                  d	      v sJ  ||j                  j                  d	            }|j                  dt        dd      d      }|j                  dk(  sJ d|j                  j                  d	      vsJ d|j                  j                  d	      v sJ |j                  dt        dd|      d      }|j                  dk(  sJ d|j                  j                  d	      v sJ |j                  d      }|j                  dk(  sJ d|j                  j                  d	      v sJ  ||j                  j                  d	            }|j                  dt        ddd      d      }|j                  dk(  sJ d|j                  j                  d	      vsJ d|j                  j                  d	      v sJ y )Nc                   *    e Zd Zej                  Zd Zy)"test_csrf.<locals>.SecureModelViewc                 "    t         j                  S r   )r   
SecureFormr0   s    r   r^   z0test_csrf.<locals>.SecureModelView.scaffold_form^  s    ??"r   N)r    r!   r"   r   r   form_base_classr^   r#   r   r   SecureModelViewr   [  s    //	#r   r   c                 V    | j                  d      d   } | j                  d      d   }|S )Nz'name="csrf_token" type="hidden" value="r   "r   )split)r?   tokens     r   get_csrf_tokenz!test_csrf.<locals>.get_csrf_tokena  s-    zzCDQG

3"r   securerB   z/admin/secure/new/r~   zname="csrf_token"r   r   )r@   r   )r@   
csrf_tokenr   z1/admin/secure/edit/?url=%2Fadmin%2Fsecure%2F&id=1z/admin/secure/z/admin/secure/delete/rv   )r   rC   T)r?   follow_redirectsz Record was successfully deleted.zFailed to delete record.)r   rC   r   z/admin/secure/action/delete)rowidrC   actionzFailed to perform action.)r3   r{   r   r   r   rh   r   r?   r   r   r   )r   r   ry   rz   r   r   r   r   s           r   	test_csrfr   Z  s   #- #
 JC584D	NN4__F
 
(	)B>>S   277>>'#::::w 78J 
)'0B	CB>>S    
)'@J1L 
MB>>S   
 
G	HB>>S   277>>'#::::w 78J 
HG, 
 
.B>>S    
HG
C 
 
EB>>S   
 
$	%B>>S   277>>'#::::w 78J 
,#+;<t 
 
UB>>S   .bggnnW6MMMM&"''..*AAAA 
,#+;
S&* 
 
,B >>S   ."''..2IIII
 
$	%B>>S   277>>'#::::w 78J 
,S.>xP&* 
 
,B >>S   .bggnnW6MMMM'277>>'+BBBBr   c                     t               \  } } G d dt        j                        }t        t        |      }|j                  |       |j                  |k(  sJ |j                  |k(  sJ t        |j                  d      rJ y )Nc                       e Zd Zy)"test_custom_form.<locals>.TestFormNr    r!   r"   r#   r   r   TestFormr         r   r   )r   r   )	r{   r   BaseFormr3   r   r   r   r   hasattr)ry   rz   r   r   s       r   test_custom_formr     sx    JC4==  X.D	NN4""h...  H,,,t..7777r   c                     t        t              } t        | d      }t        t        dd      }t        t        dd      }t        t        dd	      }t        t        dd
	      }|j                  |       |j                  |       |j                  |       |j                  |       | j                         }|j                  d      }|j                  dk(  sJ |j                  j                  d      }d|v sJ |j                  d      }|j                  dk(  sJ |j                  j                  d      }d|vsJ |j                  d      }|j                  dk(  sJ |j                  j                  d      }d|v sJ |j                  d      }|j                  dk(  sJ |j                  j                  d      }d|vsJ t        t              }	t        |	d      }
|
j                  |       |
j                  |       |
j                  |       |
j                  |       |	j                         }|j                  d      }|j                  dk(  sJ |j                  j                  d      }d|v sJ |j                  d      }|j                  dk(  sJ |j                  j                  d      }d|vsJ |j                  d      }|j                  dk(  sJ |j                  j                  d      }d|v sJ |j                  d      }|j                  dk(  sJ |j                  j                  d      }d|vsJ y )N
bootstrap2)template_modeTedit_modal_on)
edit_modalrB   Fedit_modal_offcreate_modal_on)create_modalrB   create_modal_offz/admin/edit_modal_on/r~   r   fa_modal_windowz/admin/edit_modal_off/z/admin/create_modal_on/z/admin/create_modal_off/
bootstrap3)r   r    r   r3   r   r   r   rh   r   r?   r   )app_bs2	admin_bs2r   r   r   r   
client_bs2r   r?   app_bs3	admin_bs3
client_bs3s               r   test_modal_editr    s   HoGg\:I!%D+:<M"5U,<>N#E->@O$U.@B}%~&''($$&J 
/	0B>>S   77>>'"D$$$ 
0	1B>>S   77>>'"DD((( 
1	2B>>S   77>>'"D$$$ 
2	3B>>S   77>>'"DD((( HoGg\:I}%~&''($$&J 
/	0B>>S   77>>'"D$$$ 
0	1B>>S   77>>'"DD((( 
1	2B>>S   77>>'"D$$$ 
2	3B>>S   77>>'"DD(((r   c                  \     G d dt               }  | t              }|j                  dk(  sJ y )Nc                       e Zd Zy)#check_class_name.<locals>.DummyViewNr   r#   r   r   	DummyViewr    r   r   r	  z
Dummy View)r3   r   r@   )r	  r   s     r   check_class_namer
    s,    M  UD99$$$r   c                  b   t               \  } }| j                         }t        t        ddgd      }|j	                  |       |j                  d      }|j                  dk(  sJ t        ddd	      t        d
dd      t        ddd      d}t        t        |dddg      }|j	                  |       |j                  d      }|j                  j                  d      }|j                  dk(  sJ |j                  dk(  sJ d|k(  sJ t        t        |dddgg dd      }|j	                  |       |j                  d      }|j                  j                  d      }|j                  dk(  sJ |j                  dk(  sJ d|k(  sJ t        t        |dddgdgd      }|j	                  |       |j                  d      }|j                  j                  d      }|j                  dk(  sJ |j                  dk(  sJ d |k(  sJ t        dd!d"      |d#<   t        t        |dddgd$%      }|j	                  |       |j                  d&      }|j                  j                  d      }|j                  dk(  sJ d'|v sJ t        ddd      t        d
dd
      t        dd d      d}t        t        |dddgd(d)d*t        d+ ,      d-.      }|j	                  |       |j                  d/      }|j                  j                  d      }|j                  dk(  sJ d0|k(  sJ t        d       d1 i}t        t        |dddgt        d2 ,      t        d3 ,      |d45      }|j	                  |       |j                  d6      }|j                  j                  d      }|j                  dk(  sJ d7|k(  sJ t        t        dddgt        t        d8      9      d:;      }|j	                  |       |j                  d<      }|j                  j                  d      }|j                  d=k(  sJ d> }t        t        |dddgt        t        d8      9      t        |9      d?@      }|j	                  |       |j                  dA      }|j                  j                  d      }|j                  dk(  sJ dB|k(  sJ t        t        |dddgt        t        d8      9      dgdCD      }|j	                  |       |j                  dE      }|j                  j                  d      }|j                  dk(  sJ dF|k(  sJ t        t        |dddgt        t        d8      9      dgdGH      }|j	                  |       |j                  dI      }|j                  j                  d      }|j                  dk(  sJ dF|k(  sJ t        t        |dddgt        t        d8      9      dJ;      }|j	                  |       |j                  dK      }|j                  j                  d      }|j                  d=k(  sJ y )LNr   r   r/   )r   rB   z/admin/test/export/csv/r   r   col1_1col2_1r   col1_2col2_2r   col1_3col2_3)r   r   r   T)
can_exportr   z/admin/model/export/csv/r   ztext/csvr~   z8Col1,Col2
col1_1,col2_1
col1_2,col2_2
col1_3,col2_3
)r   r   r   exportinclusion)r  r   column_export_listrB   z"/admin/exportinclusion/export/csv/zAId,Col1,Col2
1,col1_1,col2_1
2,col1_2,col2_2
3,col1_3,col2_3
exportexclusion)r  r   column_export_exclude_listrB   z"/admin/exportexclusion/export/csv/zCol1
col1_1
col1_2
col1_3
u   –ut8_1–u   –utf8_2–   utf8)r  r   rB   z/admin/utf8/export/csv/u   –ut8_1–,–utf8_2–
z	Str Fieldz	Int Fieldr   c                      |j                   dz  S Nr   r   rF   cmps       r   rQ   z!test_export_csv.<locals>.<lambda>v      qvvz r   r  types_and_formatters)r  r   r   column_formattersrB   z'/admin/types_and_formatters/export/csv/z-Str Field,Int Field
col1_1,2
col1_2,4
,6
c                      y)Nnullr#   )r   valuer@   s      r   rQ   z!test_export_csv.<locals>.<lambda>  s    r   c                      |j                   dz  S )Nr   r  r  s       r   rQ   z!test_export_csv.<locals>.<lambda>  s    affqj r   c                      |j                   dz  S r  r  r  s       r   rQ   z!test_export_csv.<locals>.<lambda>  r   r   export_types_and_formatters)r  r   column_formatters_exportr"  column_type_formatters_exportrB   z./admin/export_types_and_formatters/export/csv/z'Col1,Col2
col1_1,3
col1_2,6
null,9
render_macror   macro_exception)r  r   r"  rB   z"/admin/macro_exception/export/csv/i  c                 "    |r|j                   S dS )N r   r  s       r   export_formatterz)test_export_csv.<locals>.export_formatter  s    qvv""r   "macro_exception_formatter_override)r  r   r"  r)  rB   z5/admin/macro_exception_formatter_override/export/csv/z#Col1,Col2
col1_1,1
col1_2,2
,3
 macro_exception_exclude_override)r  r   r"  r  rB   z3/admin/macro_exception_exclude_override/export/csv/zCol2
1
2
3
macro_exception_list_override)r  r   r"  r  rB   z0/admin/macro_exception_list_override/export/csv/macro_exception_macro_overridez1/admin/macro_exception_macro_override/export/csv/)r{   r   r3   r   r   rh   r   r?   r   mimetyper   typer   )	ry   rz   r   r   r   	view_datar?   type_formattersr/  s	            r   test_export_csvr8  "  sl   JC__F VV,<vND	NN4	-	.B>>S    Hh'Hh'Hh'I 	d&,f%57D	NN4	.	/B77>>'"D;;*$$$>>S     $$ $ $ 	d&,f%5,B"35D 
NN4	8	9B77>>'"D;;*$$$>>S    "&& & & 	d&,f%55;H"35D 
NN4	8	9B77>>'"D;;*$$$>>S       02GHIaL	d&,f%5HD	NN4	-	.B77>>'"D>>S   6$>>> Ha Ha D!I yT7G*K@$AB'	D 
NN4	=	>B77>>'"D>>S       Dz#CDOyT7G!%+H!I$AB&5.D 
NN4	D	EB77>>'"D>>S       $VV,<E.$9:"D
 
NN4	8	9B77>>'"D>>S   # yT7GE.$9:!%+;!<5	D 
NN4	K	LB77>>'"D>>S       yT7GE.$9:$*83	D 
NN4	I	JB77>>'"D>>S       yT7GE.$9:"80	D 
NN4	F	GB77>>'"D>>S       yT7GE.$9:1D
 
NN4	G	HB77>>'"D>>S   r   c            	         t               \  } }| j                         }ddlm} t	        t
        d      }|j                  |       |j                         }t        |d   |j                        sJ t        |d   |j                        sJ |j                  d      }|j                  dk(  sJ t	        t
        dd	d	d
      }|j                  |       |j                         }t        |      dk(  sJ t        |d   |j                        sJ |j                  d      }|j                  dk(  sJ t	        t
        dd
d
d
      }|j                  |       |j                         }t        |d   |j                        sJ t        |d   |j                         sJ t        |d   |j                        sJ |j                  d      }|j                  dk(  sJ t	        t
        d|j#                  dd      |j%                  dd      g      }|j                  |       |j                         }t        |d   |j                        sJ t        |d   |j                        sJ t        |d   |j"                        sJ t        |d   |j$                        sJ |j                  d      }|j                  dk(  sJ |j&                  j)                  d      }d|v sJ d|v sJ d|v sJ y )Nr   )templater/   r   r   z/admin/test/r~   r   FT)rB   r   r   can_view_detailsz/admin/test1/r   )rB   r;  details_modalr   r   z/admin/test2/r   zglyphicon glyphicon-offzhttp://localhost/?id={row_id}zglyphicon glyphicon-testztest1.index_view)rB   column_extra_row_actionsr   z/admin/test3/r   zglyphicon-offzhttp://localhost/?id=zglyphicon-test)r{   r   flask_admin.modelr:  r3   r   r   get_list_row_actionsr   EditRowActionDeleteRowActionrh   r   r<   ViewRowActionViewPopupRowActionEditPopupRowActionLinkRowActionEndpointLinkRowActionr?   r   )ry   rz   r   r:  r   actionsr   r?   s           r   test_list_row_actionsrH    s   JC__F* 0D	NN4'')Ggaj("8"8999gaj(":":;;;	N	#B>>S    5UeijD	NN4'')Gw<1gaj("8"8999	O	$B>>S    *.'+$(*D 
NN4'')Ggaj("="=>>>gaj("="=>>>gaj(":":;;;	O	$B>>S    %334MOno%;;<VXjk3D
 
NN4'')Ggaj("8"8999gaj(":":;;;gaj("8"8999gaj("@"@AAA	O	$B>>S   77>>'"Dd""""d***t###r   N).flaskr   werkzeug.middleware.dispatcherr   ImportErrorwerkzeug.wsgiwerkzeug.testr   wtformsr   flask_adminr   r   flask_admin._compatr	   r
   r>  r   r   flask_admin.model.templater   objectr   r   r%   
BaseFilterr(   BaseModelViewr3   r{   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r8  rH  r#   r   r   <module>rU     s    3C !  # 5 + ,F  4==  7%% HD&& HVT)n!*",& E*a 
6	^CB8M)`%E!P@$K  323s   B6 6CC