
    Ri                         d Z ddlZddlmc mZ ddlZddlm	Z	 ddl
ZddlZ G d d      Z G d d      Z G d d	      Z G d
 d      Zy)z TDD tests for generate_hybrid.py    N)Pathc                   Z    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zy)TestScenariosc                    t         j                  }t        |      }d}||k(  }|st        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                  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}}y )	N   ==)zO%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.SCENARIOS
})
} == %(py8)slengh)py0py1py3py5py8zassert %(py10)spy10)r   	SCENARIOSr
   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)self@py_assert2@py_assert4@py_assert7@py_assert6@py_format9@py_format11s          >/home/jay/workspace/tools/ai-image-gen/test_generate_hybrid.pytest_scenarios_has_three_keysz+TestScenarios.test_scenarios_has_three_keys   s    <<%s< %A% A%%%% A%%%%%%s%%%s%%%%%%2%%%2%%%<%%% %%%A%%%%%%%    c                    d}t         j                  }||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )NAinz1%(py1)s in %(py5)s
{%(py5)s = %(py3)s.SCENARIOS
}r   r   r   r   assert %(py7)spy7
r   r   r   r   r   r   r   r   r   r   r   @py_assert0r   r   @py_format6@py_format8s         r"   test_scenarios_has_key_az&TestScenarios.test_scenarios_has_key_a   o    "bll"sl""""sl"""s""""""b"""b"""l"""""""r$   c                    d}t         j                  }||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )NBr'   r)   r   r*   r+   r,   r-   r.   s         r"   test_scenarios_has_key_bz&TestScenarios.test_scenarios_has_key_b   r3   r$   c                    d}t         j                  }||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )NCr'   r)   r   r*   r+   r,   r-   r.   s         r"   test_scenarios_has_key_cz&TestScenarios.test_scenarios_has_key_c   r3   r$   c                 @   d}t         j                  d   }||v }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}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}}y )
Nscenarior&   r'   z%(py1)s in %(py4)sr   py4assert %(py6)spy6r   z%(py1)s == %(py4)sr   r   r   r   r   r   r   r   r/   @py_assert3r   @py_format5@py_format7s         r"    test_scenario_a_has_scenario_keyz.TestScenarios.test_scenario_a_has_scenario_key       .R\\#..z.....z....z...........||C ,33,3333,333,3333333333r$   c                 @   d}t         j                  d   }||v }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}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}}y )
Nr;   r5   r'   r<   r=   r?   r@   r   rA   rB   rC   s         r"    test_scenario_b_has_scenario_keyz.TestScenarios.test_scenario_b_has_scenario_key!   rH   r$   c                 @   d}t         j                  d   }||v }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}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}}y )
Nr;   r8   r'   r<   r=   r?   r@   r   rA   rB   rC   s         r"    test_scenario_c_has_scenario_keyz.TestScenarios.test_scenario_c_has_scenario_key%   rH   r$   c                    t         j                  d   }|j                  }d}d} |||      }|j                  } |       }d}||k7  }	|	st	        j
                  d|	fd||f      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      dz  }
dd|
iz  }t        t	        j                  |            d x}x}x}x}x}x}x}x}	}y )	Nr&   headline !=z%(py13)s
{%(py13)s = %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py3)s
{%(py3)s = %(py1)s.get
}(%(py5)s, %(py7)s)
}.strip
}()
} != %(py16)sr   r   r   r,   py9py11py13py16assert %(py18)spy18	r   r   getstripr   r   r   r   r   r   r/   r   r   r   @py_assert8@py_assert10@py_assert12@py_assert15@py_assert14@py_format17@py_format19s               r"   "test_scenario_a_headline_not_emptyz0TestScenarios.test_scenario_a_headline_not_empty)       ||C B $$BZBB$Z4B4::B:<BB<BBBB<BBB BBB$BBBZBBBBBB4BBB:BBB<BBBBBBBBBBBBr$   c                    t         j                  d   }|j                  }d}d} |||      }|j                  } |       }d}||k7  }	|	st	        j
                  d|	fd||f      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      dz  }
dd|
iz  }t        t	        j                  |            d x}x}x}x}x}x}x}x}	}y )	Nr5   rN   rO   rP   rR   rS   rX   rY   rZ   r]   s               r"   "test_scenario_b_headline_not_emptyz0TestScenarios.test_scenario_b_headline_not_empty,   rf   r$   c                    t         j                  d   }|j                  }d}d} |||      }|j                  } |       }d}||k7  }	|	st	        j
                  d|	fd||f      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      dz  }
