diff --git a/multilang_translator/backend_controller/broadcaster_config.py b/multilang_translator/backend_controller/broadcaster_config.py index 7a8b259..4404aaa 100644 --- a/multilang_translator/backend_controller/broadcaster_config.py +++ b/multilang_translator/backend_controller/broadcaster_config.py @@ -87,9 +87,8 @@ def broadcaster_config(): log.info("\n".join(ret)) ret = write_to_serial_read_respone(serial_port, "nac show", timeout=0.1) - log.info("\n".join(ret)) - - - - + + ret_str = "\n".join(ret) + log.info(ret_str) + return ret_str diff --git a/multilang_translator/backend_controller/broadcaster_play_once.py b/multilang_translator/backend_controller/broadcaster_play_once.py index 0fb5dcd..9856ad8 100644 --- a/multilang_translator/backend_controller/broadcaster_play_once.py +++ b/multilang_translator/backend_controller/broadcaster_play_once.py @@ -5,13 +5,19 @@ import logging as log def broadcaster_play_file(broadcast_ch, file): serial_port = "/dev/ttyACM0" - ret = write_to_serial_read_respone(serial_port, f"nac file stream_close {broadcast_ch} 0 0", timeout=0.1) - time.sleep(0.5) - ret += "\n" - ret += write_to_serial_read_respone(serial_port, f"nac file select_play_once {file} {broadcast_ch} 0 0", timeout=0.1) - - ret_str = "\n".join(ret) - log.info(ret_str) + + for i in range(3): + ret = write_to_serial_read_respone(serial_port, f"nac file stream_close {broadcast_ch} 0 0", timeout=0.1) + time.sleep(0.5) + ret += "\n" + ret += write_to_serial_read_respone(serial_port, f"nac file select_play_once {file} {broadcast_ch} 0 0", timeout=0.1) + + ret_str = "\n".join(ret) + log.info(ret_str) + + if not "Failed" in ret: + log.info("Breaking after %s retries.", i) + break return ret_str \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index ce96860..8cbc7f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,5 +8,5 @@ version = '0.1' [tool.pytest.ini_options] addopts = [ - "--import-mode=importlib","--count=5","-s","-v" + "--import-mode=importlib","--count=1","-s","-v" ] \ No newline at end of file diff --git a/tests/test_backend.py b/tests/test_backend.py index db2eda0..857e87e 100644 --- a/tests/test_backend.py +++ b/tests/test_backend.py @@ -1,14 +1,32 @@ +import pytest import logging as log import time import os +import subprocess from multilang_translator.backend_controller.broadcaster_config import broadcaster_config from multilang_translator.backend_controller.broadcaster_play_once import broadcaster_play_file from multilang_translator.backend_controller.broadcaster_copy_files import copy_to_broadcaster +@pytest.fixture(scope="session") +def ft_reset_broadcaster(): + subprocess.run(["nrfjprog", "--reset", "-s", "1050109484"], check=True) + log.info("Resetting Broadcaster...") + time.sleep(2.) + +@pytest.fixture(scope="session") +def ft_configure_broadcaster(ft_reset_broadcaster): + log.info("Configuring Broadcaster...") + start = time.time() + ret = broadcaster_config() + log.info(f"Configuration took {round(time.time() - start, 3)} seconds") + assert "err" not in ret + assert "Failed" not in ret + yield ret + +def test_config_broadcaster(ft_configure_broadcaster): + ret = ft_configure_broadcaster -def test_config_broadcaster(): - broadcaster_config() def test_copy_to_broadcaster(): log.info("Current working directory is: " + os.getcwd()) @@ -18,17 +36,23 @@ def test_copy_to_broadcaster(): def test_play_files(): ret = broadcaster_play_file(0, 'announcement_de.lc3') + assert "err" not in ret + assert "Failed" not in ret + time.sleep(1) - ret += broadcaster_play_file(1, 'announcement_en.lc3') + ret = broadcaster_play_file(1, 'announcement_en.lc3') assert "err" not in ret assert "Failed" not in ret def test_copy_and_play(): copy_to_broadcaster('./tests/announcement_de.lc3') copy_to_broadcaster('./tests/announcement_en.lc3') + time.sleep(0.5) ret = broadcaster_play_file(0, 'announcement_de.lc3') - time.sleep(1) - ret += broadcaster_play_file(1, 'announcement_en.lc3') + assert "err" not in ret + assert "Failed" not in ret + time.sleep(.5) + ret = broadcaster_play_file(1, 'announcement_en.lc3') assert "err" not in ret assert "Failed" not in ret