Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/2856.feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
When only a single option is available in a selection prompt, it is automatically selected as the default.
2 changes: 2 additions & 0 deletions src/briefcase/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -1073,6 +1073,8 @@ def selection_question(
self.prompt()

choices = [str(index) for index in range(1, len(ordered) + 1)]
if len(ordered) == 1:
default = "1"
index = self.input_selection(
prompt=f"{description} [{default}]: " if default else f"{description}: ",
choices=choices,
Expand Down
19 changes: 19 additions & 0 deletions tests/console/Console/test_selection_question.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,25 @@ def test_selection_question_default(console, index, default):
assert result == default


def test_selection_question_single_option_default(console):
# Return an empty response when prompted as though the user press entered
console.values = [""]

options = {"first": "The first option"}

result = console.selection_question(
description="Test",
intro="This is a test",
options=options,
)

# Input is requested once
assert console.prompts == ["Test [1]: "]

# The default single option is returned
assert result == "first"


def test_override_used(console, capsys):
"""The override is used if valid."""
override_value = "value"
Expand Down
Loading