dd|
iz  }t        t	        j                  |            d x}x}x}x}x}x}x}x}	}y )	Nr8   rN   rO   rP   rR   rS   rX   rY   rZ   r]   s               r"   "test_scenario_c_headline_not_emptyz0TestScenarios.test_scenario_c_headline_not_empty/   rf   r$   c                    t         j                  d   }|j                  }d}d} |||      }|j                  } |       }d}||k7  }	|	st	        j
                  d|	fd||f      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      dz  }
dd|
iz  }t        t	        j                  |            d x}x}x}x}x}x}x}x}	}y )	Nr&   subTextrO   rP   rR   rS   rX   rY   rZ   r]   s               r"   !test_scenario_a_subtext_not_emptyz/TestScenarios.test_scenario_a_subtext_not_empty2       ||C A $$AYAA$Y3A399A9;ArA;rAAAA;rAAA AAA$AAAYAAAAAA3AAA9AAA;AAArAAAAAAAAAr$   c                    t         j                  d   }|j                  }d}d} |||      }|j                  } |       }d}||k7  }	|	st	        j
                  d|	fd||f      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      dz  }
dd|
iz  }t        t	        j                  |            d x}x}x}x}x}x}x}x}	}y )	Nr5   rl   rO   rP   rR   rS   rX   rY   rZ   r]   s               r"   !test_scenario_b_subtext_not_emptyz/TestScenarios.test_scenario_b_subtext_not_empty5   rn   r$   c                    t         j                  d   }|j                  }d}d} |||      }|j                  } |       }d}||k7  }	|	st	        j
                  d|	fd||f      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      dz  }
