mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 13:53:53 +01:00
test: Add tests for RevPi Connect 5
This commit is contained in:
5
tests/revpi5/__init__.py
Normal file
5
tests/revpi5/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Init file for test group."""
|
||||
__author__ = "Sven Sager"
|
||||
__copyright__ = "Copyright (C) 2024 Sven Sager"
|
||||
__license__ = "GPLv2"
|
||||
1
tests/revpi5/config_connect5.rsc
Normal file
1
tests/revpi5/config_connect5.rsc
Normal file
@@ -0,0 +1 @@
|
||||
{"App":{"name": "PiCtory", "version": "2.10.0","saveTS": "20241108090523","language": "en","layout": {"north":{"size":70,"initClosed":false,"initHidden":false},"south":{"size":540,"initClosed":false,"initHidden":false,"children":{"layout1":{"east":{"size":500,"initClosed":false,"initHidden":false}}}},"east":{"size":70,"initClosed":true,"initHidden":false,"children":{}},"west":{"size":259,"initClosed":false,"initHidden":false,"children":{"layout1":{}}}}},"Summary":{"inpTotal": 6,"outTotal": 7},"Devices":[{"GUID": "df5a907c-3d82-1d32-4e5f-4c33fb41a559","id": "device_RevPiConnect5_20240315_1_0_001","type": "BASE","productType": "138","position": "0","name": "connect5","bmk": "RevPi Connect 5","inpVariant": 0,"outVariant": 0,"comment": "This is a RevPi Connect 5 Device","offset": 0,"inp": {"0": ["RevPiStatus","0","8","0",true,"0000", "",""],"1": ["RevPiIOCycle","0","8","1",true,"0001", "",""],"2": ["RS485ErrorCnt","0","16","2",false,"0002", "",""],"3": ["Core_Temperature","0","8","4",false,"0003", "",""],"4": ["Core_Frequency","0","8","5",false,"0004", "",""]},"out": {"0": ["RevPiReservedByte","","8","6",false,"0005", "",""],"1": ["RS485ErrorLimit1","10","16","7",false,"0006", "",""],"2": ["RS485ErrorLimit2","1000","16","9",false,"0007", "",""],"3": ["RevPiLED","0","16","11",true,"0008", "",""]},"mem": {},"extend": {}}],"Connections":[]}
|
||||
69
tests/revpi5/test_connect5.py
Normal file
69
tests/revpi5/test_connect5.py
Normal file
@@ -0,0 +1,69 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Tests for RevPi 5 devices."""
|
||||
__author__ = "Sven Sager"
|
||||
__copyright__ = "Copyright (C) 2024 Sven Sager"
|
||||
__license__ = "GPLv2"
|
||||
|
||||
from os.path import dirname
|
||||
|
||||
import revpimodio2
|
||||
from .. import TestRevPiModIO
|
||||
|
||||
|
||||
class TestRevPi5(TestRevPiModIO):
|
||||
|
||||
data_dir = dirname(__file__)
|
||||
|
||||
def test_connect5(self):
|
||||
rpi = self.modio(configrsc="config_connect5.rsc")
|
||||
rpi.setdefaultvalues()
|
||||
|
||||
self.assertIsInstance(rpi.core, revpimodio2.device.Connect5)
|
||||
|
||||
# Test all LED (A1 - A5) with all colors
|
||||
lst_led_test = [
|
||||
(rpi.core._get_leda1, rpi.core._set_leda1),
|
||||
(rpi.core._get_leda2, rpi.core._set_leda2),
|
||||
(rpi.core._get_leda3, rpi.core._set_leda3),
|
||||
(rpi.core._get_leda4, rpi.core._set_leda4),
|
||||
(rpi.core._get_leda5, rpi.core._set_leda5),
|
||||
]
|
||||
for i in range(len(lst_led_test)):
|
||||
get_led = lst_led_test[i][0]
|
||||
set_led = lst_led_test[i][1]
|
||||
for k in (
|
||||
(revpimodio2.GREEN, 2),
|
||||
(revpimodio2.RED, 1),
|
||||
(revpimodio2.BLUE, 4),
|
||||
(revpimodio2.ORANGE, 3),
|
||||
(revpimodio2.MAGENTA, 5), # Switched GR bit
|
||||
(revpimodio2.WHITE, 7),
|
||||
(revpimodio2.CYAN, 6), # Switched GR bit
|
||||
(revpimodio2.OFF, 0),
|
||||
):
|
||||
set_led(k[0])
|
||||
self.assertEqual(
|
||||
rpi.io.RevPiLED.get_value(),
|
||||
(k[1] << (i * 3)).to_bytes(2, "little"),
|
||||
)
|
||||
self.assertEqual(get_led(), k[0])
|
||||
with self.assertRaises(ValueError):
|
||||
set_led(8)
|
||||
|
||||
self.assertIsInstance(rpi.core.temperature, int)
|
||||
self.assertIsInstance(rpi.core.frequency, int)
|
||||
|
||||
with self.assertRaises(NotImplementedError):
|
||||
rpi.core.wd_toggle()
|
||||
|
||||
with self.assertRaisesRegex(AttributeError, r"direct assignment is not supported"):
|
||||
rpi.core.a5green = True
|
||||
|
||||
# Connect 5 has no IOs build in
|
||||
with self.assertRaises(AttributeError):
|
||||
output = rpi.core.x2out.value
|
||||
with self.assertRaises(AttributeError):
|
||||
rpi.core.x2in.value = True
|
||||
|
||||
rpi.exit()
|
||||
del rpi
|
||||
Reference in New Issue
Block a user