
    *jp;                     .   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mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d d	lmZ d d
l m!Z!m"Z" d dl#m$Z$  ed          Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3dS )    N)Path)
TestClient)Sessionselect)get_settings)init_dbreset_db_for_tests)app)	ActivityEventExternalPost	PostDraftProductionQueueItemProviderUploadRequest
VideoAssetWebsiteCompanionYouTubeUploadAudit)PreparedPackageImporter)!detect_pending_website_duplicatesimport_existing_audit)create_existing_upload_requestz/home/agent/jarvis_runtime/autoshortsbot/AutoShortsBot/data/youtube_upload_audits/erf-025-mfa-prompt-without-login_chatterbox_gianna_clone_premium_v1_readable_silent_2line_clean_ai_youtube_upload_audit.jsonc                     t                      }d|_        | dz  |_        t          |          }t	          |           |t          t                    fS )Nz	sqlite://storage)r   database_urlstorage_rootr   r	   r   r
   )tmp_pathsettingsengines      ]/home/agent/projects/AutoShorts_Dashboard/backend/tests/test_sprint81_reconciliation_queue.pysetup_test_dbr       sL    ~~H'H$y0HXFv:c??""    c                    t          |           \  }}t          |          5 }t          |t          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}}|	                    t          |d
                   }
|	                    t          |d                   }|	                    t          |d                   }|                    t          t                                        t          j        dk                                                        }|                    t          t&                                        t&          j        |j        k                                                        }|
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}}|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}}|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 }||u}|st	          j        d|fd||f          dt/          j                    v st	          j        |          rt	          j        |          ndt	          j        |          dz  }dd|iz  }t          t	          j        |                    d x}}|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}}|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            d S # 1 swxY w Y   d S )"NFdry_runyoutube_video_idJ6ErKh55-KQ==z%(py1)s == %(py4)spy1py4assert %(py6)spy6audit_idvideo_asset_idpost_draft_idexternal_existing_upload)z5%(py2)s
{%(py2)s = %(py0)s.upload_status
} == %(py5)sauditpy0py2py5assert %(py7)spy7z;%(py2)s
{%(py2)s = %(py0)s.external_youtube_id
} == %(py5)svideoz8%(py2)s
{%(py2)s = %(py0)s.external_post_id
} == %(py5)sdraftis notz%(py0)s is not %(py3)sexternalr5   py3assert %(py5)sr7   pushedz.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)s	companionmfa-prompt-without-login)z,%(py2)s
{%(py2)s = %(py0)s.slug
} == %(py5)s)r    r   r   	AUDIT_025
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationgetr   r   r   execr   r   whereexternal_post_idfirstr   r0   idupload_status@py_builtinslocals_should_repr_global_nameexternal_youtube_idstatusslug)r   r   _sessionresult@py_assert0@py_assert3@py_assert2@py_format5@py_format7r3   r;   r=   rA   rG   @py_assert1@py_assert4@py_format6@py_format8@py_format4s                       r   0test_import_existing_youtube_audit_creates_linksri      s0   h''IFA	 <G&w	5III():]:)]::::::::::)]:::::)::::]:::::::::::::::::::::::::::.z0BCCJ/?(@AAIvo'>??<<| 4 4 : :<;X\i;i j jkkqqssLL(8!9!9!?!?@P@_chck@k!l!lmmssuu	"@&@@"&@@@@@@@@@@@"&@@@@@@@@@@@@@u@@@@@u@@@@@@"@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@(9M9(M9999999999(M999999999999u99999u999999(9999M999999999999999999999999999%66%6666666666%666666666666u66666u666666%6666666666666666666666666666666##xt##########xt############x#####x######t#########################+8+8++++++++++8++++++++++++y+++++y++++++++++8+++++++++++++++++++++++++++~;!;;~!;;;;;;;;;;;~!;;;;;;;;;;;;;y;;;;;y;;;;;;~;;;;!;;;;;;;;;;;;;;;;;;;;;;;;;;;;< < < < < < < < < < < < < < < < < <s   X YYYc           
      v   t          |           \  }}t          |          5 }t          ddddddd          }|                    |           |                                 |                    |           t          |j        t          j	        ddd	d
          }|                    |           |                                 t          |t          d          }|                    t          |j                  }|                    t          |j                  }|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}	}|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}}|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            d S # 1 swxY w Y   d S )Nz erf-025-mfa-prompt-without-loginr$    dryrunchecksumMFA
