§
    ]H¯jð  ã                   ó<  — d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
ZddlmZ ddlZ ee¦  «                             ¦   «         j        j        Zej                             d ee¦  «        ¦  «         ddlmZmZ ej        d„ ¦   «         Zd„ Zd„ Zd„ Zd	„ Zd
„ ZdS )uè   
Unit tests cho AutoPOE2 Process Supervisor Engine (tools/poe2_supervisor.py)
Kiá»ƒm chá»©ng:
1. Shadow Binary Execution & Hash sync
2. Grounded Status Reporting (Anti-Hallucination)
3. HTTP Control Plane (/status, /pause, /resume)
é    N)ÚPath)ÚPoe2SupervisorÚcalculate_sha256c                 óH   — | dz  }| dz  }|                      d¦  «         ||fS )uK   Táº¡o tá»‡p nhá»‹ phÃ¢n giáº£ láº­p Ä‘á»ƒ kiá»ƒm thá»­ logic shadow binary.zAutoPOE2_Core.exezAutoPOE2_Core_Runtime.exeó   MOCK_CORE_BINARY_DATA_V1)Úwrite_bytes)Útmp_pathÚ
source_binÚruntime_bins      ú2C:\Projects\AutoPOE2\tests\test_poe2_supervisor.pyÚ	temp_binsr      s<   € ð Ð/Ñ/€JØÐ8Ñ8€Kð ×ÒÐ6Ñ7Ô7Ð7Ø�{Ð"Ð"ó    c                 óÄ  — | dz  }|                      d¦  «         t          |¦  «        }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}||k    }|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 S )Nz	dummy.bins   hello worldé@   ©ú==)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sÚlenÚh©Úpy0Úpy1Úpy3Úpy6úassert %(py8)sÚpy8Ú@b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9)z%(py0)s == %(py3)s©r   r   úassert %(py5)sÚpy5)r   r   r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)r	   Úfr   Ú@py_assert2Ú@py_assert5Ú@py_assert4Ú@py_format7Ú@py_format9Ú@py_assert1Ú@py_format4Ú@py_format6s              r   Útest_sha256_calculationr1   !   s  € Ø�;Ñ€AØ‡M‚M�.Ñ!Ô!Ð!Ý˜ÑÔ€AÝˆq‰6Œ6Ð�RÐˆ6�RŠ<ÐÐÐÕÔÐÐÐÐˆ6�RÐÑÔÐÕÔÑÔÐÐÕÔ�3ÑÔÐÕÔ�3ÑÔÐÐÐÕÔÑÔÐÐÕÔˆqÑÔÐÕÔˆqÑÔÐÐÕÔˆ6ÑÔÕÔ�RÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØRÐRˆ1ÐRÒRÐRÐRÐRÕRÔRÐRÐRÐRÐRˆ1ÐRÐRÑRÔRÐRÕRÔRÑRÔRÐRÐRÕRÔRˆ1ÑRÔRÐRÕRÔRˆ1Ñ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          ||d¬¦  «        }|j        } |¦   «         }| }|s‹ddt          j        ¦   «         v st	          j        |¦  «        rt	          j        |¦  «        ndt	          j        |¦  «        t	          j        |¦  «        dœz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}}| 	                    ¦   «         }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}}	|j        } |¦   «         }|s‹ddt          j        ¦   «         v st	          j        |¦  «        rt	          j        |¦  «        ndt	          j        |¦  «        t	          j        |¦  «        dœz  }t          t	          j        |¦  «        ¦  «        ‚d 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        |¦  «        t	          j        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}x}x}}t          |¦  «        }	t          |¦  «        }|	|k    }|�sxt	          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        |	¦  «        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        |¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d x}	x}}d S )Né©F  ©r
   r   Ú	http_portzEassert not %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}r   )r   Úpy2Úpy4T©Úis©z%(py0)s is %(py3)sÚsuccessr   r   r   zAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}r   r   )zI%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.read_bytes
}()
} == %(py7)s)r   r6   r7   Úpy7zassert %(py9)sÚpy9)zN%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py8)s
{%(py8)s = %(py5)s(%(py6)s)
}r   r
   )r   r   r   r   r   r   zassert %(py10)sÚpy10)r   Úexistsr"   r#   r    r$   r%   r&   r'   Úprepare_shadow_binaryr!   Ú
