New guided check "Sensor data in the database (InfluxDB)", also the last step of the Quick check on the green path. It queries InfluxDB (read token) for the newest point per measurement of the box and tells apart: sensor data arrives / status arrives without sensor data / offline now / never seen / check not possible. Polls every 30 s for up to 4 minutes. With a stopped RTC in the log it concludes that sensor readings are lost (stamped 1 Jan 2000): box A4:CB:8F:C9:47:3C sent only device_status and microphone. - service/influx.py: query, CSV parsing, classification (no new deps) - guides: new step type "influx" (host answers via influx_result) - Settings > InfluxDB access (or KOTA_INFLUX_TOKEN); token never logged - service status mapping for tech.influx.* findings Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
822 B
Python
22 lines
822 B
Python
"""The whole window builds (catches errors that only show when the app starts)."""
|
|
|
|
import os
|
|
|
|
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
|
|
|
|
|
|
def test_main_window_builds_with_all_tabs():
|
|
from PySide6.QtWidgets import QApplication
|
|
|
|
from kota_tech.ui.main_window import MainWindow
|
|
app = QApplication.instance() or QApplication([])
|
|
w = MainWindow()
|
|
tabs = w.centralWidget()
|
|
assert [tabs.tabText(i) for i in range(tabs.count())] == \
|
|
["Quick start", "Serial monitor", "Flash firmware", "Wi-Fi (USB)", "SD card"]
|
|
assert not w.wifi_tab.write_btn.isEnabled() # nothing connected, nothing typed
|
|
settings = [a.text() for m in w.menuBar().actions() for a in m.menu().actions()]
|
|
assert "InfluxDB access..." in settings
|
|
w.serial_tab.shutdown()
|
|
app.processEvents()
|