From b6a62d123d6581771565e2577b740182dc62719c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Fri, 8 Dec 2023 12:36:26 +0100 Subject: [PATCH 1/3] Autoformat --- .vscode/settings.json | 5 +---- misc/render_rrd.py | 1 - misc/test_bleuart.py | 1 - srnemqtt/protocol.py | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f9808e9..1295ee6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,3 @@ { - "python.linting.mypyEnabled": true, - "python.formatting.provider": "black", - "editor.formatOnSave": true, - "python.linting.flake8Enabled": true + "editor.formatOnSave": true } diff --git a/misc/render_rrd.py b/misc/render_rrd.py index 2ca196e..769047b 100644 --- a/misc/render_rrd.py +++ b/misc/render_rrd.py @@ -147,7 +147,6 @@ def rrdupdate(file: str, timestamp: int, data: dict): def re_read(): - rrdtool.create( RRDFILE, # "--no-overwrite", diff --git a/misc/test_bleuart.py b/misc/test_bleuart.py index 1f28414..0d074d6 100644 --- a/misc/test_bleuart.py +++ b/misc/test_bleuart.py @@ -4,7 +4,6 @@ from srnemqtt.lib.feasycom_ble import BTLEUart from srnemqtt.protocol import construct_request, write with BTLEUart(MAC, timeout=1) as x: - print(x) write(x, construct_request(0x0E, words=3)) diff --git a/srnemqtt/protocol.py b/srnemqtt/protocol.py index 160da0b..8944ecd 100644 --- a/srnemqtt/protocol.py +++ b/srnemqtt/protocol.py @@ -84,7 +84,6 @@ def discardUntil(fh: RawIOBase, byte: int, timeout=10) -> Optional[int]: discarded = 0 read_byte = expand(fh.read(1)) while read_byte != byte: - if read_byte is not None: if not discarded: log("Discarding", end="") From 7977d89abf80126ae8996d9fafc10fb010c588b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Fri, 8 Dec 2023 13:45:05 +0100 Subject: [PATCH 2/3] mypy: ignore missing hints in external --- misc/render_rrd.py | 2 +- misc/test_serial.py | 2 +- misc/test_serial_loopback.py | 2 +- srnemqtt/__main__.py | 4 ++-- srnemqtt/interfaces/serial.py | 2 +- srnemqtt/lib/feasycom_ble.py | 2 +- srnemqtt/protocol.py | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/misc/render_rrd.py b/misc/render_rrd.py index 769047b..20d3553 100644 --- a/misc/render_rrd.py +++ b/misc/render_rrd.py @@ -5,7 +5,7 @@ from ast import literal_eval from collections import namedtuple from typing import Any, Dict -import rrdtool +import rrdtool # type: ignore from srnemqtt.solar_types import DataName diff --git a/misc/test_serial.py b/misc/test_serial.py index 7ea6505..49c6f11 100644 --- a/misc/test_serial.py +++ b/misc/test_serial.py @@ -3,7 +3,7 @@ import os import sys from time import sleep -from serial import Serial +from serial import Serial # type: ignore print(sys.path) sys.path.insert(1, os.path.dirname(os.path.dirname(sys.argv[0]))) diff --git a/misc/test_serial_loopback.py b/misc/test_serial_loopback.py index 3351171..590a14f 100644 --- a/misc/test_serial_loopback.py +++ b/misc/test_serial_loopback.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from serial import Serial +from serial import Serial # type: ignore with Serial("/dev/ttyUSB0", baudrate=9600, timeout=2) as x: x.write(b"Hello, World!") diff --git a/srnemqtt/__main__.py b/srnemqtt/__main__.py index 38d8058..339bd0e 100755 --- a/srnemqtt/__main__.py +++ b/srnemqtt/__main__.py @@ -5,8 +5,8 @@ import time from decimal import Decimal from typing import cast -from bluepy.btle import BTLEDisconnectError -from serial import SerialException +from bluepy.btle import BTLEDisconnectError # type: ignore +from serial import SerialException # type: ignore from .config import get_config, get_consumers, get_interface from .protocol import parse_battery_state, parse_historical_entry, try_read_parse diff --git a/srnemqtt/interfaces/serial.py b/srnemqtt/interfaces/serial.py index bee3ff6..82af005 100644 --- a/srnemqtt/interfaces/serial.py +++ b/srnemqtt/interfaces/serial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -import serial +import serial # type: ignore from . import BaseInterface diff --git a/srnemqtt/lib/feasycom_ble.py b/srnemqtt/lib/feasycom_ble.py index 2f7f262..63317c2 100644 --- a/srnemqtt/lib/feasycom_ble.py +++ b/srnemqtt/lib/feasycom_ble.py @@ -4,7 +4,7 @@ import queue import time from typing import TYPE_CHECKING, Optional, cast -from bluepy import btle +from bluepy import btle # type: ignore if TYPE_CHECKING: from _typeshed import ReadableBuffer, WriteableBuffer diff --git a/srnemqtt/protocol.py b/srnemqtt/protocol.py index 8944ecd..c8c2241 100644 --- a/srnemqtt/protocol.py +++ b/srnemqtt/protocol.py @@ -5,7 +5,7 @@ import time from io import RawIOBase from typing import Callable, Collection, Optional -from libscrc import modbus +from libscrc import modbus # type: ignore from .constants import ACTION_READ, POSSIBLE_MARKER from .lib.feasycom_ble import BTLEUart From 3c8942b4857156653d18b14508c606606f856860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Fri, 8 Dec 2023 13:45:38 +0100 Subject: [PATCH 3/3] Configure pytest --- .editorconfig | 3 +++ .vscode/settings.json | 9 +++++++-- tests/test_protocol.py | 11 +++++++++++ tox.ini | 4 ++++ 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 tests/test_protocol.py diff --git a/.editorconfig b/.editorconfig index dc806e6..d9c54e2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,3 +16,6 @@ indent_style = space [*.{yaml,yml,md}] indent_size = 2 + +[.vscode/*.json] +insert_final_newline = false diff --git a/.vscode/settings.json b/.vscode/settings.json index 1295ee6..2148ad5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,8 @@ { - "editor.formatOnSave": true -} + "editor.formatOnSave": true, + "pylint.args": [ + "--disable=missing-function-docstring,missing-class-docstring,missing-module-docstring" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file diff --git a/tests/test_protocol.py b/tests/test_protocol.py new file mode 100644 index 0000000..f375394 --- /dev/null +++ b/tests/test_protocol.py @@ -0,0 +1,11 @@ +from io import BytesIO + +from srnemqtt.protocol import write as protocol_write + + +def test_write(): + fh = BytesIO() + protocol_write(fh, b"Hello, World!") + fh.seek(0) + + assert fh.read() == b"Hello, World!\x4E\x11" diff --git a/tox.ini b/tox.ini index edfab12..8a5a3ef 100644 --- a/tox.ini +++ b/tox.ini @@ -1,3 +1,7 @@ [flake8] max-line-length = 88 extend-ignore = E203, I201, I101 + +[pytest] +pythonpath = . +testpaths = tests