§
    ²l»j"&  ã                   ó  — 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ddlZddlmZ ddlmZmZmZmZmZmZ ej        de	defd„¦   «         Zdd	„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„Zd
eddfd„ZdS )z²
Unit tests for FreeExile Design Pipeline Manager and Cross-Department Workflow.
Tests complete lifecycle: Create -> Scan -> Dispatch -> Submit -> QA Audit -> CEO Audit -> Sync.
é    N)ÚPath)ÚImage)ÚApprovalVerdictÚAssetCategoryÚDesignPipelineManagerÚPriorityÚRequestStatusÚis_power_of_twoÚtmp_pathÚreturnc                 ó^   — | dz  }|                      dd¬¦  «         t          |¬¦  «        }|S )zECreates a temporary workspace with full pipeline directory hierarchy.ÚFreeExile_TestT©ÚparentsÚexist_ok)Úworkspace_root)Úmkdirr   )r   ÚwsÚmgrs      ú@C:\Projects\FreeExile\tests\unit\test_design_pipeline_manager.pyÚtemp_workspacer      s:   € ð 
Ð$Ñ	$€BØ‡H‚H�T D€HÑ)Ô)Ð)Ý
¨rÐ
2Ñ
2Ô
2€CØ€Jó    c                  óV  — d} t          | ¦  «        }d}||u }|sÇt          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	} t          | ¦  «        }d}||u }|sÇt          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
} t          | ¦  «        }d}||u }|sÇt          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} t          | ¦  «        }d}||u }|sÇt          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} t          | ¦  «        }d}||u }|sÇt          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} t          | ¦  «        }d}||u }|sÇt          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} t          | ¦  «        }d}||u }|sÇt          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} t          | ¦  «        }d}||u }|sÇt          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} t          | ¦  «        }d}||u }|sÇt          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 S )Né   T©Úis)z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)sr
   )Úpy0Úpy2Úpy4Úpy7zassert %(py9)sÚpy9é   é@   é   é   i   r   Fé   éú   )	r
   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_assert5Ú@py_format8Ú@py_format10s         r   Útest_power_of_twor6       sÿ  € ØÐ%�?˜1ÑÔÐ% Ð%Ð Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�?Ñ%Ô%Ð%Õ%Ô%�?Ñ%Ô%Ð%Ð%Õ%Ô%˜1Ñ%Ô%Õ%Ô%ÐÑ%Ô%Õ%Ô% Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÐ%�?˜1ÑÔÐ% Ð%Ð Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�?Ñ%Ô%Ð%Õ%Ô%�?Ñ%Ô%Ð%Ð%Õ%Ô%˜1Ñ%Ô%Õ%Ô%ÐÑ%Ô%Õ%Ô% Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÐ&�?˜2ÑÔÐ& $Ð&Ð $Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð $Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&�?Ñ&Ô&Ð&Õ&Ô&�?Ñ&Ô&Ð&Ð&Õ&Ô&˜2Ñ&Ô&Õ&Ô&ÐÑ&Ô&Õ&Ô& $Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐ'�?˜3ÑÔÐ' 4Ð'Ð 4Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð 4Ð'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�?Ñ'Ô'Ð'Õ'Ô'�?Ñ'Ô'Ð'Ð'Õ'Ô'˜3Ñ'Ô'Õ'Ô'ÐÑ'Ô'Õ'Ô' 4Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÐ'�?˜3ÑÔÐ' 4Ð'Ð 4Ð'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð 4Ð'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'�?Ñ'Ô'Ð'Õ'Ô'�?Ñ'Ô'Ð'Ð'Õ'Ô'˜3Ñ'Ô'Õ'Ô'ÐÑ'Ô'Õ'Ô' 4Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÐ(�?˜4Ñ Ô Ð( DÐ(Ð  DÐ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð  DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(�?Ñ(Ô(Ð(Õ(Ô(�?Ñ(Ô(Ð(Ð(Õ(Ô(˜4Ñ(Ô(Õ(Ô(Ð Ñ(Ô(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÐ&�?˜1ÑÔÐ& Ð&Ð Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&�?Ñ&Ô&Ð&Õ&Ô&�?Ñ&Ô&Ð&Ð&Õ&Ô&˜1Ñ&Ô&Õ&Ô&ÐÑ&Ô&Õ&Ô& Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐ&�?˜1ÑÔÐ& Ð&Ð Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&�?Ñ&Ô&Ð&Õ&Ô&�?Ñ&Ô&Ð&Ð&Õ&Ô&˜1Ñ&Ô&Õ&Ô&ÐÑ&Ô&Õ&Ô& Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐ(�?˜3ÑÔÐ( 5Ð(Ð 5Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð 5Ð(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(�?Ñ(Ô(Ð(Õ(Ô(�?Ñ(Ô(Ð(Ð(Õ(Ô(˜3Ñ(Ô(Õ(Ô(ÐÑ(Ô(Õ(Ô( 5Ñ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(r   r   c                 ó`  — | }|                      ddddt          j        t          j        ddddd	œd
dg¬¦
  «
        }|                      ddddt          j        t          j        ddddd	œdg¬¦
  «
        }|                      ddddt          j        t          j        ddddd	œdg¬¦
  «
        }| 	                    ¦   «         }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        |¦  «        rt          j        |¦  «        nd"t          j        |¦  «        t          j        |¦  «        d#œz  }	d$d%|	iz  }
t#          t          j        |
¦  «        ¦  «        ‚d x}x}}|d&         }|j        }d}||k    }|st          j        d|fd'||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d(œz  }	d$d%|	iz  }
t#          t          j        |
¦  «        ¦  «        ‚d x}x}x}}|d)         }|j        }d}||k    }|st          j        d|fd'||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d(œz  }	d$d%|	iz  }
t#          t          j        |
¦  «        ¦  «        ‚d x}x}x}}|d*         }|j        }d}||k    }|st          j        d|fd'||f¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d(œz  }	d$d%|	iz  }
t#          t          j        |
¦  «        ¦  «        ‚d x}x}x}}d S )+NzDRQ-TEST-001u   Icon Linh Tháº¡ch Há»—n NguyÃªnú$docs/ORIGINAL_SYSTEMS_AND_ECONOMY.mdzLead Systems DesignerÚisometric_animatoru#   Linh tháº¡ch báº£n vá»‹ cá»‘t lÃµi.Ú256x256ÚPNG)Ú
ResolutionÚFormatzchaos_stone.pngzchaos_stone_normal.png©
Ú
request_idÚtitleÚ
source_docÚrequesting_deptÚcategoryÚpriorityÚassigned_agentÚlore_contextÚ
specs_dictÚdeliverableszDRQ-TEST-002u!   UI RÆ°Æ¡ng LuÃ¢n Há»“i Chá»‰ RÃºtú*docs/SEASONAL_LEAGUE_RESET_ARCHITECTURE.mdúLead Documentation ArchitectÚmobile_ui_designeru#   RÆ°Æ¡ng káº¿t chuyá»ƒn mÃ¹a giáº£i.Ú512x512ÚWebPzremove_only_stash.pngzDRQ-TEST-003u&   Trang TrÃ­ MÃ´i TrÆ°á»�ng Ä�áº¡o QuÃ¡nú docs/GAME_ENGINE_ARCHITECTURE.mdzClient ArchitectÚconcept_artistu   Bá»‘i cáº£nh ngoáº¡i cáº£nh.Ú	1024x1024zdaoist_temple_concept.pngr&   ©ú==©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚinbox©r   Úpy1Úpy3Úpy6úassert %(py8)sÚpy8r   )z2%(py3)s
{%(py3)s = %(py1)s.request_id
} == %(py6)s)rW   rX   rY   r   r"   )Úcreate_requestr   ÚSPRITEr   ÚHIGHÚUIÚCRITICALÚCONCEPTÚLOWÚ
scan_inboxrT   r(   r)   r*   r+   r,   r-   r.   r/   r?   )r   r   Úreq1Úreq2Úreq3rU   Ú@py_assert2r3   Ú@py_assert4Ú@py_format7Ú@py_format9Ú@py_assert0s               r   Útest_create_and_scan_inboxrl   ,   sf  € Ø
€Cð ×ÒØ!Ø/Ø9Ø/ÝÔ%Ý”Ø+Ø:Ø"+°uÐ=Ð=Ø'Ð)AÐBð ñ ô €Dð ×ÒØ!Ø1Ø?Ø6ÝÔ!ÝÔ"Ø+Ø:Ø"+°vÐ>Ð>Ø-Ð.ð ñ ô €Dð ×ÒØ!Ø6Ø5Ø*ÝÔ&Ý”Ø'Ø3Ø"-¸Ð?Ð?Ø1Ð2ð ñ ô €Dð �NŠNÑÔ€EÝˆu‰:Œ:Ð˜Ðˆ:˜Š?ÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆuÑÔÐÕÔˆuÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐà�Œ8Ð0ˆ8ÔÐ0 .Ð0Ð .Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð .Ð0Ñ0Ô0Õ0Ô0ˆ8Ñ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Ø�Œ8Ð0ˆ8ÔÐ0 .Ð0Ð .Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð .Ð0Ñ0Ô0Õ0Ô0ˆ8Ñ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Ø�Œ8Ð0ˆ8ÔÐ0 .Ð0Ð .Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð .Ð0Ñ0Ô0Õ0Ô0ˆ8Ñ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Ð0r   c                 ó€	  — | }|                      ddddt          j        t          j        ddddid	d
g¬¦
  «
        }|j        }d}||z  }|j        } |¦   «         }|s±ddt          j        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}}|                     dd¬¦  «        }	|j        }d}||z  }|j        } |¦   «         }| }
|
s±ddt          j        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}}
|j        }d}||z  }|j        } |¦   «         }|s±ddt          j        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚d x}x}x}x}}|	j        }t"          j        }||k    }|sòt          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
        t"          ¦  «        rt          j        t"          ¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|	j        }d}||k    }|sªt          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 S )NzDRQ-DISPATCH-001u   VFX Huyá»…n áº¢nh Bá»™ i-framerN   zCombat DesignerÚart_ui_directoru*   Hiá»‡u á»©ng lÆ°á»›t tÃ n áº£nh nÃ© Ä‘Ã²n.ÚShaderzApple Metal Computezphantom_dodge.metalzdodge_trail.pngr>   zDRQ-DISPATCH-001.mdzlassert %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.inbox_dir
} / %(py4)s).exists
}()
}r   ©r   r   r   r    r!   Úvfx_tech_artist)rE   zpassert not %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.inbox_dir
} / %(py4)s).exists
}()
}zrassert %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.in_progress_dir
} / %(py4)s).exists
}()
}rQ   )zO%(py2)s
{%(py2)s = %(py0)s.status
} == %(py6)s
{%(py6)s = %(py4)s.IN_PROGRESS
}Ú
dispatchedr	   ©r   r   r   rY   rZ   r[   )z6%(py2)s
{%(py2)s = %(py0)s.assigned_agent
} == %(py5)s)r   r   Úpy5zassert %(py7)sr    )r\   r   ÚVFXr   r`   Ú	inbox_dirÚexistsr*   r+   r(   r,   r-   r.   r/   Údispatch_requestÚin_progress_dirÚstatusr	   ÚIN_PROGRESSr)   rE   )r   r   Úreqr0   r1   r3   r2   Ú@py_assert8r5   rr   Ú@py_assert10Ú@py_format11ri   rj   rh   Ú@py_format6r4   s                    r   Útest_dispatch_requestr�   _   si  € Ø
€CØ
×
Ò
Ø%Ø.Ø5Ø)ÝÔ"ÝÔ"Ø(ØAØÐ3Ð4Ø+Ð->Ð?ð ñ ô €Cð ŒMÐ;Ð1Ð;ˆMÐ1Ñ1Ð;Ð1Ô9Ð;Ð9Ð9Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆCÑ;Ô;Ð;Õ;Ô;ˆCÑ;Ô;Ð;Ð;Õ;Ô;ˆMÑ;Ô;Õ;Ô;Ð1Ñ;Ô;Õ;Ô;Ð9Ñ;Ô;Õ;Ô;Ð;Ñ;Ô;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð ×%Ò%Ð&8ÐIZÐ%Ñ[Ô[€Jà”Ð?Ð 5Ð?�Ð 5Ñ5Ð?Ð5Ô=Ð?Ð=Ð=Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�Ñ?Ô?Ð?Õ?Ô?�Ñ?Ô?Ð?Ð?Õ?Ô?�Ñ?Ô?Õ?Ô?Ð 5Ñ?Ô?Õ?Ô?Ð=Ñ?Ô?Õ?Ô?Ð?Ñ?Ô?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ØÔÐAÐ"7ÐAÐÐ"7Ñ7ÐAÐ7Ô?ÐAÐ?Ð?ÑAÔAÐAÐAÐAÐAÐAÕAÔAÑAÔAÐAÐAÕAÔAˆCÑAÔAÐAÕAÔAˆCÑAÔAÐAÐAÕAÔAÐÑAÔAÕAÔAÐ"7Ñ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ØÔÐ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ˆ:Ñ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¥Ñ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Ð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Ô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Ñ9Ð9Ð9Ð9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9r   c                 ó2  — | }|                      ddddt          j        t          j        ddddid	d
g¬¦
  «
        }|                     d¦  «         |j        dz  }|                     dd¬¦  «         t          j	        ddd¦  «        }| 
                    |d	z  ¦  «         t          j	        ddd¦  «        }| 
                    |d
z  ¦  «         |                     dd	d
g¦  «        }|j        }t          j        }||k    }	|	sòt          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        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }
dd|
iz  }t+          t          j        |¦  «        ¦  «        ‚d x}x}	}|j        }d}	||	z  }|j        } |¦   «         }|s±ddt#          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t+          t          j        |¦  «        ¦  «        ‚d x}x}	x}x}}|                     d¦  «        \  }}}d}||u }|s—t          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}}t5          |¦  «        }d#}||k    }|sòt          j        d|fd$||f¦  «        d%t#          j        ¦   «         v st          j        t4          ¦  «        rt          j        t4          ¦  «        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 ¦   «         }t7          |¦  «        }	|	s•d)d*t#          j        ¦   «         v st          j        t6          ¦  «        rt          j        t6          ¦  «        nd*t          j        |¦  «        t          j        |	¦  «        d+œz  }t+          t          j        |¦  «        ¦  «        ‚d x}}	|j        dz                       d,¬-¦  «        }d.}||v }|s—t          j        d/|fd0||f¦  «        t          j        |¦  «        d1t#          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd1d2œz  }d!d"|iz  }t+          t          j        |¦  «        ¦  «        ‚d x}}d S )3NzDRQ-QA-PASS-001u   Icon Ä�an DÆ°á»£c ChÃ¢n VÃµr8   zSystems Designerr9   u   Ä�an dÆ°á»£c bá»• trá»£.r<   r:   zpill_icon.pngzpill_icon_normal.pngr>   Tr   ÚRGBA)r$   r$   )éÈ   éd   é2   éÿ   )é€   rˆ   r‡   r‡   rQ   )zR%(py2)s
{%(py2)s = %(py0)s.status
} == %(py6)s
{%(py6)s = %(py4)s.PENDING_REVIEW
}Ú	submittedr	   rs   rZ   r[   zDRQ-QA-PASS-001.mdzuassert %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.pending_review_dir
} / %(py4)s).exists
}()
}r   rp   r   ©z%(py0)s is %(py3)sÚpassed©r   rX   úassert %(py5)srt   r"   rS   rT   rH   rV   c              3   ó$   K  — | ]}|j         V — Œd S )N)r
   )Ú.0Úds     r   ú	<genexpr>z:test_submit_and_qa_technical_audit_pass.<locals>.<genexpr>ž   s%   è è € Ð7Ð7 QˆqÔ Ð7Ð7Ð7Ð7Ð7Ð7r   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úall)r   r   r   zutf-8)Úencodingu!   - **Káº¿t Quáº£ Cáº¥p 1**: `PASS`©Úin©z%(py1)s in %(py3)sÚcontent©rW   rX   )r\   r   r]   r   r^   rx   Úassets_pendingr   r   ÚnewÚsaveÚsubmit_for_reviewrz   r	   ÚPENDING_REVIEWr(   r)   r*   r+   r,   r-   r.   r/   Úpending_review_dirrw   Úqa_technical_auditrT   r’   Ú	read_text)r   r   r|   Ú	asset_dirÚ
img_albedoÚ
img_normalr‰   r0   r3   r1   ri   rj   r2   r}   r5   r‹   ÚnotesrH   rg   Ú@py_format4r€   rh   Ú@py_format5r—   rk   s                            r   Ú'test_submit_and_qa_technical_audit_passr§   y   sº  € Ø
€Cà
×
Ò
Ø$Ø+Ø9Ø*ÝÔ%Ý”Ø+Ø/Ø  )Ð,Ø%Ð'=Ð>ð ñ ô €Cð ×ÒÐ*Ñ+Ô+Ð+ð Ô"Ð%6Ñ6€IØ‡O‚O˜D¨4€OÑ0Ô0Ð0å”˜6 :Ð/BÑCÔC€JØ‡O‚O�I Ñ/Ñ0Ô0Ð0å”˜6 :Ð/CÑDÔD€JØ‡O‚O�IÐ 6Ñ6Ñ7Ô7Ð7ð ×%Ò%Ð&7¸/ÐKaÐ9bÑcÔc€IØÔÐ;�}Ô;Ð;ÐÐ;Ò;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;ÐÐ;Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆ9Ñ;Ô;Ð;Õ;Ô;ˆ9Ñ;Ô;Ð;Ð;Õ;Ô;ÐÑ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;�}Ñ;Ô;Ð;Õ;Ô;�}Ñ;Ô;Ð;Ð;Õ;Ô;Ð;Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØÔ"ÐCÐ%9ÐCÐ"Ð%9Ñ9ÐCÐ9ÔAÐCÐAÐAÑ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Ð%9ÑCÔCÕCÔCÐAÑ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ð #&×"8Ò"8Ð9JÑ"KÔ"KÑ€FˆE�<ØÐˆ6�Tˆ>ÐÐÐÕÔÐÐÐÐˆ6�TÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÕÔ�TÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÝˆ|ÑÔÐ! Ð!Ð Ò!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!Ð Ð!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!�3Ñ!Ô!Ð!Õ!Ô!�3Ñ!Ô!Ð!Ð!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ|Ñ!Ô!Ð!Õ!Ô!ˆ|Ñ!Ô!Ð!Ð!Õ!Ô!ÐÑ!Ô!Õ!Ô! Ñ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ø7Ð7¨,Ð7Ñ7Ô7Ð7�3Ð7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7�3Ñ7Ô7Ð7Õ7Ô7�3Ñ7Ô7Ð7Ð7Õ7Ô7Ð7Ñ7Ô7Õ7Ô7Ð7Ñ7Ô7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7ð Ô%Ð(<Ñ<×GÒGÐQXÐGÑYÔY€GØ.Ð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°'Ñ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Ð9Ð9Ð9Ð9Ð9Ð9Ð9r   c                 ó¤  — | }|                      ddddt          j        t          j        ddddid	g¬
¦
  «
         |                     d¦  «         |j        dz  }|                     dd¬¦  «         t          j	        ddd¦  «        }| 
                    |d	z  ¦  «         |                     dd	g¦  «         |                     d¦  «        \  }}}d}||u }|s—t          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}}d}||v }|s—t          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}}|j        }d}||z  }|j        } |¦   «         }| }|s±ddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}}|j        }d}||z  }|j        } |¦   «         }|s±d dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}x}x}}d S )!NzDRQ-QA-FAIL-001u   Icon KÃ­ch ThÆ°á»›c Lá»—irN   z	Test Deptr9   zTest non-POT size.r<   Ú250x250zbad_size.pngr>   Tr   rƒ   )r'   r'   )r‡   r   r   r‡   Fr   rŠ   r‹   rŒ   r�   rt   z'dimensions (250x250) are not power of 2r”   r–   r¤   r˜   zDRQ-QA-FAIL-001.mdúyassert not %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.pending_review_dir
} / %(py4)s).exists
}()
}r   rp   zoassert %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.rejected_dir
} / %(py4)s).exists
}()
})r\   r   r]   r   ÚMEDIUMrx   r™   r   r   rš   r›   rœ   rŸ   r(   r)   r*   r+   r,   r-   r.   r/   rž   rw   Úrejected_dir)r   r   r¡   Úimg_badr‹   r¤   rH   rg   r0   r¥   r€   rk   r1   r3   r2   r}   r~   r   r5   s                      r   Ú0test_qa_technical_audit_fail_on_non_power_of_twor®   ¥   sw  € Ø
€Cà×ÒØ$Ø)Ø5Ø#ÝÔ%Ý”Ø+Ø)Ø  )Ð,Ø$Ð%ð ñ ô ð ð ×ÒÐ*Ñ+Ô+Ð+àÔ"Ð%6Ñ6€IØ‡O‚O˜D¨4€OÑ0Ô0Ð0õ Œi˜ 
Ð,<Ñ=Ô=€GØ‡L‚L�˜^Ñ+Ñ,Ô,Ð,à×ÒÐ+¨nÐ-=Ñ>Ô>Ð>à"%×"8Ò"8Ð9JÑ"KÔ"KÑ€FˆE�<ØÐˆ6�Uˆ?ÐÐÐÕÔÐÐÐÐˆ6�UÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÕÔ�UÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ4Ð=Ð4¸Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð4¸Ð=Ñ=Ô=Õ=Ô=Ð4Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=¸Ñ=Ô=Ð=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=ð Ô&ÐGÐ)=ÐGÐ&Ð)=Ñ=ÐGÐ=ÔEÐGÐEÐEÑ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ÕGÔGÐ&ÑGÔGÕGÔGÐ)=ÑGÔGÕGÔGÐEÑ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ÐGÐGÐGÐGÐGØÔÐ=Ð3Ð=ÐÐ3Ñ3Ð=Ð3Ô;Ð=Ð;Ð;Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ˆCÑ=Ô=Ð=Õ=Ô=ˆCÑ=Ô=Ð=Ð=Õ=Ô=ÐÑ=Ô=Õ=Ô=Ð3Ñ=Ô=Õ=Ô=Ð;Ñ=Ô=Õ=Ô=Ð=Ñ=Ô=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=r   c                 ó´  — | }|                      ddddt          j        t          j        ddddid	g¬
¦
  «
         |                     d¦  «         |j        dz  }|                     dd¬¦  «         t          j	        ddd¦  «        }| 
                    |d	z  ¦  «         |                     dd	g¦  «         |                     d¦  «        \  }}}d}||u }|s—t          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}}|                     ddt,          j        dd¬¦  «        }
