import pytest from dapd_public_api_scraper.utils.logging import sanitize_db_uri_password @pytest.mark.parametrize( 'string_to_test, expected', [ ('', ''), ('abc123', 'abc123'), ('psycopg2://user:pass@172.25.0.2:5432/db_name', 'psycopg2://user:*****@172.25.0.2:5432/db_name'), ('postgresql://user:pass@172.25.0.2:5432/db_name', 'postgresql://user:*****@172.25.0.2:5432/db_name'), ('user:pass@172.25.0.2:5432/db_name', 'user:*****@172.25.0.2:5432/db_name'), ('postgresql+psycopg2://user:pass@172.25.0.2:5432/db_name', 'postgresql+psycopg2://user:*****@172.25.0.2:5432/db_name'), ('postgresql+psycopg2://user:longerPass@172.25.0.2:5432/db_name', 'postgresql+psycopg2://user:*****@172.25.0.2:5432/db_name'), ('postgresql+psycopg2://user:a123veryLongPass2124@172.25.0.2:5432/db_name', 'postgresql+psycopg2://user:*****@172.25.0.2:5432/db_name'), ('postgresql+psycopg2://user:a12$3very^L[o;ngPas\\s|2]/124@172.25.0.2:5432/db_name', 'postgresql+psycopg2://user:*****@172.25.0.2:5432/db_name'), ('postgresql+psycopg2://user:a12$3ve @ry^L[o;ng@\\Pass|2]/124@172.25.0.2:5432/db_name', 'postgresql+psycopg2://user:*****@172.25.0.2:5432/db_name'), ('postgresql+psycopg2://user:a12$3ve @ry^L[o;ng@\\Pass|2]/124@172.25.0.2:5432/DB_Name', 'postgresql+psycopg2://user:*****@172.25.0.2:5432/DB_Name'), ] ) # yapf: disable def test_postgres_sanitize_db_uri_pass(string_to_test: str, expected: str): result = sanitize_db_uri_password(string=string_to_test) assert result == expected