test: Test replace_io file

This commit is contained in:
2024-09-17 18:24:16 +02:00
parent 24b50c2973
commit d2d37f4972
10 changed files with 179 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,22 @@
[test1]
replace=Output_19
frm=b
defaultvalue=255
byteorder=big
[r_bit0]
replace=Output_20
bmk=EinBit
frm=?
bit=0
[r_bit1]
replace=Output_20
frm=?
bit=1
defaultvalue=True
[r_bit5]
replace=Output_20
frm=?
bit=5

View File

@@ -0,0 +1,5 @@
[data_values]
replace = I_LiftData
frm = 200s
defaultvalue = 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

View File

@@ -0,0 +1,5 @@
[data_values]
replace = I_LiftData
frm = 200s
defaultvalue = 255 0 0 0 0 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

View File

@@ -0,0 +1,19 @@
[test1]
replace=Output_19
frm=h
[r_bit0]
replace=Output_20
frm=?
bit=0
[r_bit1]
replace=Output_20
frm=?
bit=1
defaultvalue=True
[r_bit5]
replace=Output_20
frm=?
bit=5

View File

@@ -0,0 +1,19 @@
[test1]
replace=Output_19
frm=b
[r_bit0]
replace=Output_20
frm=?
bit=True
[r_bit1]
replace=Output_20
frm=?
bit=1
defaultvalue=True
[r_bit5]
replace=Output_20
frm=?
bit=5

View File

@@ -0,0 +1,19 @@
[test1]
replace=Output_19
frm=c
[r_bit0]
replace=Output_20
frm=?
bit=0
[r_bit1]
replace=Output_20
frm=?
bit=1
defaultvalue=komisch
[r_bit5]
replace=Output_20
frm=?
bit=5

View File

@@ -0,0 +1,20 @@
[test1]
replace=Output_19
frm=c
defaultvalue=True
[r_bit0]
replace=Output_20
frm=?
bit=0
[r_bit1]
replace=Output_20
frm=?
bit=1
defaultvalue=True
[r_bit5]
replace=Output_20
frm=?
bit=5

View File

@@ -0,0 +1,4 @@
[test1
replace=Output_19
frm h

View File

@@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
"""Tests for replace io file."""
__author__ = "Sven Sager"
__copyright__ = "Copyright (C) 2024 Sven Sager"
__license__ = "GPLv2"
from os.path import join, dirname
from tests import TestRevPiModIO
class TestReplaceIO(TestRevPiModIO):
data_dir = dirname(__file__)
def test_replace_io_file(self):
replace_io_file = join(self.data_dir, "replace_io.conf")
rpi = self.modio(replace_io_file=replace_io_file)
self.assertEqual(rpi.replace_io_file, replace_io_file)
rpi.setdefaultvalues()
self.assertEqual(rpi.io.test1.value, -1)
self.assertFalse(rpi.io.r_bit0.value)
self.assertTrue(rpi.io.r_bit1.value)
self.assertFalse(rpi.io.r_bit5.value)
self.assertFalse("Output_19" in rpi.io)
self.assertEqual(rpi.io.test1.byteorder, "big")
self.assertEqual(rpi.io.r_bit0.byteorder, "little")
self.assertEqual(rpi.io.r_bit0.bmk, "EinBit")
with self.assertRaises(RuntimeError):
rpi.export_replaced_ios("/gehtnich/replace_io.conf")
with self.assertRaises(ValueError):
rpi.io.test1.export = 1
rpi.io.test1.export = True
rpi.io.Input_20.replace_io("byte_test", "3s", defaultvalue=b"\xff\x00\x80", export=True)
rpi.export_replaced_ios("/tmp/replace_io.conf")
del rpi
rpi = self.modio(replace_io_file="/tmp/replace_io.conf")
self.assertTrue(rpi.io.test1.export)
self.assertTrue(rpi.io.byte_test.export)
self.assertEqual(rpi.io.byte_test.defaultvalue, b"\xff\x00\x80")
def test_fb_replace_io_fail(self):
with self.assertRaises(RuntimeError):
rpi = self.modio(replace_io_file=join(self.data_dir, "replace_io_fail.conf"))
with self.assertRaises(RuntimeError):
rpi = self.modio(replace_io_file="no_file_nonono")
with self.assertRaises(RuntimeError):
rpi = self.modio(replace_io_file=join(self.data_dir, "replace_io_failformat.conf"))
with self.assertRaises(ValueError):
rpi = self.modio(
replace_io_file=join(self.data_dir, "replace_io_faildefaultvalue_bool.conf")
)
with self.assertRaises(ValueError):
rpi = self.modio(
replace_io_file=join(self.data_dir, "replace_io_faildefaultvalue_int.conf")
)
with self.assertRaises(ValueError):
rpi = self.modio(replace_io_file=join(self.data_dir, "replace_io_failbit_int.conf"))
with self.assertRaisesRegex(ValueError, r"defaultvalue to bytes"):
rpi = self.modio(replace_io_file=join(self.data_dir, "replace_io_bytes_fail.conf"))