* Add separate class for sftp file system * Add separate serial IO handling class * Replace function name mangling with gcode handler registration system * Add states to virtual Bambu printer that manage state specific interaction * Add synchronization utilities to work with virtual printer as if it is a binary stream * Add unittests with mocked Bambu printer to ensure core functionality works as expected * Fix formatting to be automatically processed by black formatter * Fix python 3.10 type annotations for readability
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from __future__ import annotations
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
|
|
from octoprint.util import get_formatted_size, get_formatted_datetime
|
|
from octoprint_bambu_printer.printer.file_system.bambu_timelapse_file_info import (
|
|
BambuTimelapseFileInfo,
|
|
)
|
|
from octoprint_bambu_printer.printer.file_system.file_info import FileInfo
|
|
|
|
|
|
def test_timelapse_info_valid():
|
|
file_name = "part.mp4"
|
|
file_size = 1000
|
|
file_date = datetime(2020, 1, 1)
|
|
file_timestamp = file_date.timestamp()
|
|
|
|
file_info = FileInfo(file_name, Path(file_name), file_size, file_date)
|
|
timelapse = BambuTimelapseFileInfo.from_file_info(file_info)
|
|
|
|
assert timelapse.to_dict() == {
|
|
"bytes": file_size,
|
|
"date": get_formatted_datetime(datetime.fromtimestamp(file_timestamp)),
|
|
"name": file_name,
|
|
"size": get_formatted_size(file_size),
|
|
"thumbnail": "/plugin/bambu_printer/thumbnail/"
|
|
+ file_name.replace(".mp4", ".jpg").replace(".avi", ".jpg"),
|
|
"timestamp": file_timestamp,
|
|
"url": f"/plugin/bambu_printer/timelapse/{file_name}",
|
|
}
|