Skip to content

fix: strip credentials from URLs to prevent leaking auth tokens#78

Closed
npow wants to merge 4 commits into
Netflix:mainfrom
npow:fix/strip-url-credentials
Closed

fix: strip credentials from URLs to prevent leaking auth tokens#78
npow wants to merge 4 commits into
Netflix:mainfrom
npow:fix/strip-url-credentials

fix: black formatting in env_descr.py is_downloadable_url

714893a
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Extensions Unit Tests (py3.12 resolver micromamba micromamba 1.5.10-0 mamba mamba on ubuntu-latest) succeeded May 12, 2026 in 0s

237 passed, 0 failed and 1 skipped

Tests passed successfully

✅ junit.xml

238 tests were completed in 423s with 237 passed, 0 failed and 1 skipped.

Test suite Passed Failed Skipped Time
pytest 237✅ 1⚪ 423s

✅ pytest

tests.environments.test_env_resolution
  ✅ test_resolve_environment_from_file[simple-conda.yml-3.10]
  ✅ test_resolve_environment_from_file[itsdangerous.txt-3.10]
  ✅ test_resolve_environment_from_file[itsdangerous.yml-3.10]
  ⚪ test_resolve_environment_no_crash[conda_lock_prio.yml]
  ✅ test_resolve_environment_no_crash[conda-multiple-channels.yml]
  ✅ test_resolve_environment_no_crash[conda-with-channel-spec.yml]
  ✅ test_resolve_environment_no_crash[conda-with-npconda.yml]
  ✅ test_resolve_environment_no_crash[conda-with-sys-deps.yml]
  ✅ test_resolve_environment_no_crash[corner-cases.txt]
  ✅ test_resolve_environment_no_crash[only-src.txt]
  ✅ test_resolve_environment_no_crash[only-src.yml]
  ✅ test_resolve_environment_no_crash[pypi-custom-index.txt]
  ✅ test_resolve_environment_no_crash[pypi-simple-no-extras.txt]
  ✅ test_resolve_environment_no_crash[pypi-with-find-links.txt]
  ✅ test_resolve_environment_no_crash[pypi-with-markers.txt]
  ✅ test_resolve_environment_no_crash[req-conda-pkg-no-version.txt]
  ✅ test_resolve_environment_no_crash[simple-conda.yml]
tests.environments.test_uv_decorator
  ✅ test_parse_requirements_in
  ✅ test_handle_req_txt_scenario
  ✅ test_locate_folder_first_contains_any_file_in_list[pyproject_toml_uv_lock_both_present_in_different_levels_uv_wins]
  ✅ test_locate_folder_first_contains_any_file_in_list[all_four_files_exist]
  ✅ test_locate_folder_first_contains_any_file_in_list[only_uv_no_pyproject_toml]
  ✅ test_locate_folder_first_contains_any_file_in_list[req_in_txt_both_exist]
  ✅ test_locate_folder_first_contains_any_file_in_list[req_in_txt_both_exist_start_path_deeper]
  ✅ test_locate_folder_first_contains_any_file_in_list[has_only_requirements_txt_no_req_in]
  ✅ test_verifying_autogen
tests.plugins.conda.create_env_test.TestConda
  ✅ test_uv_called
tests.plugins.conda.pylock_toml_resolver_test
  ✅ test_package_matching[no_match]
  ✅ test_package_matching[single_tag_multiple_packages_full_toml_file]
  ✅ test_package_matching[single_tag_multiple_packages_macosx_10_9_universal2]
  ✅ test_package_matching[single_tag_multiple_packages_cp311]
  ✅ test_package_matching[single_tag_multiple_packages_musllinux_1_2_x86_64]
  ✅ test_package_matching[multiple_tag_multiple_packages_macosx_10_9_universal2_and_any]
  ✅ test_package_matching[multiple_tag_multiple_packages_three_tags_three_hits]
  ✅ test_package_matching[multiple_tag_multiple_packages_windows_platform0]
  ✅ test_package_matching[multiple_tag_multiple_packages_windows_platform1]
  ✅ test_package_matching[end_to_end_matching]
  ✅ test_package_matching[no_wheel_in_package]
  ✅ test_package_matching[other_package_formats_than_sdist_wheels]
  ✅ test_package_matching[no_hash_in_wheel]
  ✅ test_resolve_one_package
  ✅ test_one_to_multi_package_resolution
  ✅ test_parsing_root_toml_obj
  ✅ test_translate_pylock_to_resolved_env
  ✅ test_base_packages_extended_to_packages
  ✅ test_pylock_toml_to_resolved_env
  ✅ test_resolve_marker
  ✅ test_filter_packages
  ✅ test_multiple_occurrences_of_same_package