dd|
iz  }t        t	        j                  |            d x}x}x}x}x}x}x}x}	}y )	Nr8   rl   rO   rP   rR   rS   rX   rY   rZ   r]   s               r"   !test_scenario_c_subtext_not_emptyz/TestScenarios.test_scenario_c_subtext_not_empty8   rn   r$   N)__name__
__module____qualname__r#   r2   r6   r9   rG   rJ   rL   re   rh   rj   rm   rp   rr    r$   r"   r   r      sI    &###444CCCBBBr$   r   c                   $    e Zd Zd Zd Zd Zd Zy)	TestPathsc                    t         j                  }|j                  }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}}y )N	v4-hybridr   )zL%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.OUTPUT_DIR
}.name
} == %(py7)sr   r   py2r>   r,   assert %(py9)srT   )r   
OUTPUT_DIRnamer   r   r   r   r   r   r   r   r   @py_assert1rD   r   @py_assert5r1   @py_format10s          r"   #test_output_dir_is_v4_hybrid_folderz-TestPaths.test_output_dir_is_v4_hybrid_folderB   s    }}0}!!0[0![0000![000000r000r000}000!000[0000000r$   c                    t         j                  }|j                  }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}}y )Nzoverlay_template.htmlr   )zO%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.TEMPLATE_PATH
}.name
} == %(py7)sr   r{   r}   rT   )r   TEMPLATE_PATHr   r   r   r   r   r   r   r   r   r   s          r"   &test_template_path_is_overlay_templatez0TestPaths.test_template_path_is_overlay_templateE   s    ?$$?(??$(?????$(???????r???r??????$???(????????r$   c                    t         j                  }|j                  } |       }|sddt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}}y )Nziassert %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.TEMPLATE_PATH
}.is_absolute
}()
}r   r   r|   r>   r@   )
r   r   is_absoluter   r   r   r   r   r   r   r   r   rD   r   rF   s        r"   test_template_path_is_absolutez(TestPaths.test_template_path_is_absoluteH   sx    -++-+--------r---r------+----------r$   c                    t         j                  }|j                  } |       }|sddt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}}y )Nzfassert %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.OUTPUT_DIR
}.is_absolute
}()
}r   r   )
r   r~   r   r   r   r   r   r   r   r   r   s        r"   test_output_dir_is_absolutez%TestPaths.test_output_dir_is_absoluteK   st    }}*}((*(********r***r***}***(**********r$   N)rs   rt   ru   r   r   r   r   rv   r$   r"   rx   rx   A   s    1@.+r$   rx   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestGetBgPathc                    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}}y )	Nr&   zbg_A.jpgr   z,%(py2)s
{%(py2)s = %(py0)s.name
} == %(py5)sresultr   r|   r   r+   r,   r   get_bg_pathr   r   r   r   r   r   r   r   r   r   r   r   r   rD   r0   r1   s          r"   #test_get_bg_path_a_returns_bg_a_jpgz1TestGetBgPath.test_get_bg_path_a_returns_bg_a_jpgU   }    ${{(j({j(((({j((((((v(((v((({(((j(((((((r$   c                    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}}y )	Nr5   zbg_B.jpgr   r   r   r   r+   r,   r   r   s          r"   #test_get_bg_path_b_returns_bg_b_jpgz1TestGetBgPath.test_get_bg_path_b_returns_bg_b_jpgY   r   r$   c                    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}}y )	Nr8   zbg_C.jpgr   r   r   r   r+   r,   r   r   s          r"   #test_get_bg_path_c_returns_bg_c_jpgz1TestGetBgPath.test_get_bg_path_c_returns_bg_c_jpg]   r   r$   c                 z   t        j                  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}}y Nr&   zFassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.is_absolute
}()
}r   )r   r|   r>   )
r   r   r   r   r   r   r   r   r   r   r   r   r   rD   rE   s        r"   test_get_bg_path_a_is_absolutez,TestGetBgPath.test_get_bg_path_a_is_absolutea   sn    $!!#!########v###v###!##########r$   c                    t        j                  d      }|j                  }|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                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}x}}y 	Nr&   rz   r   )zH%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.parent
}.name
} == %(py7)sr   r{   r}   rT   )r   r   parentr   r   r   r   r   r   r   r   r   r   r   r   rD   r   r   r1   r   s           r"   "test_get_bg_path_a_is_in_v4_hybridz0TestGetBgPath.test_get_bg_path_a_is_in_v4_hybride   s    $}}0}!!0[0![0000![000000v000v000}000!000[0000000r$   N)rs   rt   ru   r   r   r   r   r   rv   r$   r"   r   r   T   s    )))$1r$   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestGetHybridOutputPathc                    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}}y )	Nr&   zhybrid_A.pngr   r   r   r   r+   r,   r   get_hybrid_output_pathr   r   r   r   r   r   r   r   r   r   s          r"   2test_get_hybrid_output_path_a_returns_hybrid_a_pngzJTestGetHybridOutputPath.test_get_hybrid_output_path_a_returns_hybrid_a_pngp       **3/{{,n,{n,,,,{n,,,,,,v,,,v,,,{,,,n,,,,,,,r$   c                    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}}y )	Nr5   zhybrid_B.pngr   r   r   r   r+   r,   r   r   s          r"   2test_get_hybrid_output_path_b_returns_hybrid_b_pngzJTestGetHybridOutputPath.test_get_hybrid_output_path_b_returns_hybrid_b_pngt   r   r$   c                    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}}y )	Nr8   zhybrid_C.pngr   r   r   r   r+   r,   r   r   s          r"   2test_get_hybrid_output_path_c_returns_hybrid_c_pngzJTestGetHybridOutputPath.test_get_hybrid_output_path_c_returns_hybrid_c_pngx   r   r$   c                 z   t        j                  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}}y r   )
r   r   r   r   r   r   r   r   r   r   r   s        r"   )test_get_hybrid_output_path_a_is_absolutezATestGetHybridOutputPath.test_get_hybrid_output_path_a_is_absolute|   sp    **3/!!#!########v###v###!##########r$   c                    t        j                  d      }|j                  }|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                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}x}}y r   )r   r   r   r   r   r   r   r   r   r   r   r   r   s           r"   -test_get_hybrid_output_path_a_is_in_v4_hybridzETestGetHybridOutputPath.test_get_hybrid_output_path_a_is_in_v4_hybrid   s    **3/}}0}!!0[0![0000![000000v000v000}000!000[0000000r$   N)rs   rt   ru   r   r   r   r   r   rv   r$   r"   r   r   o   s    ---$1r$   r   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   syspathlibr   generate_hybridr   pytestr   rx   r   r   rv   r$   r"   <module>r      sE    &   
   )B )Bb+ +&1 161 1r$   