dryrun_old)candidate_id
package_idsource	file_pathchecksumworking_titlerY   descprivate)r0   providertitledescriptionprivacy_statusrR   Fr#   r%   r&   r'   r)   r*   r-   r.   r:   r;   r4   r8   r9   r<   r=   )r    r   r   addcommitrefreshr   rT   r   youtuber   rI   rO   rJ   rK   rL   rM   rN   rY   rV   rW   rX   rR   )r   r   r\   r]   r;   r=   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   s                   r   9test_real_youtube_id_overwrites_dryrun_for_same_candidater   ,   s   h''IFA	 
7G(JWy  CL  XZ  eu  EJ  `l  m  m  mEGNN,,,gooe.D.D.DH<LTYgm  H  [g  h  h  hEGNN,,,&w	5IIIJ11Iux00():]:)]::::::::::)]:::::)::::]:::::::::::::::::::::::::::(9M9(M9999999999(M999999999999u99999u999999(9999M999999999999999999999999999%66%6666666666%666666666666u66666u666666%6666666666666666666666666666666
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7 
7s   K?L..L25L2c           	      :   t          |           \  }}t          |          5 }t          dddddd          }|                    |           |                                 |                    |           t          |j        t          j	        ddd	          }|                    |           |                                 |                    |           t          ||j                  }|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}	}t!          |d                   }|j        } |            }|sddt%          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }
t          t          j        |
                    d x}}|                                }d}||v }	|	st          j        d|	fd||f          t          j        |          dt%          j                    v st          j        |          rt          j        |          nddz  }dd|iz  }t          t          j        |                    d x}}	d}|j        } |            }||v}	|	st          j        d|	fd||f          t          j        |          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}	x}}d d d            n# 1 swxY w Y   |                    d"                                          d#         }t3          |          }	d$}|	|k    }|st          j        d|fd%|	|f          d&t%          j                    v st          j        t2                    rt          j        t2                    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}||k    }	|	slt          j        d|	fd||f          t          j        |          t          j        |          dz  }
dd|
iz  }t          t          j        |                    d x}x}	}d S )-Nzerf-testmanualrk   abcdef1234567890zUpload Request Testro   rp   rq   rr   rs   rt   ru   rv   r0   rw   rx   ry   rz   rZ   approvedr'   r)   r*   r-   r.   outbox_pathzAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}outboxr5   r6   r,   z$APPROVE_UPLOAD erf-test abcdef123456in)z%(py1)s in %(py3)stext)r+   rC   rD   r7   token)not in)zH%(py1)s not in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.lower
}()
})r+   rC   r7   r9   assert %(py9)spy9z"/api/agent/upload-requests/pendingitems   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slenpendingr5   r+   rC   r.   assert %(py8)spy8r   expected_candidate_id)r    r   r   r{   r|   r}   r   rT   r   r~   r   rJ   rK   rL   rM   rN   r   existsrV   rW   rX   	read_textlowerrO   jsonr   )r   r   clientr]   r;   r=   reqr_   r`   ra   rb   rc   r   rd   r   rh   rf   re   @py_assert6rg   @py_format10r   @py_assert5@py_format9s                           r   @test_upload_request_outbox_and_agent_pending_contains_no_secretsr   ;   sc   "8,,NFF	 +G
zRZfh  tF  Vk  l  l  lEGNN,,,gooe.D.D.DH<LTiw}  OX  Y  Y  YEGNN,,,gooe.D.D.D,Weh??8}*
*}
**********}
*****}****
***************************c-())}}}vv}!!5=5==========5=====5===========================================*dj*jjll*wl**********wl*****w***********d*****d******j****l*****************************+ + + + + + + + + + + + + + + jj=>>CCEEgNGw<<1<1<133ww<11:-.<*<.*<<<<<<<<<<.*<<<<<.<<<<*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<s   NOOOc           	         t          |           \  }}t          |          5 }t          dddddd          }|                    |           |                                 |                    |           t          |j        t          j	        ddd	          }|                    |           |                                 |                    |           t          ||j                  }d d d            n# 1 swxY w Y   |                    d
|d          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
|d          dddi                                          }|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         }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 S )Nztransition-testr   rk   transitionchecksumzTransition Testr   ru   rv   r   z/api/agent/upload-requests/rT   z
/mark-sentrZ   sent_to_executorr'   r)   r*   r-   r.   z	/completer%   manual_completion_testr   	completed)r    r   r   r{   r|   r}   r   rT   r   r~   r   postr   rJ   rK   rL   rM   rN   )r   r   r   r]   r;   r=   r   sentr_   r`   ra   rb   rc   r   s                 r   ;test_upload_request_agent_status_transitions_without_uploadr   N   s   "8,,NFF	 @G(9FW`htv  BV  fw  x  x  xEGNN,,,gooe.D.D.DH<LTesy  KT  U  U  UEGNN,,,gooe.D.D.D,Weh??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ;;JSYJJJKKPPRRD>///>///////////>//////>////////////////////////////////N#d)NNNVh  kC  VD  E  E  J  J  L  LIX-+-+----------+---------+---------------------------'(D,DD(,DDDDDDDDDDD(,DDDDDD(DDDD,DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDs   C
C88C<?C<c           
         t          |           \  }}|                    dddddddd	                                          }|                    dd
dddddd	                                          }|                    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|d          ddi	           |                    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 S )N/api/production-queuezApproved lowBapproved_next   r   r   )rx   briefrZ   positionpriorityrq   r   zLocked winsAlocked_next	   r   /api/agent/production/nextqueue_item_idrT   r'   r)   r*   r-   r.   /api/production-queue/rZ   archived)	r    r   r   rO   rJ   rK   rL   rM   rN   )r   r\   r   lowlockednxtr_   r`   ra   rb   rc   fallbacks               r   @test_production_queue_ordering_locked_wins_and_approved_fallbackr   ]   s   h''IAv
++-nWZfu  DE  ST  `h  5i  5i+  j  j  o  o  q  qC[[0Y\hu  DE  ST  `h  8i  8i[  j  j  o  o  q  qF
**1
2
2
7
7
9
9C/6$</<//////////</////////<///////////////////////////
KK777x>TKUUUzz677<<>>HO$1D	1$	1111111111$	11111$1111	11111111111111111111111111111r!   c           	      J   t          |           \  }}|                    ddddddd                                          }|                    d	|d
          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                                          }