tests.plugins.conda.resolve_alias_test
  ✅ test_resolve_env_alias_pathspec
  ✅ test_resolve_env_alias_req_full_id
  ✅ test_resolve_env_alias_invalid_full_id
  ✅ test_resolve_env_alias_generic
  ✅ test_resolve_env_alias_invalid_image_name
  ✅ test_resolve_env_alias_invalid_image_name_start_end
  ✅ test_resolve_env_alias_invalid_tag_name
tests.plugins.conda.test_cleanup_conda_file
  ✅ test_write_to_conda_manifest_cleanup_on_rename_failure
tests.plugins.conda.test_concurrent_writes
  ✅ test_write_to_conda_manifest_concurrent_access
tests.plugins.conda.test_environment_cli
  ✅ test_show_envs
  ✅ test_show_envs_single
  ✅ test_show_envs_timeout
  ✅ test_resolve_one_env
  ✅ test_resolve_all_envs
tests.plugins.conda.test_file_parsing
  ✅ test_parse_simple_conda_yml
  ✅ test_parse_channel_conda_yml
  ✅ test_parse_itsdangerous_txt
  ✅ test_parse_itsdangerous_yml
  ✅ test_parse_corner_cases_txt
  ✅ test_parse_only_src_txt
  ✅ test_parse_only_src_yml
  ✅ test_multiple_architectures
  ✅ test_skip_metaflow_deps
  ✅ test_error_multiple_file_types
  ✅ test_parse_simple_toml
  ✅ test_toml_with_poetry_sources
  ✅ test_req_parser_error_index_url
  ✅ test_req_parser_error_unsupported_line
  ✅ test_req_parser_error_invalid_requirement
  ✅ test_req_parser_error_sys_pkg_not_allowed
  ✅ test_req_parser_error_conda_channel_not_allowed
  ✅ test_req_parser_with_extra_index_url
  ✅ test_req_parser_with_python_version
  ✅ test_req_parser_with_extras_and_url
  ✅ test_req_parser_with_markers
  ✅ test_yml_parser_error_sys_deps_not_allowed
  ✅ test_yml_parser_error_sys_pkg_no_version
  ✅ test_yml_parser_error_sys_pkg_invalid_operator
  ✅ test_yml_parser_error_sys_pkg_not_allowed
  ✅ test_yml_parser_error_multiple_python_versions
  ✅ test_yml_parser_with_channels
  ✅ test_yml_parser_with_pypi_indices
  ✅ test_yml_parser_with_mixed_deps
  ✅ test_yml_parser_with_url_deps
  ✅ test_toml_parser_error_no_tomllib
  ✅ test_toml_parser_error_invalid_toml
  ✅ test_toml_parser_error_python_in_deps
  ✅ test_toml_parser_error_invalid_requirement
  ✅ test_toml_parser_error_non_pypi_sources
  ✅ test_toml_parser_with_requires_python
  ✅ test_toml_parser_with_extras
  ✅ test_toml_parser_with_url
  ✅ test_toml_parser_with_markers
  ✅ test_parse_req_value_conda_pkg_invalid
  ✅ test_parse_req_value_sys_pkg_invalid
  ✅ test_parse_req_value_sys_pkg_no_version
  ✅ test_parse_req_value_find_links
  ✅ test_parse_req_value_trusted_host
  ✅ test_parse_req_value_no_index
  ✅ test_parse_req_value_conda_channel
  ✅ test_parse_req_value_conda_pkg
  ✅ test_parse_toml_with_multiple_sources
  ✅ test_parse_yml_with_unknown_section
  ✅ test_parse_yml_with_empty_lines