read_bytesr   )r   r
   r   Ú
supervisorr.   Ú@py_assert3r*   r0   r;   r)   r/   Ú@py_format5Ú@py_assert6Ú@py_format8Ú@py_format10Ú@py_assert7r+   r-   Ú@py_format11s                      r   Útest_prepare_shadow_binaryrJ   )   s  € Ø'Ñ€J�Ý¨:À;ÐZ_Ð`Ñ`Ô`€JàÔ!Ð#Ð!Ð!Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ{Ñ#Ô#Ð#Õ#Ô#ˆ{Ñ#Ô#Ð#Ð#Õ#Ô#Ð!Ñ#Ô#Õ#Ô#Ð#Ñ#Ô#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ø×.Ò.Ñ0Ô0€GØÐˆ7�dˆ?ÐÐÐÕÔÐÐÐÐˆ7�dÐÑÔÐÕÔÑÔÐÐÕÔˆ7ÑÔÐÕÔˆ7ÑÔÐÐÕÔ�dÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÔÐÐÐÑÔÐÐÐÐÐÕÔÑÔÐÐÕÔˆ;ÑÔÐÕÔˆ;ÑÔÐÐÕÔÐÑÔÕÔÐÑÔÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÔ!ÐBÐ!Ð!Ñ#Ô#ÐBÐ'BÐBÐ#Ð'BÒBÐBÐBÐBÕBÔBÐBÐBÐBÐBÐ#Ð'BÐBÑBÔBÐBÕBÔBÑBÔBÐBÐBÕBÔBˆ;ÑBÔBÐBÕBÔBˆ;ÑBÔBÐBÐBÕBÔBÐ!ÑBÔBÕBÔBÐ#ÑBÔBÕBÔBÐ'BÑBÔBÐBÐBÑBÐBÐBÐBÐBÐBÑBÐBÕBÕBÔBÐBÑBÔBÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBÐBÝ˜JÑ'Ô'ÐHÕ+;¸KÑ+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ÔHÐHÐHÐHÕHÔHÑHÔHÐHÐHÕHÔH˜JÑHÔHÐHÕHÔH˜JÑ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ÕHÔH¸KÑHÔHÐHÕHÔH¸KÑ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ÐHÐHÐHr   c                 óò  — | \  }}t          ||d¬¦  «        }|                     ¦   «          |                     ¦   «         j        }t	          j        d¦  «         |                     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}}|                     ¦   «         j        }
||
k    }|sÂt          j        d|fd||
f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nddt          j	        ¦   «         v st          j
        |
¦  «        rt          j        |
¦  «        nddœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d }d S )Nr3   r4   g{®Gáz„?F)ÚforceTr8   r:   r;   r   r   r   r   )z%(py0)s == %(py2)sÚmtime1Úmtime2)r   r6   zassert %(py4)sr7   )r   r@   ÚstatÚst_mtimeÚtimeÚsleepr    r!   r"   r#   r$   r%   r&   r'   )r   r
   r   rB   rM   r;   r)   r.   r/   r0   rN   Ú@py_format3rD   s                r   Ú&test_prepare_shadow_binary_when_syncedrT   5   s+  € Ø'Ñ€J�Ý¨:À;ÐZ_Ð`Ñ`Ô`€Jà×$Ò$Ñ&Ô&Ð&Ø×ÒÑÔÔ(€Få„JˆtÑÔÐà×.Ò.°UÐ.Ñ;Ô;€GØÐˆ7�dˆ?ÐÐÐÕÔÐÐÐÐˆ7�dÐÑÔÐÕÔÑÔÐÐÕÔˆ7ÑÔÐÕÔˆ7ÑÔÐÐÕÔ�dÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ×ÒÑÔÔ(€FØ�VÒÐÐÐÕÔÐÐÐÐˆ6�VÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÐÕÔÑÔÐÐÕÔ�VÑÔÐÕÔ�VÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐr   c                 ó¼  — | \  }}t          ||d¬¦  «        }|                     ¦   «         }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}||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         d         }d}	||	u }|slt          j        d|fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}	|d         d         }d}	||	u }|slt          j        d|fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}	|d         d         }d}	||	u }|slt          j        d|fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }
