
    *j                         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 d d	lmZ d
 Zd Zd ZdS )    N)Path)
TestClient)Sessionselect)get_settings)init_dbreset_db_for_tests)app)	PostDraftProviderUploadRequest
VideoAssetWebsiteCompanion)complete_requestc                     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_sprint89_website_private_link.pysetup_test_dbr      sL    ~~H'H$y0HXFv:c??""    c           	         t          |           \  }}| dz  }|                    d           t          |          5 }t          ddt	          |          ddd          }|                    |           |                                 |                    |           t          |j	        t          j        ddd	gd
          }|                    |           |                                 |                    |           t          |j	        |j	        ddddi          }|                    |           |                                 |                    |           t          ||j	        ddi           |                    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  }t7          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  }t7          t+          j        |                    d x}	x}}
|j        }	d}
|	|
u }|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  }t7          t+          j        |                    d x}	x}}
|j	        }d d d            n# 1 swxY w Y   |                    d| d                                           d         }|d          }d }||u }|slt+          j        d|fd!||f          t+          j        |          t+          j        |          d"z  }d#d$|iz  }t7          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  }t7          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  }t7          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  }t7          t+          j        |                    d x}x}}d S ))Nz	video.mp4s   videozpkg-private-siteabczPrivate Siteuploaded_private)candidate_id
package_id	file_pathchecksumworking_titlestatusz
Safe guidez
#scamalertprivate)video_asset_idprovidertitledescription	tags_jsonprivacy_statussent_to_executorr(   )r%   post_draft_idr#   expected_video_shametadata_snapshot_jsonyoutube_video_id
PRIVATE123ready_without_public_video==)z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)scomp)py0py2py5zassert %(py7)spy7z)https://www.youtube.com/shorts/PRIVATE123)z:%(py2)s
{%(py2)s = %(py0)s.video_url_internal
} == %(py5)sFis)z<%(py2)s
{%(py2)s = %(py0)s.website_link_allowed
} is %(py5)s/api/website/companions//prepare-payloadpayloadvideoUrlz%(py1)s is %(py4)spy1py4assert %(py6)spy6sourcez%(py1)s == %(py4)swebsite_link_allowedpublic_video_url_visible)!r   write_bytesr   r   straddcommitrefreshr   idr   youtuber   r   execr   r   wherer%   firstr#   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationvideo_url_internalrG   postjson)r   r   client
video_pathsessionvideodraftreqr4   @py_assert1@py_assert4@py_assert3@py_format6@py_format8video_idr=   @py_assert0@py_assert2@py_format5@py_format7s                       r   Ntest_private_youtube_completion_prepares_website_companion_without_public_linkrn      s   "8,,NFFK'J8$$$	 G(:GYehisetet  @E  Uc  l~      EGNN,,,gooe.D.D.DH<LTbp|  JV  IW  hq  r  r  rEGNN,,,gooe.D.D.D5858Tf  |A  [h  jv  Zw  x  x  xC'..***GOOC,@,@,@#&+=|*LMMM||F#344::;K;Z^c^f;fgghhnnpp{:::{:::::::::::{:::::::::::::t:::::t::::::{::::::::::::::::::::::::::::::::&U*UU&*UUUUUUUUUUU&*UUUUUUUUUUUUUtUUUUUtUUUUUU&UUUU*UUUUUUUUUUUUUUUUUUUUUUUUUUUU(1E1(E1111111111(E111111111111t11111t111111(1111E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8               kkOXOOOPPUUWWXabG:&$&$&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&8/0@L@0L@@@@@@@@@@0L@@@@@0@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@834==4==========4=====4===============================878AEA8EAAAAAAAAAA8EAAAAA8AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs   O!P))P-0P-c                    t          |           \  }}|                    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di           |                    d|d	          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|                                           }t          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$         }|s:d%d&t          j        |          iz  }t          t          j        |                    d }|                    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,         }||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	          d0d1di                                          }|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}}|d1         }d}||u }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    d x}x}}|                    d2| d3                                          d4         }|d5         d6         }|j
        }d7} ||          }|ssd8t          j        |          t          j        |          t          j        |          t          j        |          d9z  }t          t          j        |                    d x}x}x}}|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}}|d5         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 S )=Nz/api/production-queuez Refund link that steals the cardzrOpen on a fake refund screen, call out that refunds should not need the full card again, then show the safer move.locked_nextmanual)r'   briefr#   rE   )r]   z/api/agent/production/rN   z/concept-proposedconceptconfirm_commandzAPPROVE_PRODUCTION r2   rF   r@   rC   rD   z/approve-generationapproval_sourcepytestz/generate-review-packageokTr9   r?   r%   z/api/videos/c              3   2   K   | ]}|d          dk    |V  dS )r&   rO   N ).0ds     r   	<genexpr>zOtest_full_idea_to_private_upload_to_website_payload_workflow.<locals>.<genexpr>=   s0      RRqq}	7Q7Q7Q7Q7Q7QRRr   draftsz%/api/upload-requests/youtube-private/z	/snapshotupload_snapshotr*   r$   
sha_prefixzassert %(py1)srA   z/save-and-approveapproved_byr#   approvedAPPROVE_UPLOADapproval_command)in)z%(py1)s in %(py4)sz/api/upload-requests/z/execute-existing-jarvisdry_runr;   r<   r=   rE   r/   dryrun_zLassert %(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.startswith
}(%(py5)s)
})rA   py3r7   r8   r>   rG   F)r   r\   r]   rS   rT   rX   rY   rZ   getnext
startswith)r   _r^   createdrs   rj   rf   rk   rl   rm   packageri   ra   youtube_draftsnapshot@py_format2upload_requestuploadr=   re   @py_assert6rh   s                         r   <test_full_idea_to_private_upload_to_website_payload_workflowr   .   s5	   h''IAvkk13 F	9 9k  
 tvv  kkS74=SSSTTYY[[\efG$%N)Nwt})N)NN%)NNNNNNNNNNN%)NNNNNN%NNNN)NNNNNNNNNNNNNNNNNNNNNNNNNNNN
KKKKKKSdfnRoKpppkkZ74=ZZZ[[``bbG4= D =D          =D     =    D                           '(HJJ0h00116688ERRE(ORRRRRMzz`-PTBU```aaffhhiz{H$%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L!!!!!!!!!!!!!!!!!!!!!!!!![[!oW[I\!o!o!o  xE  GO  wP[  Q  Q  V  V  X  XN(#1z1#z1111111111#z11111#1111z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A~.@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[[_1E___gprvfw[xx}}F$<4<4<4<4)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$kkOXOOOPPUUWWXabG8/0F0;FIF;;IFFFFFFFF0FFFF;FFFFI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:&$&$&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&834==4==========4=====4=================================r   )builtinsrU   _pytest.assertion.rewrite	assertionrewriterS   pathlibr   fastapi.testclientr   sqlmodelr   r   app.core.configr   app.db.sessionr   r	   app.mainr
   app.models.corer   r   r   r   r   app.services.upload_requestsr   r   rn   r   ry   r   r   <module>r      s                       ) ) ) ) ) ) $ $ $ $ $ $ $ $ ( ( ( ( ( ( 6 6 6 6 6 6 6 6       \ \ \ \ \ \ \ \ \ \ \ \ \ \ 9 9 9 9 9 9# # #B B B0> > > > >r   