|
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         d         }d}||u }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|
d         d         }d}||u }|slt          j        d|fd||f          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}|
d         d         }||v }|slt          j        d |fd!||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|
d"         d#         }d}||u }|slt          j        d|fd||f          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}}|                    d$|d
          d,                                          }|d-         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$|d
          d0          }|j	        }d&}||k    }|st          j        d|fd'||f          d1t          j                    v st          j        |          rt          j        |          nd1t          j        |          t          j        |          d)z  }d*d+|iz  }t          t          j        |                    d x}x}}|                    d$|d
          d2                                          }|d         }d3}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|                    d$|d
          d0                                          }|d4         }d}||u }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|d5         }d6}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|d7         }|s:d8d9t          j        |          iz  }t          t          j        |                    d }|d:         }t          |          }|j        } |            }|sd;d<t          j                    v st          j        t                    rt          j        t                    nd<t          j        |          t          j        |          t          j        |          t          j        |          d=z  }t          t          j        |                    d x}x}x}}|d>         }t          |          }|j        } |            }|sd;d<t          j                    v st          j        t                    rt          j        t                    nd<t          j        |          t          j        |          t          j        |          t          j        |          d=z  }t          t          j        |                    d x}x}x}}|                    d                                          d?         d@         }|d         }dA}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|d7         }|d7         }||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}d S )BNr   zNext locked itemzMake it shortzManual test	suggestedr   )rx   r   reasonrZ   rq   r   r   rT   z