dd|
iz  }t          t          j	        |¦  «        ¦  «        ‚d x}x}}	|d
         d         }t          |t          ¦  «        }|sÝddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }t          t          j	        |¦  «        ¦  «        ‚d x}}|d
         d         }t          |t          ¦  «        }|sÝddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dœz  }t          t          j	        |¦  «        ¦  «        ‚d x}}d S )Nr3   r4   rB   ©Úin©z%(py1)s in %(py3)sÚstatus©r   r   r   r   Úgame_clientÚshadow_runtimeÚ	telemetryÚsource_existsTr8   ©z%(py1)s is %(py4)s©r   r7   úassert %(py6)sr   Úruntime_existsFÚrunningz5assert %(py5)s
{%(py5)s = %(py0)s(%(py2)s, %(py3)s)
}Ú
isinstanceÚbool)r   r6   r   r   ÚpidsÚlist)r   Ú
get_statusr    r!   r%   r"   r#   r$   r&   r'   rd   re   rg   )r   r
   r   rB   rY   Ú@py_assert0r)   r/   r0   rC   rD   r,   r.   r+   s                 r   Útest_get_status_groundingrj   D   s/  € Ø'Ñ€J�Ý¨:À;ÐZ_Ð`Ñ`Ô`€Jà×"Ò"Ñ$Ô$€FØÐ!ˆ<˜6Ð!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ<˜6Ð!Ñ!Ô!Õ!Ô!ˆ<Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!˜6Ñ!Ô!Ð!Õ!Ô!˜6Ñ!Ô!Ð!Ð!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!ØÐ"ˆ=˜FÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ=˜FÐ"Ñ"Ô"Õ"Ô"ˆ=Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"˜FÑ"Ô"Ð"Õ"Ô"˜FÑ"Ô"Ð"Ð"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"ØÐ%Ð˜vÐ%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð˜vÐ%Ñ%Ô%Õ%Ô%ÐÑ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%˜vÑ%Ô%Ð%Õ%Ô%˜vÑ%Ô%Ð%Ð%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%ØÐ ˆ;˜&Ð Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ;˜&Ð Ñ Ô Õ Ô ˆ;Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˜&Ñ Ô Ð Õ Ô ˜&Ñ Ô Ð Ð Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð ð Ð"Ô# OÔ4Ð<¸Ð<Ð4¸Ð<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð4¸Ð<Ñ<Ô<Õ<Ô<Ð4Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÐ"Ô#Ð$4Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÐ"Ô# IÔ.Ð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Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ø˜]Ô+¨IÔ6Ð=�:Ð6½Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�:Ñ=Ô=Ð=Õ=Ô=�:Ñ=Ô=Ð=Ð=Õ=Ô=Ð6Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=½Ñ=Ô=Ð=Õ=Ô=½Ñ=Ô=Ð=Ð=Õ=Ô=Ð=Ñ=Ô=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ø˜]Ô+¨FÔ3Ð:�:Ð3µTÑ:Ô:Ð:Ð:Ð:Ð:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:�:Ñ:Ô:Ð:Õ:Ô:�:Ñ:Ô:Ð:Ð:Õ:Ô:Ð3Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:µTÑ:Ô:Ð:Õ:Ô:µTÑ:Ô:Ð:Ð:Õ:Ô:Ð:Ñ:Ô:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:r   c                 óª  — | \  }}d}t          |||¬¦  «        }	 |                     ¦   «          t          j        d¦  «         t          j                             d|› d�¦  «        }t          j                             |d¬¦  «        5 }|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}	}t#          j        |                     ¦   «                              d¦  «        ¦  «        }|d         d         }d}	||	u }|slt          j
        d|fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}	|d         d         }||k    }|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 d d ¦  «         n# 1 swxY w Y   t          j                             d|› d�dd d!i¬"¦  «        }t          j                             |d¬¦  «        5 }|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}	}t#          j        |                     ¦   «                              d¦  «        ¦  «        }|d#         }d}	||	u }|slt          j
        d|fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}	|j        }d}||u }	|	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 d d ¦  «         n# 1 swxY w Y   t          j                             d|› d%�d¬¦  «        5 }|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}	}|j                             d d&¦  «        }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¦  «        }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 d d ¦  «         n# 1 swxY w Y   t          j                             d|› d-�d¬¦  «        5 }|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}	}|j                             d d&¦  «        }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}}|                     ¦   «         }t1          |¦  «        }d/}||k    }|sòt          j
        d0|fd1||f¦  «        d2t          j        ¦   «         v st          j        t0          ¦  «        rt          j        t0          ¦  «        nd2d3t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd3t          j        |¦  «        t          j        |¦  «        d4œz  }d5d6|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}|d d7…         }d8}	||	k    }|slt          j
        d	|fd9||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d x}x}}	d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          t          j        d:¦  «         d S # |                     ¦   «          t          j        d:¦  «         w xY w);Ni¨F  r4   g      à?zhttp://127.0.0.1:z/statusé   )ÚtimeoutéÈ   r   )z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)sÚresp)r   r6   r   zassert %(py7)sr<   zutf-8rB   ÚactiveTr8   r_   r`   ra   r   r5   )z%(py1)s == %(py3)sÚ	test_portrZ   r   r   z/pauses   {}zContent-Typezapplication/json)ÚdataÚheadersÚpaused)z/%(py2)s
{%(py2)s = %(py0)s._paused
} is %(py5)sz/previewÚ z	text/htmlrV   rX   Úcontent_typezAutoPOE2 Virtual ScreenÚ	html_bodyz/preview.jpgz
image/jpegiè  )ú>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)sr   Ú
jpeg_bytesr   r   r   é   s   ÿØ)z%(py1)s == %(py4)sgš™™™™™É?)r   ÚstartrQ   rR   ÚurllibÚrequestÚRequestÚurlopenrY   r    r!   r"   r#   r$   r%   r&   r'   ÚjsonÚloadsÚreadÚdecodeÚ_pausedrs   Úgetr   Ústop)r   r
   r   rq   rB   Úreqro   r.   r+   rC   r0   rF   rr   ri   r)   rD   r,   r/   rv   rw   ry   r*   r-   s                          r   Útest_http_control_planerˆ   V   s¿  € Ø'Ñ€J�Ø€IÝ¨:À;ÐZcÐdÑdÔd€Jð(Ø×ÒÑÔÐÝŒ
