
    &y>jY                     L    d Z ddlZddlmc mZ ddlmZm	Z	m
Z
mZ d Zd Zd Zy)z Tests for built-in TOTP helpers.    N)build_provisioning_urigenerate_totp_secretverify_totp_totp_atc                  p   t               } t        | d      }t        |       }d}||k\  }|st        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}}t        |      }d
}||k(  }|st        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}}y )Nr      )>=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} >= %(py6)slensecret)py0py1py3py6zassert %(py8)spy8   )==)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)scode)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v;";";"33vv;"t99>933tt9    c                 ~   t               }| j                  dd        t        |d      }t        ||      }|sd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dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }t        t        j                  |            d }y )	Nzapp.core.totp.time.timec                       y)N    r'   r#   r!   <lambda>zHtest_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   r   py2py4)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_windowr0      s    !#F1:>FADvt$$$$$$$$;$$$;$$$$$$v$$$v$$$$$$t$$$t$$$$$$$$$$r#   c                  :   d} t        | dd      }|j                  }d} ||      }|sddt        j                         v st	        j
                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      t	        j                  |      dz  }t        t	        j                  |            d x}x}}d|  }||v }|st	        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 }|st	        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}}y )NJBSWY3DPEHPK3PXPzadmin@example.comTradingBinancezotpauth://totp/zLassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.startswith
}(%(py4)s)
}uri)r   r*   r+   r   zsecret=)in)z%(py1)s in %(py3)s)r   r   zassert %(py5)spy5zissuer=TradingBinance)
r   
startswithr   r   r   r   r   r   r   r   )
r   r4   @py_assert1r.   r   r   @py_assert0r   @py_format4@py_format6s
             r!   1test_provisioning_uri_is_authenticator_compatibler<      sE   F
 )<>N
OC>>,+,>+,,,,,,,,3,,,3,,,>,,,+,,,,,,,,,,VH$$$$$$$$$$$$$$$$$$$$$$$$")"c))))"c)))"))))))c)))c)))))))r#   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   app.core.totpr   r   r   r   r"   r0   r<   r'   r#   r!   <module>rC      s"    &    ] ]%*r#   