tests.plugins.conda.test_filter_user_reqs_by_markers.TestBasicFunctionality
  ✅ test_empty_deps
  ✅ test_deps_without_markers
  ✅ test_non_conda_pypi_types_unchanged
tests.plugins.conda.test_filter_user_reqs_by_markers.TestCondaVersionSpecifiers
  ✅ test_build_string_without_marker
  ✅ test_build_string_with_marker_true
  ✅ test_build_string_with_marker_false
  ✅ test_channel_prefix_without_marker
  ✅ test_channel_prefix_with_marker
  ✅ test_channel_and_build_string_with_marker
  ✅ test_double_equal_star
  ✅ test_double_equal_comparison
  ✅ test_complex_conda_specifiers_mixed
  ✅ test_conda_with_version_range_and_markers
  ✅ test_conda_build_string_with_ambiguous_marker
tests.plugins.conda.test_filter_user_reqs_by_markers.TestPythonVersionHandling
  ✅ test_specific_python_version
  ✅ test_python_version_range
  ✅ test_python_version_range_all_filtered
  ✅ test_python_version_range_ambiguous_marker
  ✅ test_python_version_range_boundary_ambiguous
  ✅ test_python_version_range_less_than_ambiguous
  ✅ test_python_version_range_narrow_non_ambiguous
  ✅ test_python_full_version_marker
  ✅ test_ambiguous_marker_raises_exception
tests.plugins.conda.test_filter_user_reqs_by_markers.TestPythonVersionWithBuildString
  ✅ test_python_version_with_build_string_simple
  ✅ test_python_version_with_build_string_and_channel
  ✅ test_python_version_with_complex_build_string
  ✅ test_python_version_with_build_string_full_version_marker
  ✅ test_python_version_range_with_build_string
  ✅ test_python_exact_version_with_build_string
  ✅ test_python_with_double_equal_and_build_string
  ✅ test_python_build_string_without_equals
  ✅ test_mixed_python_and_deps_with_build_strings
  ✅ test_python_version_no_patch_with_build_string
tests.plugins.conda.test_filter_user_reqs_by_markers.TestMarkerEvaluation
  ✅ test_platform_marker_linux
  ✅ test_platform_marker_darwin
  ✅ test_combined_markers
  ✅ test_marker_with_platform_machine
tests.plugins.conda.test_filter_user_reqs_by_markers.TestMixedDependencyTypes
  ✅ test_all_dependency_types
  ✅ test_empty_filtered_results
tests.plugins.conda.test_filter_user_reqs_by_markers.TestEdgeCases
  ✅ test_no_semicolon_fast_path
  ✅ test_underscore_package_name
  ✅ test_complex_build_strings
  ✅ test_marker_with_extra_whitespace
  ✅ test_multiple_version_constraints
  ✅ test_invalid_python_version_format
  ✅ test_url_dependencies
  ✅ test_python_with_build_string_no_semicolon_fast_path
  ✅ test_version_with_local_identifier_and_marker
  ✅ test_complex_version_specifier_with_commas_in_range
  ✅ test_build_string_with_dash_separator_and_marker
  ✅ test_mixed_separators_build_strings
tests.plugins.conda.test_filter_user_reqs_by_markers.TestArchitectureSpecific
  ✅ test_linux_64_arch
  ✅ test_osx_arm64_arch
tests.plugins.conda.test_filter_user_reqs_by_markers.TestReturnedDependencyFormat
  ✅ test_marker_removed_from_kept_deps
  ✅ test_original_format_preserved_without_markers
  ✅ test_marker_removed_with_python_build_string
tests.plugins.conda.test_filter_user_reqs_by_markers.TestCodePathCoverage
  ✅ test_acceptable_versions_empty_specific_version
  ✅ test_acceptable_versions_not_empty_with_range
  ✅ test_dep_type_not_conda_or_pypi
  ✅ test_no_semicolon_continue_path
  ✅ test_marker_false_continue_path
