File tree Expand file tree Collapse file tree 2 files changed +47
-2
lines changed
lib/dependabot/uv/file_updater
spec/dependabot/uv/file_updater Expand file tree Collapse file tree 2 files changed +47
-2
lines changed Original file line number Diff line number Diff line change @@ -285,7 +285,13 @@ def run_update_command
285285 options_fingerprint = lock_options_fingerprint ( options )
286286
287287 # Use pyenv exec to ensure we're using the correct Python environment
288- command = "pyenv exec uv lock --upgrade-package #{ T . must ( dependency ) . name } #{ options } "
288+ # Include the target version to respect ignore conditions and avoid upgrading
289+ # to the absolute latest version (which may be blocked by ignore rules)
290+ dep_name = T . must ( dependency ) . name
291+ dep_version = T . must ( dependency ) . version
292+ package_spec = dep_version ? "#{ dep_name } ==#{ dep_version } " : dep_name
293+
294+ command = "pyenv exec uv lock --upgrade-package #{ package_spec } #{ options } "
289295 fingerprint = "pyenv exec uv lock --upgrade-package <dependency_name> #{ options_fingerprint } "
290296
291297 run_command ( command , fingerprint :)
Original file line number Diff line number Diff line change 382382 end
383383
384384 it "includes the expected options in the command and fingerprint" do
385- expected_command = "pyenv exec uv lock --upgrade-package requests " \
385+ expected_command = "pyenv exec uv lock --upgrade-package requests==2.23.0 " \
386386 "--index https://[email protected] /simple " \
387387 "--default-index https://[email protected] /simple" 388388 expected_fingerprint = "pyenv exec uv lock --upgrade-package <dependency_name> " \
396396 fingerprint : expected_fingerprint
397397 )
398398 end
399+
400+ context "when dependency version is nil" do
401+ let ( :dependency ) do
402+ Dependabot ::Dependency . new (
403+ name : "requests" ,
404+ version : nil ,
405+ requirements : [ {
406+ file : "pyproject.toml" ,
407+ requirement : ">=2.31.0" ,
408+ groups : [ ] ,
409+ source : nil
410+ } ] ,
411+ previous_requirements : [ {
412+ file : "pyproject.toml" ,
413+ requirement : ">=2.31.0" ,
414+ groups : [ ] ,
415+ source : nil
416+ } ] ,
417+ previous_version : nil ,
418+ package_manager : "uv"
419+ )
420+ end
421+
422+ it "uses only the package name without version constraint" do
423+ expected_command = "pyenv exec uv lock --upgrade-package requests " \
424+ "--index https://[email protected] /simple " \
425+ "--default-index https://[email protected] /simple" 426+ expected_fingerprint = "pyenv exec uv lock --upgrade-package <dependency_name> " \
427+ "--index <index> " \
428+ "--default-index <default_index>"
429+
430+ run_update_command
431+
432+ expect ( updater ) . to have_received ( :run_command ) . with (
433+ expected_command ,
434+ fingerprint : expected_fingerprint
435+ )
436+ end
437+ end
399438 end
400439
401440 describe "#replace_dep" do
You can’t perform that action at this time.
0 commit comments