
    BjD                         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 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mZmZ d
 Zd Zd Zd ZdS )    N)create_content_brief)create_script_draft)!convert_script_draft_to_candidate)build_render_manifest)build_html_preview)create_shot_plan)build_social_media_draft)ManualPlatformPostbuild_manual_posting_pack"render_manual_posting_instructionsvalidate_manual_posting_packc                      t          ddddd          } t          |           }t          | |          }t          t	          t          |                              }t          ||          S )Nai_life_systemsAI weekly review routinez4I use AI tools but still lose control of priorities.z>a 10-minute Sunday review that keeps AI as assistant, not bossyoutubetiktok)	pillar_idtopicaudience_problempayoff	platforms)r   r   r   r   r   r   r	   )briefscript	candidatepreviews       X/home/agent/jarvis_runtime/autoshortsbot/AutoShortsBot/tests/test_manual_posting_pack.py_draftr      sr     #(OO'  E !''F1%@@I !67G7O7O!P!PQQG#Iw777    c                  !   t                      } t          | 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}}|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}||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  }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 |j        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}}|j        d         }
t%          |
t&                    }|sd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dt          j                    v st          j        t&                    rt          j        t&                    ndt          j        |          dz  }t          t          j
        |                    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}}|
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#}|
j        }||v }|st          j        d$|fd%||f          t          j        |          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}x}}| j        }|
j        }||v }|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t          j        |          d)z  }d*d+|iz  }t          t          j
        |                    d x}x}}| j        }|
j        }||v }|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t          j        |          d)z  }d*d+|iz  }t          t          j
        |                    d x}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        |          d&z  }dd	|iz  }t          t          j
        |                    d x}x}}|
j        }d/}||k    }|st          j        d|fd0||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        d1         }|j        }d2}||k    }|st          j        d|fd ||f          d2t          j                    v st          j        |          rt          j        |          nd2t          j        |          t          j        |          dz  }dd	|iz  }t          t          j
        |                    d x}x}}|j        }d!}||k    }|st          j        d|fd"||f          d2t          j                    v st          j        |          rt          j        |          nd2t          j        |          t          j        |          dz  }dd	|iz  }t          t          j
        |                    d x}x}}d3}|j        }||v }|st          j        d$|fd%||f          t          j        |          d2t          j                    v st          j        |          rt          j        |          nd2t          j        |          d&z  }dd	|iz  }t          t          j
        |                    d x}x}}|j        }d}||k    }|st          j        d|fd0||f          d2t          j                    v st          j        |          rt          j        |          nd2t          j        |          t          j        |          dz  }dd	|iz  }t          t          j
        |                    d x}x}}|j        }t7          |          }d4}||k    }|st          j        d5|fd6||f          d7t          j                    v st          j        t6                    rt          j        t6                    nd7d2t          j                    v st          j        |          rt          j        |          nd2t          j        |          t          j        |          t          j        |          d8z  }d9d:|iz  }t          t          j
        |                    d x}x}x}}d S );N/tmp/final-video.mp4
