Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
coderai
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexlab
coderai
Commits
c38980c4
Commit
c38980c4
authored
May 06, 2026
by
Stefy Lanza (nextime / spora )
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: align multimodal client override semantics
parent
64177c2d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
5 deletions
+31
-5
test_manual_multimodal_test_client.py
tests/test_manual_multimodal_test_client.py
+27
-0
manual_multimodal_test_client.py
tools/manual_multimodal_test_client.py
+4
-5
No files found.
tests/test_manual_multimodal_test_client.py
View file @
c38980c4
...
@@ -39,6 +39,15 @@ def test_parse_args_leaves_mode_empty_for_interactive_fallback():
...
@@ -39,6 +39,15 @@ def test_parse_args_leaves_mode_empty_for_interactive_fallback():
assert
args
.
mode
is
None
assert
args
.
mode
is
None
def
test_parse_args_rejects_generic_file_argument
():
try
:
parse_args
([
"llm"
,
"--file"
,
"sample.dat"
])
except
SystemExit
as
exc
:
assert
exc
.
code
==
2
else
:
raise
AssertionError
(
"parse_args accepted deprecated --file argument"
)
def
test_resolve_mode_config_uses_mode_defaults_when_overrides_absent
(
tmp_path
):
def
test_resolve_mode_config_uses_mode_defaults_when_overrides_absent
(
tmp_path
):
args
=
parse_args
([
"audio-generation"
,
"--output-dir"
,
str
(
tmp_path
)])
args
=
parse_args
([
"audio-generation"
,
"--output-dir"
,
str
(
tmp_path
)])
...
@@ -91,3 +100,21 @@ def test_resolve_mode_config_prefers_explicit_model_prompt_url_and_response_form
...
@@ -91,3 +100,21 @@ def test_resolve_mode_config_prefers_explicit_model_prompt_url_and_response_form
assert
config
[
"prompt"
]
==
"Custom prompt"
assert
config
[
"prompt"
]
==
"Custom prompt"
assert
config
[
"response_format"
]
==
"b64_json"
assert
config
[
"response_format"
]
==
"b64_json"
assert
config
[
"output_dir"
]
==
tmp_path
assert
config
[
"output_dir"
]
==
tmp_path
def
test_resolve_mode_config_keeps_explicit_empty_string_overrides
(
tmp_path
):
args
=
parse_args
([
"video-generation"
,
"--model"
,
""
,
"--audio-file"
,
""
,
"--video-file"
,
""
,
"--response-format"
,
""
,
"--output-dir"
,
str
(
tmp_path
),
])
config
=
resolve_mode_config
(
args
,
selected_mode
=
"video-generation"
)
assert
config
[
"model"
]
==
""
assert
config
[
"audio_file"
]
==
""
assert
config
[
"video_file"
]
==
""
assert
config
[
"response_format"
]
==
""
tools/manual_multimodal_test_client.py
View file @
c38980c4
...
@@ -56,7 +56,6 @@ def build_parser() -> argparse.ArgumentParser:
...
@@ -56,7 +56,6 @@ def build_parser() -> argparse.ArgumentParser:
parser
.
add_argument
(
"--prompt"
,
default
=
None
)
parser
.
add_argument
(
"--prompt"
,
default
=
None
)
parser
.
add_argument
(
"--response-format"
,
default
=
None
)
parser
.
add_argument
(
"--response-format"
,
default
=
None
)
parser
.
add_argument
(
"--output-dir"
,
default
=
"tmp/manual-client-output"
)
parser
.
add_argument
(
"--output-dir"
,
default
=
"tmp/manual-client-output"
)
parser
.
add_argument
(
"--file"
,
default
=
None
)
parser
.
add_argument
(
"--audio-file"
,
default
=
None
)
parser
.
add_argument
(
"--audio-file"
,
default
=
None
)
parser
.
add_argument
(
"--video-file"
,
default
=
None
)
parser
.
add_argument
(
"--video-file"
,
default
=
None
)
return
parser
return
parser
...
@@ -72,12 +71,12 @@ def resolve_mode_config(args: argparse.Namespace, selected_mode: str) -> dict:
...
@@ -72,12 +71,12 @@ def resolve_mode_config(args: argparse.Namespace, selected_mode: str) -> dict:
"mode"
:
selected_mode
,
"mode"
:
selected_mode
,
"url"
:
args
.
url
.
rstrip
(
"/"
),
"url"
:
args
.
url
.
rstrip
(
"/"
),
"token"
:
args
.
token
,
"token"
:
args
.
token
,
"model"
:
args
.
model
or
defaults
.
get
(
"model"
),
"model"
:
args
.
model
if
args
.
model
is
not
None
else
defaults
.
get
(
"model"
),
"prompt"
:
args
.
prompt
if
args
.
prompt
is
not
None
else
defaults
.
get
(
"prompt"
),
"prompt"
:
args
.
prompt
if
args
.
prompt
is
not
None
else
defaults
.
get
(
"prompt"
),
"output_dir"
:
Path
(
args
.
output_dir
),
"output_dir"
:
Path
(
args
.
output_dir
),
"audio_file"
:
args
.
audio_file
or
defaults
.
get
(
"audio_file"
),
"audio_file"
:
args
.
audio_file
if
args
.
audio_file
is
not
None
else
defaults
.
get
(
"audio_file"
),
"video_file"
:
args
.
video_file
or
defaults
.
get
(
"video_file"
),
"video_file"
:
args
.
video_file
if
args
.
video_file
is
not
None
else
defaults
.
get
(
"video_file"
),
"response_format"
:
args
.
response_format
or
defaults
.
get
(
"response_format"
),
"response_format"
:
args
.
response_format
if
args
.
response_format
is
not
None
else
defaults
.
get
(
"response_format"
),
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment