mirror of
https://github.com/naruxde/revpimodio2.git
synced 2025-11-08 13:53:53 +01:00
test: Add RevPi Flat tests
This commit is contained in:
1
tests/flat/config_flat.rsc
Normal file
1
tests/flat/config_flat.rsc
Normal file
@@ -0,0 +1 @@
|
||||
{"App":{"name": "PiCtory", "version": "1.4.8","saveTS": "20210212181938","language": "en","layout": {"north":{"size":70,"initClosed":false,"initHidden":false},"south":{"size":285,"initClosed":false,"initHidden":false,"children":{"layout1":{"east":{"size":500,"initClosed":false,"initHidden":false}}}},"east":{"size":70,"initClosed":true,"initHidden":false,"children":{}},"west":{"size":200,"initClosed":false,"initHidden":false,"children":{"layout1":{}}}}},"Summary":{"inpTotal": 7,"outTotal": 5},"Devices":[{"GUID": "d8ded3e4-5b2b-3407-baa3-abbdde07e335","id": "device_RevPiFlat_20200921_1_0_001","type": "BASE","productType": "135","position": "0","name": "flat01","bmk": "RevPi Flat","inpVariant": 0,"outVariant": 0,"comment": "This is a RevPiFlat Device","offset": 0,"inp": {"0": ["AIn","0","16","0",true,"0000", "",""],"1": ["AIn_Status","0","8","2",false,"0001", "",""],"2": ["AOut_Status","0","8","3",false,"0002", "",""],"3": ["Core_Temperature","0","8","4",false,"0003", "",""],"4": ["Core_Frequency","0","8","5",false,"0004", "",""],"5": ["Top_Button","0","8","6",true,"0005", "",""]},"out": {"0": ["RevPiLED","0","16","7",true,"0006", "",""],"1": ["AOut","0","16","9",true,"0007", "",""],"2": ["DOut","0","8","11",true,"0008", "",""]},"mem": {"0": ["AInMode","0","8","12",false,"0009", "Select the type of analog input signal",""]},"extend": {}}],"Connections":[]}
|
||||
260
tests/flat/config_flat_bits.rsc
Normal file
260
tests/flat/config_flat_bits.rsc
Normal file
@@ -0,0 +1,260 @@
|
||||
{
|
||||
"App": {
|
||||
"name": "PiCtory",
|
||||
"version": "1.4.8",
|
||||
"saveTS": "20210212181938",
|
||||
"language": "en",
|
||||
"layout": {
|
||||
"north": {
|
||||
"size": 70,
|
||||
"initClosed": false,
|
||||
"initHidden": false
|
||||
},
|
||||
"south": {
|
||||
"size": 285,
|
||||
"initClosed": false,
|
||||
"initHidden": false,
|
||||
"children": {
|
||||
"layout1": {
|
||||
"east": {
|
||||
"size": 500,
|
||||
"initClosed": false,
|
||||
"initHidden": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"east": {
|
||||
"size": 70,
|
||||
"initClosed": true,
|
||||
"initHidden": false,
|
||||
"children": {}
|
||||
},
|
||||
"west": {
|
||||
"size": 200,
|
||||
"initClosed": false,
|
||||
"initHidden": false,
|
||||
"children": {
|
||||
"layout1": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Summary": {
|
||||
"inpTotal": 7,
|
||||
"outTotal": 5
|
||||
},
|
||||
"Devices": [
|
||||
{
|
||||
"GUID": "d8ded3e4-5b2b-3407-baa3-abbdde07e335",
|
||||
"id": "device_RevPiFlat_20200921_1_0_001",
|
||||
"type": "BASE",
|
||||
"productType": "135",
|
||||
"position": "0",
|
||||
"name": "flat01",
|
||||
"bmk": "RevPi Flat",
|
||||
"inpVariant": 0,
|
||||
"outVariant": 0,
|
||||
"comment": "This is a RevPiFlat Device",
|
||||
"offset": 0,
|
||||
"inp": {
|
||||
"0": [
|
||||
"AIn",
|
||||
"0",
|
||||
"16",
|
||||
"0",
|
||||
true,
|
||||
"0000",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"1": [
|
||||
"AIn_Status",
|
||||
"0",
|
||||
"8",
|
||||
"2",
|
||||
false,
|
||||
"0001",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"2": [
|
||||
"AOut_Status",
|
||||
"0",
|
||||
"8",
|
||||
"3",
|
||||
false,
|
||||
"0002",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"3": [
|
||||
"Core_Temperature",
|
||||
"0",
|
||||
"8",
|
||||
"4",
|
||||
false,
|
||||
"0003",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"4": [
|
||||
"Core_Frequency",
|
||||
"0",
|
||||
"8",
|
||||
"5",
|
||||
false,
|
||||
"0004",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"5": [
|
||||
"switch",
|
||||
"0",
|
||||
"1",
|
||||
"6",
|
||||
true,
|
||||
"0005",
|
||||
"",
|
||||
"0"
|
||||
]
|
||||
},
|
||||
"out": {
|
||||
"0": [
|
||||
"a1green",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0006",
|
||||
"",
|
||||
"0"
|
||||
],
|
||||
"1": [
|
||||
"a1red",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0007",
|
||||
"",
|
||||
"1"
|
||||
],
|
||||
"2": [
|
||||
"a2green",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0008",
|
||||
"",
|
||||
"2"
|
||||
],
|
||||
"3": [
|
||||
"a2red",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0009",
|
||||
"",
|
||||
"3"
|
||||
],
|
||||
"4": [
|
||||
"a3green",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0010",
|
||||
"",
|
||||
"4"
|
||||
],
|
||||
"5": [
|
||||
"a3red",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0011",
|
||||
"",
|
||||
"5"
|
||||
],
|
||||
"6": [
|
||||
"a4green",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0012",
|
||||
"",
|
||||
"6"
|
||||
],
|
||||
"7": [
|
||||
"a4red",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0013",
|
||||
"",
|
||||
"7"
|
||||
],
|
||||
"8": [
|
||||
"a5green",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0014",
|
||||
"",
|
||||
"8"
|
||||
],
|
||||
"9": [
|
||||
"a5red",
|
||||
"0",
|
||||
"1",
|
||||
"7",
|
||||
true,
|
||||
"0015",
|
||||
"",
|
||||
"9"
|
||||
],
|
||||
"10": [
|
||||
"AOut",
|
||||
"0",
|
||||
"16",
|
||||
"9",
|
||||
true,
|
||||
"0016",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"11": [
|
||||
"relais",
|
||||
"0",
|
||||
"1",
|
||||
"11",
|
||||
true,
|
||||
"0017",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"mem": {
|
||||
"0": [
|
||||
"AInMode",
|
||||
"0",
|
||||
"8",
|
||||
"12",
|
||||
false,
|
||||
"0009",
|
||||
"Select the type of analog input signal",
|
||||
""
|
||||
]
|
||||
},
|
||||
"extend": {}
|
||||
}
|
||||
],
|
||||
"Connections": []
|
||||
}
|
||||
94
tests/flat/test_flat.py
Normal file
94
tests/flat/test_flat.py
Normal file
@@ -0,0 +1,94 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Test RevPi Flat devices."""
|
||||
__author__ = "Sven Sager"
|
||||
__copyright__ = "Copyright (C) 2024 Sven Sager"
|
||||
__license__ = "GPLv2"
|
||||
|
||||
from os.path import dirname
|
||||
|
||||
import revpimodio2
|
||||
from tests import TestRevPiModIO
|
||||
|
||||
|
||||
class TestFlat(TestRevPiModIO):
|
||||
|
||||
data_dir = dirname(__file__)
|
||||
|
||||
def test_flat(self):
|
||||
rpi = self.modio(configrsc="config_flat.rsc")
|
||||
rpi.setdefaultvalues()
|
||||
|
||||
self.assertIsInstance(rpi.core, revpimodio2.device.Flat)
|
||||
|
||||
# FLAT LEDs prüfen
|
||||
rpi.core.A1 = revpimodio2.OFF
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x00\x00")
|
||||
self.assertEqual(rpi.core.A1, 0)
|
||||
rpi.core.A1 = revpimodio2.GREEN
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x01\x00")
|
||||
self.assertEqual(rpi.core.A1, 1)
|
||||
rpi.core.A1 = revpimodio2.RED
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x02\x00")
|
||||
self.assertEqual(rpi.core.A1, 2)
|
||||
with self.assertRaises(ValueError):
|
||||
rpi.core.A1 = 5
|
||||
|
||||
rpi.core.A2 = revpimodio2.OFF
|
||||
self.assertEqual(rpi.core.A2, 0)
|
||||
rpi.core.A2 = revpimodio2.GREEN
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x06\x00")
|
||||
self.assertEqual(rpi.core.A2, 1)
|
||||
rpi.core.A2 = revpimodio2.RED
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x0a\x00")
|
||||
self.assertEqual(rpi.core.A2, 2)
|
||||
with self.assertRaises(ValueError):
|
||||
rpi.core.A2 = 5
|
||||
|
||||
rpi.core.A3 = revpimodio2.OFF
|
||||
self.assertEqual(rpi.core.A3, 0)
|
||||
rpi.core.A3 = revpimodio2.GREEN
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x1a\x00")
|
||||
self.assertEqual(rpi.core.A3, 1)
|
||||
rpi.core.A3 = revpimodio2.RED
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x2a\x00")
|
||||
self.assertEqual(rpi.core.A3, 2)
|
||||
with self.assertRaises(ValueError):
|
||||
rpi.core.A3 = 5
|
||||
|
||||
rpi.core.A4 = revpimodio2.OFF
|
||||
self.assertEqual(rpi.core.A4, 0)
|
||||
rpi.core.A4 = revpimodio2.GREEN
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\x6a\x00")
|
||||
self.assertEqual(rpi.core.A4, 1)
|
||||
rpi.core.A4 = revpimodio2.RED
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\xaa\x00")
|
||||
self.assertEqual(rpi.core.A4, 2)
|
||||
with self.assertRaises(ValueError):
|
||||
rpi.core.A4 = 5
|
||||
|
||||
rpi.core.A5 = revpimodio2.OFF
|
||||
self.assertEqual(rpi.core.A5, 0)
|
||||
rpi.core.A5 = revpimodio2.GREEN
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\xaa\x01")
|
||||
self.assertEqual(rpi.core.A5, 1)
|
||||
rpi.core.A5 = revpimodio2.RED
|
||||
self.assertEqual(rpi.io.RevPiLED.get_value(), b"\xaa\x02")
|
||||
self.assertEqual(rpi.core.A5, 2)
|
||||
with self.assertRaises(ValueError):
|
||||
rpi.core.A5 = 5
|
||||
|
||||
# Spezielle Werte aufrufen
|
||||
self.assertIsInstance(rpi.core.temperature, int)
|
||||
self.assertIsInstance(rpi.core.frequency, int)
|
||||
rpi.core.wd_toggle()
|
||||
|
||||
# Directzuweisung nicht erlaubt
|
||||
with self.assertRaisesRegex(AttributeError, r"direct assignment is not supported"):
|
||||
rpi.core.a1green = True
|
||||
|
||||
rpi.exit()
|
||||
del rpi
|
||||
|
||||
# Bit piCtory config
|
||||
rpi = self.modio(configrsc="config_flat_bits.rsc")
|
||||
del rpi
|
||||
Reference in New Issue
Block a user