
    ?Aj                         d dl Zd dlmc 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 d dlmZ d	 Zd
 Zd ZdS )    N)date)
TestClient)Sessionselect)app)engine)ChildTaskInstanceTaskKind
TaskStatusTaskTemplate)admin_headersc                  
   t          t                    5 } |                     t          t                                        t          j                                                            cd d d            S # 1 swxY w Y   d S )N)r   r   execr   r	   order_byidall)sessions    O/home/agent/projects/FamilyDashboard/backend/tests/test_admin_task_templates.py	_childrenr      s    	 DG||F5MM2258<<==AACCD D D D D D D D D D D D D D D D D Ds   AA88A<?A<c                  "   t          t                    } t          |           }t                      d         t	          ddd          }|                     d|j        ddddd	d
ddd	          }|j        }d}||k    }|st          j	        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|                                d         d         }	|                     d|                                           }
|
j        }d}||k    }|st          j	        d|fd||f          dt          j                    v st          j        |
          rt          j        |
          ndt          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}t'          fd|
                                d         D                       }d |d         d         D             }t)          |          }|sd d!t          j                    v st          j        t(                    rt          j        t(                    nd!t          j        |          t          j        |          d"z  }t          t          j        |                    d x}}|                     d#|	 |d$d%d	d&d'          }|j        }d}||k    }|st          j	        d|fd||f          d(t          j                    v st          j        |          rt          j        |          nd(t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|                                d)         }d}||k    }|slt          j	        d*|fd+||f          t          j        |          t          j        |          d,z  }d-d.|iz  }t          t          j        |                    d x}x}}|                     d|                                           }
t'          fd/|
                                d         D                       }d0 |d         d         D             }t)          |          }|sd d!t          j                    v st          j        t(                    rt          j        t(                    nd!t          j        |          t          j        |          d"z  }t          t          j        |                    d x}}d1 |d         d         D             }t)          |          }| }|sd2d!t          j                    v st          j        t(                    rt          j        t(                    nd!t          j        |          t          j        |          d"z  }t          t          j        |                    d x}x}}d S )3N           /api/admin/task-templateszduolingo-test-valerieDuolingobonusr   0,1,2,3,4,5,6T
   	child_idslugtitlekind
coin_valuepenalty_valueapplies_weekdaysactive
sort_orderheadersjson   ==z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)screatedpy0py2py5assert %(py7)spy7task_templater   /api/dashboard?date=   dashc              3   J   K   | ]}|d          d         j         k    |V  dS childr   Nr   .0rowr?   s     r   	<genexpr>zLtest_admin_template_update_syncs_open_dashboard_instances.<locals>.<genexpr>*   :      \\3S\$=OSXS[=[=[3=[=[=[=[\\    childrenc              3   F   K   | ]}|d          dk    o|d         dk    V  dS r$   r   r%   r   N rB   tasks     r   rD   zLtest_admin_template_update_syncs_open_dashboard_instances.<locals>.<genexpr>+   s9      ll4tG}
*FtF|w/FllllllrF   tasksopen,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyr4   r5   py4z/api/admin/task-templates/   Duolingo Französischrequired)r$   r%   r&   r'   patchedsynced_instances)>=)z%(py1)s >= %(py4)spy1rR   assert %(py6)spy6c              3   J   K   | ]}|d          d         j         k    |V  dS r>   r@   rA   s     r   rD   zLtest_admin_template_update_syncs_open_dashboard_instances.<locals>.<genexpr>6   rE   rF   c              3   F   K   | ]}|d          dk    o|d         dk    V  dS )r$   rS   r%   rT   NrJ   rK   s     r   rD   zLtest_admin_template_update_syncs_open_dashboard_instances.<locals>.<genexpr>7   s;      ||[_tG} 77VDLJ<V||||||rF   c              3   F   K   | ]}|d          dk    o|d         dk    V  dS rI   rJ   rK   s     r   rD   zLtest_admin_template_update_syncs_open_dashboard_instances.<locals>.<genexpr>8   s9      ppt4=J.J4<73JpppppprF   z0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
})r   r   r   r   r   postr   status_code
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr-   get	isoformatnextrP   patch)clientr,   dayr2   @py_assert1@py_assert4@py_assert3@py_format6@py_format8template_idr<   valerie@py_format5rV   @py_assert0@py_assert2@py_format7@py_assert5r?   s                     @r   9test_admin_template_update_syncs_open_dashboard_instancesr|      s%   __FF##GKKNE
tQ

Ckk#+ /

 

   G %#%#%%%%%%%%%%#%%%%%%%%%%%%7%%%%%7%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%,,..1$7K::>S]]__>>??D"s"s""""""""""s""""""""""""4"""""4""""""""""s"""""""""""""""""""""""""""\\\\$))++j"9\\\\\GllSZ[bScdjSkllll3llllllllllllllll3lllll3lllllllllllllllllllllllllllllllll2[22.