/lock-nextrZ   r   r'   r)   r*   r-   r.   r   r   production_rules$no_final_wan_render_without_approvalT)is)z%(py1)s is %(py4)s(ready_for_review_requires_quality_passedquality_profileversionzautoshorts-quality-v1.1no_large_top_titlevisual_checks_requiredr   z%(py1)s in %(py4)sdirector_skillrequired/api/agent/production//mark-started  z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sblockedr4   r8   r9   z/concept-proposedconceptconfirm_commandzAPPROVE_PRODUCTION z/generate-review-packagegenerate_blocked/approve-generationconcept_approvedokmodeworkflow_previewr0   assert %(py1)sr+   
video_pathz_assert %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}.exists
}()
}r   )r5   r6   r,   r.   r   manifest_pathr   r   	in_review)r    r   r   rJ   rK   rL   rM   rN   rO   status_coderV   rW   rX   r   r   )r   r\   r   createdr   r_   r`   ra   rb   rc   r   r   rd   re   rf   rg   r   r   r   	generated@py_format2r   @py_assert7r   
ready_items                            r   4test_production_agent_lifecycle_and_ready_for_reviewr   h   s   h''IAvkk1BT_n  {H  T_  ks  9t  9tk  u  u  z  z  |  |G[[K'$-KKKLLQQSSF(,},},,,,,,,,,,},,,,,,,,,},,,,,,,,,,,,,,,,,,,,,,,,,,,
**1
2
2
7
7
9
9C074=0=0000000000=000000000=000000000000000000000000000!"#IJRdRJdRRRRRRRRRRJdRRRRRJRRRRdRRRRRRRRRRRRRRRRRRRRRRRRRRR!"#MNVRVVNRVVVVVVVVVVVNRVVVVVVNVVVVRV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 !),I0II,0IIIIIIIIIII,0IIIIII,IIII0IIIIIIIIIIIIIIIIIIIIIIIIIIIIS3'8#9:R#SS#SSSSSSSSSSS#SSSSSSSSSS#SSSSSSSSSSSSSSSSSSSSSSSSSSSS ,44,4444444444,44444,4444444444444444444444444444444kkO74=OOOPPG%#%#%%%%%%%%%%#%%%%%%%%%%%%7%%%%%7%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%kkS74=SSSTTYY[[G9/0Y4Y'RV-4Y4YY04YYYYYYYYYYY04YYYYYY0YYYY4YYYYYYYYYYYYYYYYYYYYYYYYYYYY{{#cGDM#c#c#cdd'.3.'3..........'3.......................'....3...........................{{VGDMVVVWW\\^^HH3!33!33333333333!3333333333!3333333333333333333333333333\WT]\\\]]bbddIT?"d"?d""""""""""?d"""""?""""d"""""""""""""""""""""""""""V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2222%&&&&&&&&&&&&&&&&&&&&&&&&&,'14'((1(/1//1111111111111114111114111111'1111(1111/1111111111111111111111111111/*44*++4+24224444444444444444444444444444*4444+44442444444444444444444444444444434499;;GDQGJh.;.;..........;.........;...........................&'F95E+FF'+FFFFFFFFFFF'+FFFFFF'FFFF+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFr!   c                    t          |           \  }}|                    dddddd                                          }|                    d|d	          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|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                                          }|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|d	          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 S )Nr   zSafe legacy router   r   r   )rx   r   rZ   rq   r   r   rT   z/send-to-productionrZ   concept_proposedr'   r)   r*   r-   r.   r   r   r   r   r   r4   r8   r9   r   r   	producing)r    r   r   rJ   rK   rL   rM   rN   r   rV   rW   rX   )r   r\   r   r   r   r_   r`   ra   rb   rc   r   rd   re   rf   rg   r   starteds                    r   Jtest_send_to_production_legacy_route_cannot_start_without_concept_approvalr      s   h''IAvkk1BU`coz  GO  9P  9Pk  Q  Q  V  V  X  XG;;RRRRSSXXZZD>///>///////////>//////>////////////////////////////////kkO74=OOOPPG%#%#%%%%%%%%%%#%%%%%%%%%%%%7%%%%%7%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%{{VGDMVVVWW\\^^HH3!33!33333333333!3333333333!3333333333333333333333333333kkO74=OOOPPUUWWG8++++++++++++++++++++++++++++++++++++++++++++++++++r!   c                 >   t          |           \  }}t                      }d}| dz  }|                    d           t          |          5 }t	          ddd|d| d	          }|                    |           |                                 |                    |           |d
d|j        ddddddgdddddddddddddd}d d d            n# 1 swxY w Y   t          ||          }	|	
                    ||          }
t          |          5 }|                    t          |j                  }|                    t          |
          }|                    t          t                                        t          j        dk                                                        }|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  }t5          t)          j        |                    d x}x}}|j        }||
k    }|st)          j        d|fd ||
f          dt-          j                    v st)          j        |          rt)          j        |          ndt)          j        |          d!t-          j                    v st)          j        |
          rt)          j        |
          nd!d"z  }d#d$|iz  }t5          t)          j        |                    d x}}|j        }||k    }|st)          j        d|fd%||f          dt-          j                    v st)          j        |          rt)          j        |          ndt)          j        |          d&t-          j                    v st)          j        |          rt)          j        |          nd&d"z  }d#d$|iz  }t5          t)          j        |                    d x}}|j        }||k    }|st)          j        d|fd'||f          d(t-          j                    v st)          j        |          rt)          j        |          nd(t)          j        |          d&t-          j                    v st)          j        |          rt)          j        |          nd&d"z  }d#d$|iz  }t5          t)          j        |                    d x}}|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  }t5          t)          j        |                    d x}x}}d }||u}|st)          j        d*|fd+||f          d,t-          j                    v st)          j        |          rt)          j        |          nd,t)          j        |          d-z  }d.d/|iz  }t5          t)          j        |                    d x}}d d d            d S # 1 swxY w Y   d S )0Npackage_queue_testz	input.mp4s   fake video byteszQueue linked packager   r   zstorage/incoming/z/manifest.json)rx   rZ   rq   expected_package_idexpected_package_manifestprepared_packageTenzEveryday Red FlagszTest packagez#testzScript textF)synthetic_mediacommercial_contentpassed)visual_gate
voice_gate	hook_gatemetadata_gatesafety_gatepackage_integrity_gateoverallready_for_review)rp   rq   test_packager   rt   languageseriessuggested_youtube_titlesuggested_youtube_descriptionsuggested_hashtagsscript
disclosurequalityrZ   )r   r   production_package_importedpackage_readyr'   rF   itemr4   r8   r9   )z6%(py2)s
{%(py2)s = %(py0)s.video_asset_id
} == %(py4)svideo_idr   r-   r.   )z9%(py2)s
{%(py2)s = %(py0)s.actual_package_id
} == %(py4)srp   )z2%(py2)s
{%(py2)s = %(py0)s.package_id
} == %(py4)sr;   )z.%(py2)s
{%(py2)s = %(py0)s.script
} == %(py5)sr>   r@   eventrB   rD   r7   ) r    r   write_bytesr   r   r{   r|   r}   rT   r   import_manifest_payloadrO   r   rP   r   r   rQ   
event_typerS   rZ   rJ   rK   rV   rW   rX   rL   rM   rN   r0   actual_package_idrp   r  )r   r   r\   r   rp   source_videor]   r  manifestimporterr  r;   r	  rd   re   r`   rf   rg   rb   rc   ra   rh   s                         r   9test_prepared_package_import_links_manifest_to_queue_itemr     s   h''IFA~~H%Jk)L0111	 
G")?^f  }G  cQ  wA  cQ  cQ  cQ  R  R  RD7>>+++W__T-B-B-B$( !W3*'=-;#*)#.2%PP'&%!)'*2#  )-
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
6 'HHHH//,GGH	 	!G{{.88J11VM22889QUr9rssttzz||{-o-{o----------{o------------t-----t------{----o---------------------------"."h.........."h............t.....t......"...........h.....h...........................%3%3333333333%333333333333t33333t333333%3333333333333333333333333333333333333333333-:----------:------------u-----u-----------------:-----:---------------------------|,},|},,,,,,,,,,|},,,,,,,,,,,,u,,,,,u,,,,,,|,,,,},,,,,,,,,,,,,,,,,,,,,,,,,,,  uD          uD            u     u      D                         	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s&   A9CCCU3ZZZc                    t          |           \  }}t          |          5 }t          |          }|d         }|sedddt          j                    v st          j        |          rt          j        |          ndiz  }t          t          j	        |                    |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         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         }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 d d            d S # 1 swxY w Y   d S )Npotential_duplicateszassert %(py0)sr5   dupesr   existing_slugrH   r'   r)   r*   r-   r.   pending_slugz+login-prompt-you-didn-t-start-don-t-approvepush_statuszwaiting for approval)r    r   r   rV   rW   rJ   rX   rL   rM   rN   rK   )r   r   r\   r]   r^   r  @py_format1r_   r`   ra   rb   rc   s               r   =test_website_duplicate_detection_catches_pending_login_promptr     s   h''IFA	 ?G27;;-.uuQx(F,FF(,FFFFFFFFFFF(,FFFFFF(FFFF,FFFFFFFFFFFFFFFFFFFFFFFFFFFFQx'X+XX'+XXXXXXXXXXX'+XXXXXX'XXXX+XXXXXXXXXXXXXXXXXXXXXXXXXXXXm$>(>>$(>>>>>>>>>>>$(>>>>>>$>>>>(>>>>>>>>>>>>>>>>>>>>>>>>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s   HII
I
c                 	   t          |           \  }}|                    ddddd           |                    ddd	i                                          }|d
         }t          |          }d	}||k    }|st	          j        d|fd||f          dt          j                    v st	          j        t                    rt	          j	        t                    ndt	          j	        |          t	          j	        |          t	          j	        |          dz  }dd|iz  }	t          t	          j        |	                    d x}x}x}}|                    d                                          d
         }
d |
D             }t          |          }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             }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             }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             }|r|d         d         }dd h}||v }|slt	          j        d!|fd"||f          t	          j	        |          t	          j	        |          d#z  }d$d%|iz  }t          t	          j        |                    d x}x}}|d         d&         }|s:d'd(t	          j	        |          iz  }t          t	          j        |                    d }d S d S ))Nr   z6If This Message Says Your Account Will Be Locked, Stopr   r   rx   rZ   rq   r   z*/api/production-queue/seed-recommendationsminimum   r   >=)z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} >= %(py7)sr   )r5   r6   r,   r9   r   r   c                 B    g | ]}|d          dk    |d         dk    |S )rq   recommendationrZ   r    .0r  s     r   
<listcomp>z]test_production_queue_seeds_many_ranked_suggestions_and_duplicate_warning.<locals>.<listcomp>   s9    rrrDT(^?O-O-OTXYaTbfqTqTq4TqTqTqr!   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)ssuggestionsr   r   r   c              3   6   K   | ]}|d          p|d         V  dS )hookr   Nr"  r#  s     r   	<genexpr>z\test_production_queue_seeds_many_ranked_suggestions_and_duplicate_warning.<locals>.<genexpr>   s/      EEtF|,tG}EEEEEEr!   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}allr   c              3      K   | ]}d |v V  	dS )duplicate_riskNr"  r#  s     r   r)  z\test_production_queue_seeds_many_ranked_suggestions_and_duplicate_warning.<locals>.<genexpr>   s(      @@D4'@@@@@@r!   c                     g | ]<}d |d                                          v sd|d                                          v :|=S )accountrx   lock)r   r#  s     r   r%  z]test_production_queue_seeds_many_ranked_suggestions_and_duplicate_warning.<locals>.<listcomp>   sP    {{{dY$w-BUBUBWBW5W5W[aeijqerexexezez[z[zT[z[z[zr!   r   r,  mediumhighr   r   r*   r-   r.   similar_contentr   r+   )r    r   r   r   rJ   rK   rV   rW   rX   rL   rM   rN   rO   r*  )r   r\   r   seededrd   r`   r   r   rg   r   queuer&  ra   re   rc   r   rb   account_itemsr_   r   s                       r   Itest_production_queue_seeds_many_ranked_suggestions_and_duplicate_warningr6     sr   h''IAv
KK'8p  }J  V^  /_  /_K  `  `  `[[EYXZO[\\aaccFg%3%2%2%%%%%%%%%%2%%%%%%%%%%%%3%%%%%3%%%%%%%%%%%%%%2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%JJ.//4466w?ErrErrrK{!r!r!!!!!!!!!!r!!!!!!!!!!!!3!!!!!3!!!!!!!!!!!!!{!!!!!{!!!!!!!!!!r!!!!!!!!!!!!!!!!!!!!!!!!!!!EEEEEE3EEEEEEEEEEEEEEEE3EEEEE3EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE@@K@@@@3@@@@@@@@@@@@@@@@3@@@@@3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{{k{{{M 3Q 01Gh5GG15GGGGGGGGGGG15GGGGGG1GGGG5GGGGGGGGGGGGGGGGGGGGGGGGGGGGQ 1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3 3r!   c                    t          |           \  }}|                    dddddd                                          }|                    ddd	d
dd                                          }|                    d|d          d                                          }|d         }|d         g}||k    }|slt          j        d|fd||f          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|d          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                                          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 S )Nr   Firstr   r   r   )rx   rZ   rq   r   r   Secondr   r!  r   r   rT   z/unlockunlockedr'   r)   r*   r-   r.   r   r   z/replace-lockedrZ   )	r    r   r   rJ   rK   rL   rM   rN   rO   )r   r\   r   rS   secondr:  r_   r`   ra   rb   rc   replaceds               r   5test_unlock_replace_and_agent_next_follow_queue_orderr=     s   h''IAvKK/S`lt  CD  7E  7EK  F  F  K  K  M  ME[[0U`l|  KL  8M  8M[  N  N  S  S  U  UF{{HE$KHHHIINNPPHJ0E$K=0=0000000000=000000000=000000000000000000000000000::23388::?KZuUY{ZK{ZZZZZZZZZZK{ZZZZZKZZZZ{ZZZZZZZZZZZZZZZZZZZZZZZZZZZ{{QF4LQQQRRWWYYHH................................................::23388::?K[vVZ|[K|[[[[[[[[[[K|[[[[[K[[[[|[[[[[[[[[[[[[[[[[[[[[[[[[[[[[r!   c           
         t          |           \  }}t          |          5 }t          ddddddd          }|                    |           |                                 |                    |           t          |j        t          j	        d	d