|
j        }t2          j        }||k    }|sòt          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        t2          ¦  «        rt          j        t2          ¦  «        ndt          j        |¦  «        dœz  }dd |iz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}}|j        }d!}||z  }|j        } |¦   «         }|s±d"d#t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}x}x}}|j        }d!}||z  }|j        } |¦   «         }| }|s±d%d#t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}}|j        }d}||z  }d	}||z  }|j        } |¦   «         }|sÄd&d#t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d'œz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}}|j        }d}||z  }d	}||z  }|j        } |¦   «         }|sÄd(d#t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd#t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d'œz  }t'          t          j        |¦  «        ¦  «        ‚d x}x}x}x}x}x}}d S ))NzDRQ-CEO-APP-001u   Banner MÃ¹a Giáº£i Má»›irI   rJ   rK   u4   Khá»Ÿi Ä‘áº§u mÃ¹a giáº£i ThiÃªn Ä�áº¡o LuÃ¢n Há»“i.r<   rL   zseason_banner.pngr>   Tr   rƒ   )r%   r%   )é   é   é(   r‡   r   rŠ   Úqa_passrŒ   r�   rt   Ústudio_produceru.   Phong cÃ¡ch Cá»• VÃµ Háº¯c Ã�m tuyá»‡t Ä‘áº¹p!Úseasons)r?   ÚapproverÚverdictr¤   Úsync_to_client_subfolderrQ   )zL%(py2)s
{%(py2)s = %(py0)s.status
} == %(py6)s
{%(py6)s = %(py4)s.APPROVED
}Úapproved_reqr	   rs   rZ   r[   zDRQ-CEO-APP-001.mdzoassert %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = (%(py2)s
{%(py2)s = %(py0)s.approved_dir
} / %(py4)s).exists
}()
}r   rp   rª   z‚assert %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = ((%(py2)s
{%(py2)s = %(py0)s.assets_approved
} / %(py4)s) / %(py7)s).exists
}()
})r   r   r   r    Úpy10Úpy12z‡assert %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = ((%(py2)s
{%(py2)s = %(py0)s.client_webapp_assets
} / %(py4)s) / %(py7)s).exists
}()
}) r\   r   r_   r   r`   rx   r™   r   r   rš   r›   rœ   rŸ   r(   r)   r*   r+   r,   r-   r.   r/   Úceo_aesthetic_auditr   ÚAPPROVErz   r	   ÚAPPROVEDÚapproved_dirrw   rž   Úassets_approvedÚclient_webapp_assets)r   r   r¡   Úimgr³   Ú_rg   r0   r¥   r€   r¹   r3   r1   ri   rj   r2   r}   r5   r~   r   Ú@py_assert9Ú@py_assert11Ú@py_format13s                          r   Ú&test_ceo_aesthetic_audit_full_approvalrÇ   É   sJ  € Ø
€Cà×ÒØ$Ø(Ø?Ø6ÝÔ!ÝÔ"Ø+ØKØ  )Ð,Ø)Ð*ð ñ ô ð ð ×ÒÐ*Ñ+Ô+Ð+àÔ"Ð%6Ñ6€IØ‡O‚O˜D¨4€OÑ0Ô0Ð0å
Œ)�F˜JÐ(9Ñ
:Ô
:€CØ‡H‚HˆYÐ,Ñ,Ñ-Ô-Ð-à×ÒÐ+Ð.AÐ-BÑCÔCÐCð ×*Ò*Ð+<Ñ=Ô=�M€GˆQ�ØÐˆ7�dˆ?ÐÐÐÕÔÐÐÐÐˆ7�dÐÑÔÐÕÔÑÔÐÐÕÔˆ7ÑÔÐÕÔˆ7ÑÔÐÐÕÔ�dÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð ×*Ò*Ø$Ø"ÝÔ'Ø>Ø!*ð +ñ ô €Lð ÔÐ8¥-Ô"8Ð8ÐÐ"8Ò8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8ÐÐ"8Ð8Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8ˆ<Ñ8Ô8Ð8Õ8Ô8ˆ<Ñ8Ô8Ð8Ð8Õ8Ô8ÐÑ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8¥-Ñ8Ô8Ð8Õ8Ô8¥-Ñ8Ô8Ð8Ð8Õ8Ô8Ð"8Ñ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ØÔÐ=Ð3Ð=ÐÐ3Ñ3Ð=Ð3Ô;Ð=Ð;Ð;Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ˆCÑ=Ô=Ð=Õ=Ô=ˆCÑ=Ô=Ð=Ð=Õ=Ô=ÐÑ=Ô=Õ=Ô=Ð3Ñ=Ô=Õ=Ô=Ð;Ñ=Ô=Õ=Ô=Ð=Ñ=Ô=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÔ&ÐGÐ)=ÐGÐ&Ð)=Ñ=ÐGÐ=ÔEÐGÐEÐEÑ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ÕGÔGÐ&ÑGÔGÕGÔGÐ)=ÑGÔGÕGÔGÐEÑ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ÐGÐGÐGÐGÐGð ÔÐSÐ"3ÐSÐÐ"3Ñ3ÐSÐ6IÐSÐ3Ð6IÑIÐSÐIÔQÐSÐQÐQÑSÔSÐSÐSÐSÐSÐSÕSÔSÑSÔSÐSÐSÕSÔSˆCÑSÔSÐSÕSÔSˆCÑSÔSÐSÐSÕSÔSÐÑSÔSÕSÔSÐ"3ÑSÔSÕSÔSÐ6IÑSÔSÕSÔSÐQÑ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ØÔ$ÐP yÐPÐ$ yÑ0ÐPÐ3FÐPÐ0Ð3FÑFÐPÐFÔNÐPÐNÐNÑPÔPÐPÐPÐPÐPÐPÕPÔPÑPÔPÐPÐPÕPÔPˆCÑPÔPÐPÕPÔPˆCÑPÔPÐPÐPÕPÔPÐ$ÑPÔPÕPÔP yÑPÔPÕPÔPÐ3FÑPÔPÕPÔPÐNÑPÔPÕPÔPÐPÑPÔPÐPÐPÑPÐPÕPÕPÔPÐPÑPÔPÑPÔPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPr   c                 ó\  — | }|                      ddddt          j        t          j        ddi g ¬¦
  «
         |                     ¦   «         }|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}||v }|s—t          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 }|s—t          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 )NzDRQ-SUM-001zTest RequestrN   ÚQArO   zSummary testr>   rU   r   rQ   )z%(py1)s == %(py4)s)rW   r   zassert %(py6)srY   Úin_progressr   z'FREEEXILE DESIGN PIPELINE STATUS REPORTr”   r–   Úreportr˜   r�   rt   )r\   r   ra   r   rb   Úget_pipeline_summaryr(   r)   r-   r.   r/   Úgenerate_status_reportr*   r+   r,   )r   r   Úsummaryrk   r1   rg   r¦   ri   rË   r¥   r€   s              r   Ú test_pipeline_summary_and_reportrÏ   ù   sJ  € Ø
€CØ×ÒØ ØØ5ØÝÔ&Ý”Ø'Ø#ØØð ñ ô ð ð ×&Ò&Ñ(Ô(€GØ�7ÔÐ ˜qÐ Ð˜qÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð Ð˜qÐ Ñ Ô Õ Ô ÐÑ Ô Õ Ô ˜qÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð Ø�=Ô!Ð& QÐ&Ð! QÒ&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð! QÐ&Ñ&Ô&Õ&Ô&Ð!Ñ&Ô&Õ&Ô& QÑ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&à×'Ò'Ñ)Ô)€FØ4Ð>Ð4¸Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð4¸Ð>Ñ>Ô>Õ>Ô>Ð4Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>¸Ñ>Ô>Ð>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>ØÐ"ˆ=˜FÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ=˜FÐ"Ñ"Ô"Õ"Ô"ˆ=Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"˜FÑ"Ô"Ð"Õ"Ô"˜FÑ"Ô"Ð"Ð"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"r   )r   N)Ú__doc__Úbuiltinsr*   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter(   ÚosÚpathlibr   ÚshutilÚtempfileÚpytestÚPILr   Ú,tools.asset_pipeline.design_pipeline_managerr   r   r   r   r	   r
   Úfixturer   r6   rl   r�   r§   r®   rÇ   rÏ   © r   r   ú<module>rÞ      sñ  ððð ð
 € € € € € € € € € € € € €	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð „ð˜Tð Ð&;ð ð ð ñ „ðð	)ð 	)ð 	)ð 	)ð01Ð/Dð 01Èð 01ð 01ð 01ð 01ðf:Ð*?ð :ÀDð :ð :ð :ð :ð4):Ð<Qð ):ÐVZð ):ð ):ð ):ð ):ðX!>ÐEZð !>Ð_cð !>ð !>ð !>ð !>ðH-QÐ;Pð -QÐUYð -Qð -Qð -Qð -Qð`#Ð5Jð #Ètð #ð #ð #ð #ð #ð #r   