§
    µYÄj   ã                  ó\   — d dl mZ d dlZd dlmc mZ d dlZd dl	m
Z
 d dlmZ dd	„Zdd
„ZdS )é    )ÚannotationsN)ÚPath)ÚDeviceCredentialStoreÚtmp_pathr   ÚreturnÚNonec           	     óL
  — | dz  }|                      t          j        ddddœ¦  «        d¬¦  «         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
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚d x}x}x}x}x}}|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
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚d x}x}x}x}x}}|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
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚d x}x}x}x}x}}|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
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚d x}x}x}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}}d S )Núdevice.jsonÚ zsecret-device-tokenzpi-token©Ú	device_idÚdevice_tokenÚpi_tokenúutf-8©Úencodingúdevice-1T©Úis)z\%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.authenticate
}(%(py4)s, %(py6)s)
} is %(py11)sÚstore)Úpy0Úpy2Úpy4Úpy6Úpy8Úpy11zassert %(py13)sÚpy13zdevice-2FÚwrongr   )ú==)z%(py1)s == %(py4)s)Úpy1r   zassert %(py6)sr   )Ú
write_textÚjsonÚdumpsr   ÚauthenticateÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚloadsÚ	read_text)r   Úpathr   Ú@py_assert1Ú@py_assert3Ú@py_assert5Ú@py_assert7Ú@py_assert10Ú@py_assert9Ú@py_format12Ú@py_format14Ú@py_assert0Ú@py_assert2Ú@py_format5Ú@py_format7s                  úU/home/lighthouse/esp32-dev/.cache/watch-codex-quota-startup/server/tests/test_auth.pyÚ)test_first_device_binding_and_exact_matchr=   	   s  € Ø�mÑ#€DØ‡O‚OÝŒ
 Ð5JÐXbÐcÐcÑdÔdØð ñ ô ð õ " $Ñ'Ô'€EØÔÐH˜jÐHÐ*?ÐHÐÐ˜jÐ*?Ñ@Ô@ÐHÀDÐHÐ@ÀDÐHÐHÐHÐHÕHÔHÐHÐHÐHÐHÐ@ÀDÐHÑHÔHÐHÕHÔHÑHÔHÐHÐHÕHÔHˆ5ÑHÔHÐHÕHÔHˆ5ÑHÔHÐHÐHÕHÔHÐÑHÔHÕHÔH˜jÑHÔHÕHÔHÐ*?ÑHÔHÕHÔHÐ@ÑHÔHÕHÔHÀDÑ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ÐÐ˜jÐ*?Ñ@Ô@ÐHÀDÐHÐ@ÀDÐHÐHÐHÐHÕHÔHÐHÐHÐHÐHÐ@ÀDÐHÑHÔHÐHÕHÔHÑHÔHÐHÐHÕHÔHˆ5ÑHÔHÐHÕHÔHˆ5ÑHÔHÐHÐHÕHÔHÐÑHÔHÕHÔH˜jÑHÔHÕHÔHÐ*?ÑHÔHÕHÔHÐ@ÑHÔHÕHÔHÀDÑ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ØÔÐI˜jÐIÐ*?ÐIÐÐ˜jÐ*?Ñ@Ô@ÐIÀEÐIÐ@ÀEÐIÐIÐIÐIÕIÔIÐIÐIÐIÐIÐ@ÀEÐIÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔIˆ5ÑIÔIÐIÕIÔIˆ5ÑIÔIÐIÐIÕIÔIÐÑIÔIÕIÔI˜jÑIÔIÕIÔIÐ*?ÑIÔIÕIÔIÐ@ÑIÔIÕIÔIÀEÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIØÔÐ;˜jÐ;¨'Ð;ÐÐ˜j¨'Ñ2Ô2Ð;°eÐ;Ð2°eÐ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð2°eÐ;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;ˆ5Ñ;Ô;Ð;Õ;Ô;ˆ5Ñ;Ô;Ð;Ð;Õ;Ô;ÐÑ;Ô;Õ;Ô;˜jÑ;Ô;Õ;Ô;¨'Ñ;Ô;Õ;Ô;Ð2Ñ;Ô;Õ;Ô;°eÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ÝŒ:�d—n’n¨g�nÑ6Ô6Ñ7Ô7¸ÔDÐRÈ
ÐRÐDÈ
ÒRÐRÐRÐRÕRÔRÐRÐRÐRÐRÐDÈ
ÐRÑRÔRÕRÔRÐDÑ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ó    c                ó`  — | dz  }|                      t          j        ddddœ¦  «        d¬¦  «         t          |¦  «        }|j        }d} ||¦  «        }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
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚d x}x}x}x}}|j        }d} ||¦  «        }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
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚d x}x}x}x}}d S )Nr
   r   ÚdeviceÚpir   r   r   Tr   )zU%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.authenticate_pi
}(%(py4)s)
} is %(py9)sr   )r   r   r   r   Úpy9zassert %(py11)sr   F)r!   r"   r#   r   Úauthenticate_pir%   r&   r'   r(   r)   r*   r+   r,   )
r   r/   r   r0   r1   r2   Ú@py_assert8r3   Ú@py_format10r6   s
             r<   Ú&test_pi_integration_has_separate_tokenrF      s—  € Ø�mÑ#€DØ‡O‚OÝŒ
 ¸XÐSWÐXÐXÑYÔYØð ñ ô ð õ " $Ñ'Ô'€EØÔ Ð. Ð.Ð Ð  Ñ&Ô&Ð.¨$Ð.Ð&¨$Ð.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð&¨$Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ5Ñ.Ô.Ð.Õ.Ô.ˆ5Ñ.Ô.Ð.Ð.Õ.Ô.Ð Ñ.Ô.Õ.Ô. Ñ.Ô.Õ.Ô.Ð&Ñ.Ô.Õ.Ô.¨$Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÔ Ð3 Ð3Ð Ð  Ñ*Ô*Ð3¨eÐ3Ð*¨eÐ3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3Ð*¨eÐ3Ñ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3ˆ5Ñ3Ô3Ð3Õ3Ô3ˆ5Ñ3Ô3Ð3Ð3Õ3Ô3Ð Ñ3Ô3Õ3Ô3 Ñ3Ô3Õ3Ô3Ð*Ñ3Ô3Õ3Ô3¨eÑ3Ô3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r>   )r   r   r   r   )Ú
__future__r   Úbuiltinsr'   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter%   r"   Úpathlibr   Údevice_gateway.authr   r=   rF   © r>   r<   ú<module>rO      s”   ðØ "Ð "Ð "Ð "Ð "Ð "à  € € € € € € € € € € € € €€€€Ø Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5ðSð Sð Sð Sð4ð 4ð 4ð 4ð 4ð 4r>   