Files
KX-Bridge-Release/tests/test_moonraker.py

78 lines
2.1 KiB
Python

"""
Tests für Moonraker-kompatible Endpunkte die OrcaSlicer aufruft.
"""
import pytest
@pytest.mark.asyncio
async def test_server_info(client):
c, _ = client
resp = await c.get("/server/info")
assert resp.status == 200
data = await resp.json()
assert data["result"]["klippy_state"] in ("ready", "standby", "error")
@pytest.mark.asyncio
async def test_printer_info(client):
c, _ = client
resp = await c.get("/printer/info")
assert resp.status == 200
data = await resp.json()
assert "hostname" in data["result"]
@pytest.mark.asyncio
async def test_objects_list(client):
c, _ = client
resp = await c.get("/printer/objects/list")
assert resp.status == 200
data = await resp.json()
objects = data["result"]["objects"]
# OrcaSlicer erwartet mindestens diese Objekte
for obj in ("print_stats", "heater_bed", "extruder", "display_status"):
assert obj in objects
@pytest.mark.asyncio
async def test_objects_query_print_stats(client):
c, _ = client
resp = await c.get("/printer/objects/query?print_stats")
assert resp.status == 200
data = await resp.json()
ps = data["result"]["status"]["print_stats"]
assert "state" in ps
assert "filename" in ps
assert "print_duration" in ps
@pytest.mark.asyncio
async def test_objects_query_temperatures(client):
c, _ = client
resp = await c.get("/printer/objects/query?extruder&heater_bed")
assert resp.status == 200
data = await resp.json()
status = data["result"]["status"]
assert "temperature" in status["extruder"]
assert "temperature" in status["heater_bed"]
@pytest.mark.asyncio
async def test_octoprint_version(client):
"""OrcaSlicer probt /api/version um Drucker-Typ zu erkennen."""
c, _ = client
resp = await c.get("/api/version")
assert resp.status == 200
data = await resp.json()
assert "server" in data
assert "api" in data
@pytest.mark.asyncio
async def test_files_list(client):
c, _ = client
resp = await c.get("/server/files/list")
assert resp.status == 200
data = await resp.json()
assert isinstance(data["result"], list)