fix: strip credentials from URLs to prevent leaking auth tokens#78
Closed
npow wants to merge 4 commits into
Closed
fix: strip credentials from URLs to prevent leaking auth tokens#78npow wants to merge 4 commits into
npow wants to merge 4 commits into
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
✅ 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]
Loading