
     @jJ                     r    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efdZd Zd	 Zd
 ZdS )    N)Path)load_testbatch)build_shot_planwrite_shot_plans)finalize_voiceover	script_idc                      t          t          d                    }t           fd|d         D                       }t          |          S )Nzdata/drafts/testbatch_002.jsonc              3   4   K   | ]}|d          k    |V  dS )idN ).0itemr   s     C/home/agent/jarvis_runtime/AutoShortsBot/tests/test_shot_planner.py	<genexpr>z _final_script.<locals>.<genexpr>
   s1      KK4:3J3J3J3J3J3JKK    ideas)r   r   nextr   )r   batchideas   `  r   _final_scriptr      sM    4 @AABBEKKKKwKKKKKDd###r   c                     t          d          } t          |           }|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	         }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             }g 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}||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}||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         }||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             }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             }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 S ) Nai-004r   ==z%(py1)s == %(py4)spy1py4assert %(py6)spy6titlescenes   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)slen)py0py2r   py7zassert %(py9)spy9c                     g | ]
}|d          S )purposer   r   scenes     r   
<listcomp>zTtest_build_shot_plan_creates_five_retention_scenes_for_ai_script.<locals>.<listcomp>   s    999E)999r   )first_frame_hookpattern_interruptcore_explanationscreen_or_card_visualctar   start
asset_typekinetic_textzAsk it to argueon_screen_textin)z%(py1)s in %(py4)sc              3   .   K   | ]}|d          dk    V  dS )r4   screen_recordingNr   r+   s     r   r   zStest_build_shot_plan_creates_five_retention_scenes_for_ai_script.<locals>.<genexpr>    s-      UUUu\"&88UUUUUUr   ,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyr%   r&   r   c              3   &   K   | ]}|d          V  dS )retention_goalNr   r+   s     r   r   zStest_build_shot_plan_creates_five_retention_scenes_for_ai_script.<locals>.<genexpr>!   s(      CC5u%&CCCCCCr   all)r   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationr$   @py_builtinslocals_should_repr_global_namer<   r@   )finalplan@py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert1@py_assert6@py_assert5@py_format8@py_format10s               r   @test_build_shot_plan_creates_five_retention_scenes_for_ai_scriptrU      s%   (##E5!!D:!!:!!!!!!!!!!:!!!!!:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!=*E'N*=N**********=N*****=****N***************************H~#3~#!#!##########!############3#####3######~########!#############################99$x.999  > > > 9 >        9 >     :   >                          >!W%**%**********%*****%*******************************>!\*<n<*n<<<<<<<<<<*n<<<<<*<<<<n<<<<<<<<<<<<<<<<<<<<<<<<<<<CXq 12B CC CCCCCCCCCCC CCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCUUd8nUUUU3UUUUUUUUUUUUUUUU3UUUUU3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CCDNCCCC3CCCCCCCCCCCCCCCC3CCCCC3CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCr   c                     t          d          } t          |           }d |d         D             }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         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         }|j
        }
 |
            }||v }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |
          t          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}x}x}
}d S )Nattention-002c                     g | ]
}|d          S )r4   r   r+   s     r   r-   zQtest_build_shot_plan_uses_card_animation_for_attention_design.<locals>.<listcomp>)   s    CCC55&CCCr   r"   card_animationr7   z%(py1)s in %(py3)sasset_typesr   py3assert %(py5)spy5stock_brollr*   r2   r   r   r   r   r    zhome screenvisual_direction)zD%(py1)s in %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s.lower
}()
})r   r   r    py8zassert %(py10)spy10)r   r   rA   rB   rC   rF   rG   rH   rD   rE   lower)rI   rJ   r[   rK   rM   @py_format4@py_format6rL   rN   rO   rR   @py_assert7@py_format9@py_format11s                 r   =test_build_shot_plan_uses_card_animation_for_attention_designrk   $   sg   /**E5!!DCCDNCCCK*{**********{****************{*****{***************************'=K''''''''''=K'''''='''''''''''K'''''K'''''''''''''''''''''''''''>"i(1E1(E1111111111(E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JDN2./ABJBHJHHJJJ=JJJJJJJJJJJ=JJJJJJ=JJJJBJJJJHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJr   c                 \	   t          d          t          d          t          d          g}t          ||           }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          }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   zai-005rW      r   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr$   paths)r%   r   r]   r    zassert %(py8)src   c              3   ,   K   | ]}|j         d k    V  dS )z.mdN)suffix)r   paths     r   r   zHtest_write_shot_plans_outputs_selected_markdown_files.<locals>.<genexpr>6   s)      66t{e#666666r   r;   r@   r=   r   zutf-8)encodingz## Shot planr7   rZ   textr\   r^   r_   r.   z
Asset typezCaption beats)r   r   r$   rA   rB   rF   rG   rH   rC   rD   rE   r@   	read_text)tmp_pathfinalsrn   rM   rR   @py_assert4rO   ri   rP   rL   rN   rs   rK   rf   rg   s                  r   5test_write_shot_plans_outputs_selected_markdown_filesrx   0   s0   H%%}X'>'>o@^@^_FVX..Eu:::?:33uu:666666366666666666666663666663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8w//D!>T!!!!!!!!!!>T!!!!!>!!!!!!!!!!!T!!!!!T!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<4<4<44"?d""""""""""?d"""""?"""""""""""d"""""d"""""""""""""""""""""""""""""r   )builtinsrF   _pytest.assertion.rewrite	assertionrewriterA   pathlibr   autoshorts.growth_planr   autoshorts.shot_plannerr   r   autoshorts.voiceover_finalizerr   strr   rU   rk   rx   r   r   r   <module>r      s                        1 1 1 1 1 1 E E E E E E E E = = = = = =$S $ $ $ $D D D,	K 	K 	K# # # # #r   