+
    B.jv  c                   N    R t ^ RIt^ RIHu Ht ^ RIHtH	t	H
t
Ht R tR tR tR# )z Tests for built-in TOTP helpers.N)build_provisioning_urigenerate_totp_secretverify_totp_totp_atc                     \        4       p \        V ^ 4      p\        V 4      p^q2V8  qD'       Eg   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRRR\
        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR	;p;rC\        V4      p^q2V8H  qD'       Eg   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRRR
\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR
R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR	;p;rCR	# )    py0lenpy1secretpy3py6zassert %(py8)spy8Ncode)>=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)s)==)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)s)r   r   r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)r
   r   @py_assert2@py_assert5@py_assert4@py_format7@py_format9s          9C:\xampp\htdocs\tradingbinance\backend\tests\test_totp.py2test_generated_totp_secret_can_verify_current_coder      s   !#FFAD    c                    \        4       pV P                  R R 4       \        V^4      p\        W4      q3'       Eg1   RRR\        P
                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRRR\        P
                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRRR\        P
                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR	\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR
pR
# )zapp.core.totp.time.timec                      ^# )    r$   r    r   <lambda>Htest_verify_totp_accepts_valid_code_for_counter_window.<locals>.<lambda>   s    2r    z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}r   r   r	   r
   py2r   py4N)r   setattrr   r   r   r   r   r   r   r   r   )monkeypatchr
   r   @py_assert3@py_format5s   &    r   6test_verify_totp_accepts_valid_code_for_counter_windowr-      s    !#F1:>FAD$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$r    c                     R p \        V RR4      pVP                  pRq2! V4      qD'       g   RRR\        P                  ! 4       9   g   \        P
                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      R	\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR
;p;r4RV  2qfV9   qw'       g   \        P                  ! RV3RWa34      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P
                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p	\        \        P                  ! V	4      4      hR
;rgRqfV9   qw'       g   \        P                  ! RV3RWa34      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P
                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p	\        \        P                  ! V	4      4      hR
;rgR
# )JBSWY3DPEHPK3PXPzadmin@example.comTradingBinancezotpauth://totp/zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}r   urir'   r(   r   Nzsecret=r	   r   zassert %(py5)spy5zissuer=TradingBinance)in)z%(py1)s in %(py3)s)
r   
startswithr   r   r   r   r   r   r   r   )
r
   r1   @py_assert1r+   r   r   @py_assert0r   @py_format4@py_format6s
             r   1test_provisioning_uri_is_authenticator_compatibler9      s   F
 )<>N
OC,,,,,,,,,,,,,,,,,,,,,,,,,,,,$$$$$$$$$$$$$$$$$$$$$$$$$)))))))))))))))))))))))))r    )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   app.core.totpr   r   r   r   r   r-   r9   r$   r    r   <module>r@      s"    &    ] ]%*r    