tests.plugins.conda.test_pick_conda_envs
  ✅ test_determine_env_type_for_step[from_env None, no package, returns CONDA_ONLY]
  ✅ test_determine_env_type_for_step[from_env None, package has conda]
  ✅ test_determine_env_type_for_step[from_env None, both pypi and conda packages present]
  ✅ test_determine_env_type_for_step[from_env not None, no package, no source0]
  ✅ test_determine_env_type_for_step[from_env not None, no package, no source1]
  ✅ test_determine_env_type_for_step[package and from_env are with the same env_type.0]
  ✅ test_determine_env_type_for_step[package and from_env are with the same env_type.1]
  ✅ test_determine_env_type_for_step[package-or-source and from_env are not with the same env_type0]
  ✅ test_determine_env_type_for_step[package-or-source and from_env are not with the same env_type1]
tests.plugins.conda.test_resolvers_unit
  ✅ test_resolver_class_registration
  ✅ test_resolver_get_conda_resolver
  ✅ test_resolver_get_mamba_resolver
  ✅ test_resolver_get_pip_resolver
  ✅ test_resolver_get_uv_resolver
  ✅ test_resolver_get_conda_lock_resolver
  ✅ test_resolver_get_pylock_toml_resolver
  ✅ test_resolver_get_builder_resolver
  ✅ test_resolver_get_invalid_resolver
  ✅ test_resolver_init
  ✅ test_resolver_resolve_not_implemented
  ✅ test_resolver_types
  ✅ test_resolver_requires_builder_env_flag
  ✅ test_conda_resolver_init
  ✅ test_conda_resolver_types
  ✅ test_pip_resolver_init
  ✅ test_pip_resolver_types
  ✅ test_pip_resolver_requires_builder
  ✅ test_conda_lock_resolver_init
  ✅ test_conda_lock_resolver_types
  ✅ test_pylock_toml_resolver_init
  ✅ test_pylock_toml_resolver_types
  ✅ test_builder_envs_resolver_init
  ✅ test_builder_envs_resolver_types
  ✅ test_resolver_registry_is_shared
  ✅ test_resolver_registry_contains_all_resolvers
  ✅ test_multiple_resolver_get_calls
  ✅ test_resolver_get_all_variants
  ✅ test_resolver_invalid_type_string
  ✅ test_get_resolver[Conda Resolver by env_type, file_paths whole entry missing]
  ✅ test_get_resolver[Conda Resolver by env_type, empty file_paths dict]
  ✅ test_get_resolver[Conda Resolver by env_type, file_paths dict doesn't contain pylocK_toml entry]
  ✅ test_get_resolver[Conda Resolver by env_type, file_paths dict's pylock_toml entry is empty list]
  ✅ test_get_resolver[Conda Resolver by env_type, file_paths dict's pylock_toml entry is not empty list]
  ✅ test_get_resolver[PYPI_ONLY env_type, file_paths dict's pylock_toml entry is empty list]
  ✅ test_get_resolver[Mixed env_type, file_paths dict's pylock_toml entry is empty list]
  ✅ test_get_resolver[Mixed by env_type, file_paths dict's pylock_toml entry is not empty list]
tests.plugins.conda.test_strip_url_credentials.TestStripUrlCredentials
  ✅ test_no_credentials
  ✅ test_user_and_password
  ✅ test_user_only
  ✅ test_preserves_port
  ✅ test_preserves_query_and_fragment
  ✅ test_file_url_unchanged
  ✅ test_empty_string
  ✅ test_git_plus_https
tests.plugins.conda.test_strip_url_credentials.TestSafeNetloc
  ✅ test_simple_host
  ✅ test_host_with_port
  ✅ test_credentials_stripped
  ✅ test_credentials_with_port_stripped
tests.plugins.conda.utils_test
  ✅ test_filter_packages_by_marker
  ✅ test_combined_marker_conditions[darwin_python_lt_311]
  ✅ test_combined_marker_conditions[darwin_python_lt_312]
  ✅ test_combined_marker_conditions[linux_python_lt_311_linux_no_match]
  ✅ test_combined_marker_conditions[platform_release_24]
  ✅ test_combined_marker_conditions[linux_python_lt_313]