Fix remote sd card mocks.

This commit is contained in:
Anton Skrypnyk 2024-07-24 17:15:46 +03:00
parent 07f601694d
commit 06c9d68390
2 changed files with 23 additions and 8 deletions

View File

@ -78,9 +78,7 @@ class RemoteSDCardFileList:
existing_files.append(file_info.file_name) existing_files.append(file_info.file_name)
def _get_existing_files_info(self): def _get_existing_files_info(self):
host = self._settings.get(["host"]) ftp = self._connect_ftps_server()
access_code = self._settings.get(["access_code"])
ftp = IoTFTPSClient(str(host), 990, "bblp", str(access_code), ssl_implicit=True)
all_files_info: list[FileInfo] = [] all_files_info: list[FileInfo] = []
existing_files = [] existing_files = []
@ -95,6 +93,12 @@ class RemoteSDCardFileList:
return all_files_info return all_files_info
def _connect_ftps_server(self):
host = self._settings.get(["host"])
access_code = self._settings.get(["access_code"])
ftp = IoTFTPSClient(str(host), 990, "bblp", str(access_code), ssl_implicit=True)
return ftp
def _get_file_data(self, file_path: str) -> FileInfo | None: def _get_file_data(self, file_path: str) -> FileInfo | None:
self._logger.debug(f"_getSdFileData: {file_path}") self._logger.debug(f"_getSdFileData: {file_path}")
file_name = Path(file_path).name.lower() file_name = Path(file_path).name.lower()

View File

@ -1,15 +1,20 @@
from __future__ import annotations from __future__ import annotations
from collections.abc import Callable
from datetime import datetime, timezone from datetime import datetime, timezone
import logging import logging
from pathlib import Path from pathlib import Path
import time import time
from typing import Any
import unittest import unittest
from unittest.mock import MagicMock from unittest.mock import MagicMock
import unittest.mock import unittest.mock
from octoprint_bambu_printer.bambu_print_plugin import BambuPrintPlugin from octoprint_bambu_printer.bambu_print_plugin import BambuPrintPlugin
from octoprint_bambu_printer.printer.bambu_virtual_printer import BambuVirtualPrinter from octoprint_bambu_printer.printer.bambu_virtual_printer import BambuVirtualPrinter
from octoprint_bambu_printer.printer.remote_sd_card_file_list import FileInfo from octoprint_bambu_printer.printer.remote_sd_card_file_list import (
FileInfo,
RemoteSDCardFileList,
)
from octoprint_bambu_printer.printer.states.idle_state import IdleState from octoprint_bambu_printer.printer.states.idle_state import IdleState
from octoprint_bambu_printer.printer.states.paused_state import PausedState from octoprint_bambu_printer.printer.states.paused_state import PausedState
from octoprint_bambu_printer.printer.states.print_finished_state import ( from octoprint_bambu_printer.printer.states.print_finished_state import (
@ -33,11 +38,11 @@ def log_test():
class DictGetter: class DictGetter:
def __init__(self, options: dict) -> None: def __init__(self, options: dict) -> None:
self._options = options self._options: dict[str | tuple[str, ...], Any] = options
def __call__(self, key: str | list[str]): def __call__(self, key: str | list[str] | tuple[str, ...]):
if isinstance(key, list): if isinstance(key, list):
key = "_".join(key) key = tuple(key)
return self._options.get(key, None) return self._options.get(key, None)
@ -96,13 +101,19 @@ def ftps_session_mock(files_info_ftp):
) )
all_files = list(files_info_ftp.keys()) all_files = list(files_info_ftp.keys())
ftps_client_mock.list_files.side_effect = DictGetter( file_registry = DictGetter(
{ {
("", ".3mf"): all_files, ("", ".3mf"): all_files,
("cache/", ".3mf"): [f"cache/{file}" for file in all_files], ("cache/", ".3mf"): [f"cache/{file}" for file in all_files],
} }
) )
ftps_client_mock.list_files.side_effect = lambda folder, ext: file_registry(
(folder, ext)
)
ftps_client_mock.ftps_session = ftps_session ftps_client_mock.ftps_session = ftps_session
RemoteSDCardFileList._connect_ftps_server = MagicMock(
return_value=ftps_client_mock
)
yield yield