�3‰Œˆõ Œn×$Ò$Ð%K¸Ð%KÐ%KÐ%KÑLÔLˆÝŒ^×#Ò# C°Ð#Ñ3Ô3ð 	@°tØ”;Ð% #Ð%�; #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%�; #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�4Ñ%Ô%Ð%Õ%Ô%�4Ñ%Ô%Ð%Ð%Õ%Ô%�;Ñ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ý”:˜dŸiši™kœk×0Ò0°Ñ9Ô9Ñ:Ô:ˆDØ˜Ô% hÔ/Ð7°4Ð7Ð/°4Ð7Ð7Ð7Ð7Õ7Ô7Ð7Ð7Ð7Ð7Ð/°4Ð7Ñ7Ô7Õ7Ô7Ð/Ñ7Ô7Õ7Ô7°4Ñ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Ø˜Ô% kÔ2Ð?Ð2°iÒ?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð2°iÐ?Ñ?Ô?Õ?Ô?Ð2Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?°iÑ?Ô?Ð?Õ?Ô?°iÑ?Ô?Ð?Ð?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?ð		@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@õ Œn×$Ò$Ð%J¸Ð%JÐ%JÐ%JÐQVÐaoð  rDð  aEÐ$ñ  Fô  FˆÝŒ^×#Ò# C°Ð#Ñ3Ô3ð 	.°tØ”;Ð% #Ð%�; #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%�; #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�4Ñ%Ô%Ð%Õ%Ô%�4Ñ%Ô%Ð%Ð%Õ%Ô%�;Ñ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Ý”:˜dŸiši™kœk×0Ò0°Ñ9Ô9Ñ:Ô:ˆDØ˜”>Ð) TÐ)�> TÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)�> TÐ)Ñ)Ô)Õ)Ô)�>Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÔ%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-�:Ñ-Ô-Ð-Õ-Ô-�:Ñ-Ô-Ð-Ð-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð		.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.õ Œ^×#Ò#Ð$K¸	Ð$KÐ$KÐ$KÐUVÐ#ÑWÔWð 	/Ð[_Ø”;Ð% #Ð%�; #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%�; #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�4Ñ%Ô%Ð%Õ%Ô%�4Ñ%Ô%Ð%Ð%Õ%Ô%�;Ñ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Øœ<×+Ò+¨N¸BÑ?Ô?ˆLØÐ.�; ,Ð.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.�; ,Ð.Ñ.Ô.Õ.Ô.�;Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô. ,Ñ.Ô.Ð.Õ.Ô. ,Ñ.Ô.Ð.Ð.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.ØŸ	š	™œ×*Ò*¨7Ñ3Ô3ˆIØ,Ð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Ø!Ð.�> YÐ.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.�> YÐ.Ñ.Ô.Õ.Ô.�>Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô. YÑ.Ô.Ð.Õ.Ô. YÑ.Ô.Ð.Ð.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/õ Œ^×#Ò#Ð$O¸	Ð$OÐ$OÐ$OÐYZÐ#Ñ[Ô[ð 	1Ð_cØ”;Ð% #Ð%�; #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%�; #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%�4Ñ%Ô%Ð%Õ%Ô%�4Ñ%Ô%Ð%Ð%Õ%Ô%�;Ñ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%Øœ<×+Ò+¨N¸BÑ?Ô?ˆLØÐ/�< <Ð/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/�< <Ð/Ñ/Ô/Õ/Ô/�<Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ <Ñ/Ô/Ð/Õ/Ô/ <Ñ/Ô/Ð/Ð/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/ØŸš™œˆJÝ�z‘?”?Ð) TÐ)�? TÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)�? TÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)•3Ñ)Ô)Ð)Õ)Ô)•3Ñ)Ô)Ð)Ð)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)�zÑ)Ô)Ð)Õ)Ô)�zÑ)Ô)Ð)Ð)Õ)Ô)�?Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø˜b˜q˜b”>Ð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Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	�ŠÑÔÐÝŒ
�3‰Œˆˆˆøð 	�ŠÑÔÐÝŒ
�3‰Œˆˆøøøs¡   ›A,p( ÂH4KÊ;p( ËKËp( ËKËAp( ÌH<U#Õp( Õ#U'Õ'p( Õ*U'Õ+(p( ÖK-bâ p( âbâp( âbâ(p( â<L+o3ï'p( ï3o7ï7p( ï:o7ï;p( ð(*q) Ú__doc__Úbuiltinsr"   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter    Úsysr€   rQ   Úurllib.requestr|   Úpathlibr   ÚpytestÚ__file__ÚresolveÚparentÚWORKSPACE_ROOTÚpathÚinsertÚstrÚtools.poe2_supervisorr   r   Úfixturer   r1   rJ   rT   rj   rˆ   © r   r   ú<module>rœ      s<  ððð ð € € € € € € € € € € € € €
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à��h‘”×'Ò'Ñ)Ô)Ô0Ô7€Ø „‡‚��3�3�~Ñ&Ô&Ñ 'Ô 'Ð 'à BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bð „ð#ð #ñ „ð#ðSð Sð Sð	Ið 	Ið 	Iðð ð ð;ð ;ð ;ð$-ð -ð -ð -ð -r   