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
2 changes: 1 addition & 1 deletion ledsa/core/parser_arguments_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def run_data_extraction_arguments(args: argparse.Namespace) -> None:
if len(channels) == 0:
channels.append(0)

if args.red or args.green or args.blue or args.rgb and not args.step_3_fast:
if (args.red or args.green or args.blue or args.rgb) and not args.step_3_fast:
args.step_3 = True

if args.step_1 or args.step_2:
Expand Down
34 changes: 34 additions & 0 deletions ledsa/tests/UnitTests/test_parser_arguments_run.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""Channel flags select the requested step 3 mode without a second analysis."""
import argparse
from unittest.mock import Mock

import pytest

from ledsa.core.parser_arguments_declaration import add_parser_arguments_data_extraction
from ledsa.core import parser_arguments_run


@pytest.mark.parametrize('flags, channels', [
(['-r'], [0]),
(['-g'], [1]),
(['-b'], [2]),
(['-rgb'], [0, 1, 2]),
(['-r', '-b'], [0, 2]),
])
@pytest.mark.parametrize('fast', [False, True])
def test_channel_flags_run_step_three_once(tmp_path, monkeypatch, flags, channels, fast):
monkeypatch.chdir(tmp_path)
(tmp_path / 'config.ini').touch()
extractor = Mock()
monkeypatch.setattr(parser_arguments_run, 'DataExtractor', extractor)
parser = add_parser_arguments_data_extraction(argparse.ArgumentParser())
args = parser.parse_args(flags + (['-s3_fast'] if fast else []))

parser_arguments_run.run_data_extraction_arguments(args)

kwargs = {'build_experiment_infos': True, 'channels': channels}
if fast:
kwargs['fit_leds'] = False
extractor.assert_called_once_with(**kwargs)
extractor.return_value.setup_step3.assert_called_once_with()
extractor.return_value.process_image_data.assert_called_once_with()