video_pathz,ai_life_systems-ai-weekly-review-routine-35s)==)z4%(py2)s
{%(py2)s = %(py0)s.candidate_id
} == %(py5)spackpy0py2py5assert %(py7)spy7manual_posting)z-%(py2)s
{%(py2)s = %(py0)s.phase
} == %(py5)s)z2%(py2)s
{%(py2)s = %(py0)s.video_path
} == %(py5)sTis)zD%(py2)s
{%(py2)s = %(py0)s.requires_human_manual_upload
} is %(py5)s )z4%(py2)s
{%(py2)s = %(py0)s.side_effects
} == %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.external_calls
} == %(py5)sc              3   $   K   | ]}|j         V  d S )N)platform).0posts     r   	<genexpr>zmtest_build_manual_posting_pack_creates_youtube_and_tiktok_copy_without_upload_side_effects.<locals>.<genexpr>)   s$      ??4??????r   r   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)stuple)r'   r(   py4r+   zassert %(py9)spy9r   z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}
isinstancer   r
   )r'   py1r(   r6   )z0%(py2)s
{%(py2)s = %(py0)s.platform
} == %(py5)sr   )z-%(py2)s
{%(py2)s = %(py0)s.title
} == %(py5)sz9Manual upload: copy this description into YouTube Shorts.in)z4%(py1)s in %(py5)s
{%(py5)s = %(py3)s.instructions
}r9   py3r)   )zP%(py2)s
{%(py2)s = %(py0)s.caption
} in %(py6)s
{%(py6)s = %(py4)s.description
}draft)r'   r(   r6   py6zassert %(py8)spy8)zL%(py2)s
{%(py2)s = %(py0)s.cta
} in %(py6)s
{%(py6)s = %(py4)s.description
}z#AI)z3%(py1)s in %(py5)s
{%(py5)s = %(py3)s.description
})AILifeSystemsProductivity)z,%(py2)s
{%(py2)s = %(py0)s.tags
} == %(py5)s   r   z-Manual upload: copy this caption into TikTok.i  )<=)zQ%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.description
})
} <= %(py8)slen)r'   r9   r=   r)   r@   zassert %(py10)spy10)r   r   candidate_id
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationphaser#   requires_human_manual_uploadside_effectsexternal_callsplatform_postsr5   r8   r
   r1   titleinstructionscaptiondescriptionctatagsrF   )r>   r%   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert6@py_assert5@py_format10r   @py_format5@py_assert0@py_assert2@py_format7@py_format9r   @py_assert7@py_format11s                      r   Ztest_build_manual_posting_pack_creates_youtube_and_tiktok_copy_without_upload_side_effectsrk      s   HHE$U7MNNND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N4NNNNN4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:))):))))))))))):)))))))))))))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44444444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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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+>???X5???XCXX?CXXXXXXXXXXX?CXXXXXXXXXXXXX5XXXXX5XXXXXX?XXXX?XXXXCX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!!$Gg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222222g22222g2222222222222122222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(y(y((((((((((y((((((((((((7(((((7((((((((((y(((((((((((((((((((((((((((=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67666667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6F^'J^^FJ^^^^^^^^^^^FJ^^^^^^F^^^^^^^^^^^'^^^^^'^^^^^^J^^^^^^^^^^^^^^^^^^^^^^^^^^^^=/G//=///////////=/////////////5/////5//////=///////////G/////G//////////////////////////////////9+++9+++++++++++9+++++++++++++5+++++5++++++9++++++++++++++++++++++++++++++++++++++++++++++++++'G''5'''''''''''5''''''5'''''''''''G'''''G''''''''''''''''''''''''''''''''''<@@@<@@@@@@@@@@@<@@@@@@@@@@@@@7@@@@@7@@@@@@<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #F?&h&?h&&&&&&&&&&?h&&&&&&&&&&&&6&&&&&6&&&&&&?&&&&h&&&&&&&&&&&&&&&&&&&&&&&&&&&<555<55555555555<55555555555556555556555555<55555555555555555555555555555555:Qf>QQ:>QQQQQQQQQQQ:>QQQQQQ:QQQQQQQQQQQfQQQQQfQQQQQQ>QQQQQQQQQQQQQQQQQQQQQQQQQQQQ;";";"66;"!*3!""*d*"d**********"d************3*****3*************v*****v******!****"****d*******************************r   c            	         t                      } t          | d          } t          |          |j        |j        |j        |j        ddd          }t          |          }|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  }t          t          j        |                    d x}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        |          dz  }dd|iz  }t          t          j        |                    d x}	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        |          dz  }dd|iz  }t          t          j        |                    d x}	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        |          dz  }dd|iz  }t          t          j        |                    d x}	x}
}d S )Nr!   r"   F)upload_video)youtube_api)rH   rQ   r#   rU   rR   rS   rT   r-   )z0%(py2)s
{%(py2)s = %(py0)s.is_valid
} is %(py5)sresultr&   r*   r+   z*human manual upload is required in phase 1r:   )z.%(py1)s in %(py5)s
{%(py5)s = %(py3)s.errors
}r<   z/manual posting packs must not have side effectsz4manual posting packs must not call external services)r   r   typerH   rQ   r#   rU   r   is_validrI   rJ   rK   rL   rM   rN   rO   rP   errors)r>   r%   unsafero   r\   r]   r^   r_   r`   re   rf   s              r   Ttest_validate_manual_posting_pack_rejects_platform_actions_and_missing_manual_uploadrt   =   s   HHE$U7MNNNDT$ZZ&j?*%*&'  F *&11F?#e#?e##########?e############6#####6######?####e###########################7H6=H7=HHHHHHHHHH7=HHHHH7HHHHHHHHHHH6HHHHH6HHHHHH=HHHHHHHHHHHHHHHHHHHHHHHHHHH<MM<MMMMMMMMMM<MMMMM<MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMARV]RA]RRRRRRRRRRA]RRRRRARRRRRRRRRRRVRRRRRV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RRRRRRRRr   c                  
   t          t                      d          } t          |           }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
}||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}||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}||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}||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}||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}||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}||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 S )Nr!   r"   z## Manual Posting Packr:   )z%(py1)s in %(py3)stext)r9   r=   zassert %(py5)sr)   z Video file: /tmp/final-video.mp4z## YouTube Shortsz	## TikTokzTitle:zDescription:zTags:z!No platform upload was performed.)r   r   r   rI   rJ   rN   rK   rL   rM   rO   rP   )r%   rv   re   rf   @py_format4r_   s         r   Mtest_render_manual_posting_instructions_contains_video_path_and_platform_copyrx   R   sG   $VXX:PQQQD-d33D#+#t++++++++++#t+++++#+++++++++++t+++++t+++++++++++++++++++++++++++-5-5555555555-55555-5555555555555555555555555555555555555555555&$&&&&&&&&&&$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&;$;$;$$8t8t8tt!>T!!!!!!!!!!>T!!!!!>!!!!!!!!!!!T!!!!!T!!!!!!!!!!!!!!!!!!!!!!!!!!!7d?7d7dd.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666666666666666666666666r   )builtinsrK   _pytest.assertion.rewrite	assertionrewriterI   autoshorts.content.briefr   autoshorts.content.script_draftr   autoshorts.content.to_candidater   autoshorts.rendering.manifestr   autoshorts.rendering.previewr   autoshorts.rendering.shot_planr   autoshorts.social.draftr	    autoshorts.social.manual_postingr
   r   r   r   r   rk   rt   rx   r/   r   r   <module>r      s#                 9 9 9 9 9 9 ? ? ? ? ? ? M M M M M M ? ? ? ? ? ? ; ; ; ; ; ; ; ; ; ; ; ; < < < < < <           8 8 8+ + +>S S S*7 7 7 7 7r   