dd          }|                    |           |                                 |                    |           t          ||j                   |                    t          ddd                     |                                 d d d            n# 1 swxY w Y   |                    dddi                                          }|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         }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!         }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"}|d#         }||v }	|	slt          j        d$|	fd%||f          t          j        |          t          j        |          dz  }
dd|
iz  }t#          t          j        |                    d x}x}	}d S )&Nztest-oldpackage_real_003r   rk   xzOld test previewr   )ro   rp   rq   rr   rs   rt   rZ   Oldru   rv   r=   )r0   rw   rx   ry   rz   rZ   z
Old lockedr   r   r  z/api/dev/reset-active-workspacearchive_active_queueTr   active_review_countr   r'   r)   r*   r-   r.   videos_archivedr   r  )z%(py1)s >= %(py4)supload_requests_archived	analyticskeptr   r   )r    r   r   r{   r|   r}   r   rT   r   r~   r   r   r   r   rJ   rK   rL   rM   rN   )r   r   r   r]   r;   r=   r^   r_   r`   ra   rb   rc   s               r   Dtest_reset_active_workspace_archives_review_without_deleting_libraryrH     sk   "8,,NFF	 vG
?QZlxz  FI  Yk  tF  G  G  GEGNN,,,gooe.D.D.DH<LTYgm  H  QX  Y  Y  YEGNN,,,gooe.D.D.D&w999'l=Yabbbccceleseseueueuv v v v v v v v v v v v v v v [[:BXZ^A_[``eeggF'(-A-(A----------(A-----(----A---------------------------#$))$))))))))))$)))))$))))))))))))))))))))))))))))))),-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D33D7:D7c                    t          |           \  }}|                    d                                          d         }t          d |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         }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         }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         }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 S )Nz/api/upload-requests/executorsr   c              3   2   K   | ]}|d          dk    |V  dS )typeexisting_jarvis_uploaderNr"  )r$  es     r   r)  zJtest_existing_jarvis_uploader_is_ready_primary_executor.<locals>.<genexpr>   s1      RR!F)7Q*Q*Q!*Q*Q*Q*QRRr!   namez Existing Jarvis YouTube uploaderr'   r)   r*   r-   r.   rZ   readycredentials	availabler   private_upload)	r    rO   r   nextrJ   rK   rL   rM   rN   )
r   r\   r   	executorsjarvisr_   r`   ra   rb   rc   s
             r   7test_existing_jarvis_uploader_is_ready_primary_executorrV     s   h''IAv

;<<AACCGLIRRYRRRRRF&>???>???????????>??????>????????????????????????????????(&w&w&&&&&&&&&&w&&&&&&&&&w&&&&&&&&&&&&&&&&&&&&&&&&&&&- /K/ K////////// K///// ////K///////////////////////////&>--->----------->------>----------------------------------r!   )4builtinsrV   _pytest.assertion.rewrite	assertionrewriterJ   pathlibr   fastapi.testclientr   sqlmodelr   r   app.core.configr   app.db.sessionr   r	   app.mainr
   app.models.corer   r   r   r   r   r   r   r   r   'app.services.importers.prepared_packager   app.services.reconciliationr   r   app.services.upload_requestsr   rI   r    ri   r   r   r   r   r   r   r  r  r6  r=  rH  rV  r"  r!   r   <module>re     sW                       ) ) ) ) ) ) $ $ $ $ $ $ $ $ ( ( ( ( ( ( 6 6 6 6 6 6 6 6       c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c  c K K K K K K ` ` ` ` ` ` ` ` G G G G G GD  b  c  c	# # #< < <$7 7 7= = =&E E E2 2 2G G G>
, 
, 
,,! ,! ,!^? ? ?3 3 3 	\ 	\ 	\) ) ) . . . . .r!   