RSfhii   G
 %#%#%%%%%%%%%%#%%%%%%%%%%%%7%%%%%7%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%<<>>,-22-2222222222-22222-2222222222222222222222222222222::>S]]__>>??D\\\\$))++j"9\\\\\G||cjkrcstzc{||||3||||||||||||||||3|||||3|||||||||||||||||||||||||||||||ppW^_fWghnWoppppspppppppppppppppppppspppppsppppppppppppppppppppppppppppppppppprF   c                  T   t          t                    } t          |           }t          ddd          }|                     d|d ddddd	d
ddd	          }|j        }d}||k    }|st          j        d|fd||f          dt          j	                    v st          j
        |          rt          j        |          ndt          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|                                d         d         }	d}|	|k    }
|
slt          j        d|
fd|	|f          t          j        |	          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}	x}
}|                     d|                                                                           }g }|d         D ]B}t#          d |d          d!         D                       }|                    |d"                    Ct'          |          }
d#}|
|k    }|st          j        d|fd$|
|f          d%t          j	                    v st          j
        t&                    rt          j        t&                    nd%d&t          j	                    v st          j
        |          rt          j        |          nd&t          j        |
          t          j        |          d'z  }d(d)|iz  }t          t          j        |                    d x}
x}}|                     d*|d          d+d,d-i.          }|j        }d/}||k    }|st          j        d|fd||f          d0t          j	                    v st          j
        |          rt          j        |          nd0t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|                     d|                                                                           }|d         D ]}d1 |d          d0         D             }t)          |          }|sd2d3t          j	                    v st          j
        t(                    rt          j        t(                    nd3t          j        |          t          j        |          d4z  }t          t          j        |                    d x}}|                     d*|d          d5d,d6i.          }|j        }d/}||k    }|st          j        d|fd||f          d7t          j	                    v st          j
        |          rt          j        |          nd7t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|                     d|                                                                           }|d         D ]}d8 |d          d!         D             }t)          |          }|sd2d3t          j	                    v st          j
        t(                    rt          j        t(                    nd3t          j        |          t          j        |          d4z  }t          t          j        |                    d x}}d S )9Nr   r   r   r   zwuschi-fuettern-test   Wuschi fütternrT   r   rU   r   T   r!   r+   r.   r/   r1   r2   r3   r7   r8   r9   scopeshared)z%(py1)s == %(py4)srY   r[   r\   r:   rG   c              3   2   K   | ]}|d          dk    |V  dS )r$   r~   NrJ   rK   s     r   rD   zPtest_shared_task_template_is_completed_once_for_both_children.<locals>.<genexpr>T   s1      ccdWQb@b@bT@b@b@b@bccrF   rM   rN   r      )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slentask_ids)r4   rZ   py3r\   zassert %(py8)spy8z/api/tasks/z	/completeidempotency_keywuschi)r-   r;   donec              3   F   K   | ]}|d          dk    o|d         dk    V  dS )r$   r~   statusr   NrJ   rK   s     r   rD   zPtest_shared_task_template_is_completed_once_for_both_children.<locals>.<genexpr>]   ;      vvW[4=$55R$x.F:RvvvvvvrF   rO   rP   rQ   z/undozwuschi-undoundonec              3   F   K   | ]}|d          dk    o|d         dk    V  dS )r$   r~   r   rN   NrJ   rK   s     r   rD   zPtest_shared_task_template_is_completed_once_for_both_children.<locals>.<genexpr>c   r   rF   )r   r   r   r   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   r-   rj   rk   rl   appendr   rP   )rn   r,   ro   r2   rp   rq   rr   rs   rt   rx   ry   rw   rz   r<   r   r?   matchr{   @py_format9r   r   s                        r   =test_shared_task_template_is_completed_once_for_both_childrenr   ;   s   __FF##G
tQ

Ckk#*& /

 

   G %#%#%%%%%%%%%%#%%%%%%%%%%%%7%%%%%7%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%<<>>/*73?x?3x??????????3x?????3????x???????????????????????????::>S]]__>>??DDFFDHj! % %cceGnV&<cccccd$$$$x==A=A=A33xx=A;;;Xa[;;;CTV^B_;``D"s"s""""""""""s""""""""""""4"""""4""""""""""s"""""""""""""""""""""""""""::>S]]__>>??DDFFDj! w wvv_del_mnt_uvvvvsvvvvvvvvvvvvvvvvsvvvvvsvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv[[9x{999ARTa@b[ccF$$$$$$$$$$$$$$$$$$$$$$$$6$$$$$6$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$::>S]]__>>??DDFFDj! w wvv_del_mnt_uvvvvsvvvvvvvvvvvvvvvvsvvvvvsvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvw wrF   )builtinsrd   _pytest.assertion.rewrite	assertionrewriterb   datetimer   fastapi.testclientr   sqlmodelr   r   app.mainr   app.db.sessionr   
app.modelsr	   r
   r   r   r   tests.conftestr   r   r|   r   rJ   rF   r   <module>r      s                        ) ) ) ) ) ) $ $ $ $ $ $ $ $       ! ! ! ! ! ! N N N N N N N N N N N N N N ( ( ( ( ( (D D D
'q 'q 'qT(w (w (w (w (wrF   