
    Hi                     \    d Z ddlZddlmc mZ ddlZddlm	Z	 d Z
d Zd Zd Zd Zd	 ZdS )
u   敏感信息过滤测试。    N)sanitize_outputc                  N   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}}d} d}t          |           }||v }|st          j        d|fd||f          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 )u   过滤密码。zpassword=secret123zpassword=[REDACTED]==z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   outputpy0py1py3py6assert %(py8)spy8Nzexport DB_PASSWORD=mysecretpass
[REDACTED]inz0%(py1)s in %(py6)s
{%(py6)s = %(py3)s(%(py4)s)
}r   r   py4r   	r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr   @py_assert2@py_assert5@py_assert4@py_format7@py_format9@py_assert0s          //root/projects/qq-shell/tests/test_sanitizer.pytest_sanitize_passwordr'      sV   !F6"";&;;"&;;;;;;;;;;;"&;;;;;;;;;;;;;?;;;;;?;;;;;;;;;;;;;6;;;;;6;;;;;;";;;;&;;;;;;;;;;;;;;;;;;;;;;;;;;;;.F2?6222<22222222222<222222<22222222222?22222?22222222222226222226222222222222222222222222222222222222    c                  N   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}}d} d}t          |           }||v }|st          j        d|fd||f          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 )u   过滤 API Key。zapi_key=sk-1234567890abcdefzapi_key=[REDACTED]r   r   r   r   r	   r   r   NzAPI_KEY = my_secret_keyr   r   r   r   r   r   s          r&   test_sanitize_api_keyr*      sV   *F6"":&::"&:::::::::::"&:::::::::::::?:::::?:::::::::::::6:::::6::::::"::::&::::::::::::::::::::::::::::&F2?6222<22222222222<222222<22222222222?22222?22222222222226222226222222222222222222222222222222222222r(   c                  (   d} d}t          |           }||v }|st          j        d|fd||f          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 )u   过滤 Bearer Token。z:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9r   r   r   r   r   r   r   r   N	r   r   r   r   r   r   r   r   r   r   r%   r!   r    r#   r$   s         r&   test_sanitize_bearer_tokenr.      s-   IF2?6222<22222222222<222222<22222222222?22222?22222222222226222226222222222222222222222222222222222222r(   c                  (   d} d}t          |           }||v }|st          j        d|fd||f          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 )u   过滤私钥。z3-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...r   r   r   r   r   r   r   r   Nr,   r-   s         r&   test_sanitize_private_keyr0      s-   CF2?6222<22222222222<222222<22222222222?22222?22222222222226222226222222222222222222222222222222222222r(   c                  |   d} t          |           }|| 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        |          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 )
u   保留安全内容。z*User logged in successfully
Files: 10
Doner   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py5)sr   r   )r
   r   r   py5zassert %(py7)spy7Nr   )r   r    r"   @py_format6@py_format8s        r&   $test_sanitize_preserves_safe_contentr6   %   sN   ;F6"","f,,,,,,,,,,"f,,,,,,,,,,,,?,,,,,?,,,,,,,,,,,,,6,,,,,6,,,,,,",,,,,,,,,,,f,,,,,f,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r(   c                     d} t          |           }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}}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	S )u   过滤多个敏感信息。z(password=secret1 api_key=key1 token=tok1r   r   )z%(py1)s in %(py3)s	sanitized)r   r   zassert %(py5)sr2   Nsecret1)not in)z%(py1)s not in %(py3)skey1r,   )r   r8   r%   r    @py_format4r4   s         r&   test_sanitize_multiple_secretsr=   +   s`   7F''I$<9$$$$$$$$$$<9$$$$$<$$$$$$$$$$$9$$$$$9$$$$$$$$$$$$$$$$$$$$$$$$$$$%9I%%%%%%%%%%9I%%%%%9%%%%%%%%%%%I%%%%%I%%%%%%%%%%%%%%%%%%%%%%%%%%%"6""""""""""6"""""6"""""""""""""""""""""""""""""""""""""""""""""r(   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   pytestbutler.security.sanitizerr   r'   r*   r.   r0   r6   r=    r(   r&   <module>rF      s    ! !               5 5 5 5 5 53 3 33 3 33 3 33 3 3- - -# # # # #r(   