Skip to content
Snippets Groups Projects
Commit 40c6c715 authored by Corné Lukken's avatar Corné Lukken
Browse files

L2SS-876: Update antennafield integration tests

parent 7e0cc2d2
No related branches found
No related tags found
1 merge request!408L2SS-876: Get current RECV values before updating through antennafield
......@@ -19,12 +19,14 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
def setUp(self):
super().setUp("STAT/AntennaField/1")
self.proxy.put_property({"RECV_devices": ["STAT/RECV/1"],
"Power_to_RECV_mapping": [1, 1, 1, 0] + [-1] * 92})
self.proxy.put_property({
"RECV_devices": ["STAT/RECV/1"],
"Power_to_RECV_mapping": [1, 1, 1, 0] + [-1] * 92
})
self.recv_proxy = self.setup_recv_proxy()
self.addCleanup(self.restore_antennafield)
self.addCleanup(self.shutdown_recv, self.recv_proxy)
self.addCleanup(self.shutdown_recv)
def restore_antennafield(self):
self.proxy.put_property({
......@@ -34,7 +36,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
})
@staticmethod
def shutdown_recv(recv_proxy):
def shutdown_recv():
recv_proxy = TestDeviceProxy("STAT/RECV/1")
recv_proxy.off()
......@@ -54,58 +56,112 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
""" Verify if ANT_mask_RW values are correctly configured from Antenna_Usage_Mask values"""
antennafield_proxy = self.proxy
numpy.testing.assert_equal(numpy.array([True] * 96), self.recv_proxy.ANT_mask_RW)
numpy.testing.assert_equal(
numpy.array([True] * 96), self.recv_proxy.ANT_mask_RW
)
antenna_qualities = numpy.array([AntennaQuality.OK] * 96)
antenna_use = numpy.array([AntennaUse.ON] + [AntennaUse.AUTO] * 95)
antenna_properties = {'Antenna_Quality': antenna_qualities, 'Antenna_Use': antenna_use}
mapping_properties = {"RECV_devices": ["STAT/RECV/1"],
"Power_to_RECV_mapping": [-1, -1] * 48,
"Control_to_RECV_mapping": [1, 0 , 1, 1] + [-1, -1] * 46}
antenna_properties = {
'Antenna_Quality': antenna_qualities, 'Antenna_Use': antenna_use
}
mapping_properties = {
"RECV_devices": ["STAT/RECV/1"],
"Power_to_RECV_mapping": [-1, -1] * 48,
# Two inputs of recv device connected, only defined for 48 inputs
# each pair is one input
"Control_to_RECV_mapping": [1, 0 , 1, 1] + [-1, -1] * 46
}
antennafield_proxy.off()
antennafield_proxy.put_property(antenna_properties)
antennafield_proxy.put_property(mapping_properties)
antennafield_proxy.boot() # initialise hardware values as well
numpy.testing.assert_equal(numpy.array([True] * 96), antennafield_proxy.Antenna_Usage_Mask_R)
numpy.testing.assert_equal(numpy.array([True] * 2 + [False] * 46), antennafield_proxy.ANT_mask_RW)
numpy.testing.assert_equal(numpy.array([True] * 2 + [False] * 46 + [False] * 48), self.recv_proxy.ANT_mask_RW)
antennafield_proxy.boot() # initialises hardware values as well
# Verify all antennas are indicated to work
numpy.testing.assert_equal(
numpy.array([True] * 96), antennafield_proxy.Antenna_Usage_Mask_R
)
# Verify only connected inputs + Antenna_Usage_Mask_R are true
# As well as dimensions of ANT_mask_RW must match control mapping
numpy.testing.assert_equal(
numpy.array([True] * 2 + [False] * 46),
antennafield_proxy.ANT_mask_RW
)
# Verify recv proxy values unaffected as default for ANT_mask_RW is true
numpy.testing.assert_equal(
numpy.array([True] * 2 + [True] * 94),
self.recv_proxy.ANT_mask_RW
)
def test_ANT_mask_RW_configured_after_Antenna_Usage_Mask_only_one_functioning_antenna(self):
"""Verify if ANT_mask_RW values are correctly configured from Antenna_Usage_Mask values (only second antenna is OK)"""
antennafield_proxy = self.proxy
# Broken antennas except second
antenna_qualities = numpy.array([AntennaQuality.BROKEN] + [AntennaQuality.OK] + [AntennaQuality.BROKEN] * 94)
antenna_use = numpy.array([AntennaUse.AUTO] * 96)
antenna_properties = {'Antenna_Quality': antenna_qualities, 'Antenna_Use': antenna_use}
mapping_properties = {"RECV_devices": ["STAT/RECV/1"],
"Power_to_RECV_mapping": [-1, -1] * 48,
"Control_to_RECV_mapping": [1, 0 , 1, 1] + [-1, -1] * 46}
antenna_properties = {
'Antenna_Quality': antenna_qualities, 'Antenna_Use': antenna_use
}
# Configure control mapping to control all 96 inputs of recv device
mapping_properties = {
"RECV_devices": ["STAT/RECV/1"],
"Power_to_RECV_mapping": [-1, -1] * 48,
"Control_to_RECV_mapping":
# [1, 0, 1, 1, 1, 2, 1, x ... 1, 95]
numpy.array([[1, x] for x in range(0, 96)]).flatten()
}
# Cycle device and set properties
antennafield_proxy.off()
antennafield_proxy.put_property(antenna_properties)
antennafield_proxy.put_property(mapping_properties)
antennafield_proxy.boot() # initialise hardware values as well
numpy.testing.assert_equal(numpy.array([False] + [True] + [False] * 94), antennafield_proxy.Antenna_Usage_Mask_R)
numpy.testing.assert_equal(numpy.array([False] + [True] + [False] * 46), antennafield_proxy.ANT_mask_RW)
numpy.testing.assert_equal(numpy.array([False] + [True] + [False] * 46 + [False] * 48), self.recv_proxy.ANT_mask_RW)
antennafield_proxy.boot() # initialises hardware values as well
# Antenna_Usage_Mask_R should be false except one
numpy.testing.assert_equal(
numpy.array([False] + [True] + [False] * 94),
antennafield_proxy.Antenna_Usage_Mask_R
)
# device.boot() writes Antenna_Usage_Mask_R to ANT_mask_RW
numpy.testing.assert_equal(
numpy.array([False] + [True] + [False] * 94),
antennafield_proxy.ANT_mask_RW
)
# ANT_mask_RW on antennafield writes to configured recv devices for all
# mapped inputs
numpy.testing.assert_equal(
numpy.array([False] + [True] + [False] * 94),
self.recv_proxy.ANT_mask_RW
)
def test_antennafield_set_mapped_attribute_ignore_all(self):
"""Verify RECV device attribute unaffected by antennafield if not mapped"""
# Connect recv/1 device but no control inputs
mapping_properties = {
"RECV_devices": ["STAT/RECV/1"],
"HBAT_Power_to_RECV_mapping": [-1, -1] * 48,
"HBAT_Control_to_RECV_mapping": [-1, -1] * 48
"Power_to_RECV_mapping": [-1, -1] * 48,
"Control_to_RECV_mapping": [-1, -1] * 48
}
# Cycle device an put properties
antennafield_proxy = self.proxy
antennafield_proxy.off()
antennafield_proxy.put_property(mapping_properties)
antennafield_proxy.boot()
# Set HBAT_PWR_on_RW to false on recv device and read results
self.recv_proxy.write_attribute("HBAT_PWR_on_RW", [[False] * 32] * 96)
current_values = self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value
# write true through antennafield
antennafield_proxy.write_attribute("HBAT_PWR_on_RW", [[True] * 32] * 48)
# Test that original recv values for HBAT_PWR_on_RW match current
numpy.testing.assert_equal(
current_values,
self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value
......@@ -119,9 +175,9 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
mapping_properties = {
"RECV_devices": ["STAT/RECV/1"],
"HBAT_Power_to_RECV_mapping": [-1, -1] * 48,
"Power_to_RECV_mapping": [-1, -1] * 48,
# Each pair is one mapping so 2 inputs are connected
"HBAT_Control_to_RECV_mapping": [1, 0, 1, 1] + [-1, -1] * 46
"Control_to_RECV_mapping": [1, 0, 1, 1] + [-1, -1] * 46
}
antennafield_proxy = self.proxy
......@@ -140,7 +196,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value
)
finally:
# Always disable recv again
# Always restore recv again
self.recv_proxy.write_attribute(
"HBAT_PWR_on_RW", [[False] * 32] * 96
)
......@@ -153,8 +209,8 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
mapping_properties = {
"RECV_devices": ["STAT/RECV/1"],
"HBAT_Power_to_RECV_mapping": [-1, -1] * 48,
"HBAT_Control_to_RECV_mapping":
"Power_to_RECV_mapping": [-1, -1] * 48,
"Control_to_RECV_mapping":
# [1, 0, 1, 1, 1, 2, 1, x ... 1, 95]
numpy.array([[1, x] for x in range(0, 96)]).flatten()
}
......@@ -175,7 +231,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
self.recv_proxy.read_attribute("HBAT_PWR_on_RW").value
)
finally:
# Always disable recv again
# Always restore recv again
self.recv_proxy.write_attribute(
"HBAT_PWR_on_RW", [[False] * 32] * 96
)
......@@ -188,8 +244,8 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
mapping_properties = {
"RECV_devices": ["STAT/RECV/1"],
"HBAT_Power_to_RECV_mapping": [-1, -1] * 48,
"HBAT_Control_to_RECV_mapping":
"Power_to_RECV_mapping": [-1, -1] * 48,
"Control_to_RECV_mapping":
# [1, 0, 1, 1, 1, 2, 1, x ... 1, 95]
numpy.array([[1, x] for x in range(0, 96)]).flatten()
}
......@@ -210,7 +266,7 @@ class TestAntennaFieldDevice(AbstractTestBases.TestDeviceBase):
self.recv_proxy.read_attribute("RCU_band_select_RW").value
)
finally:
# Always disable recv again
# Always restore recv again
self.recv_proxy.write_attribute(
"RCU_band_select_RW", [False] * 96
)
......
......@@ -468,8 +468,6 @@ class TestAntennafieldDevice(device_base.DeviceTestCase):
) as proxy:
proxy.boot()
import pdb; pdb.set_trace()
proxy.read_attribute('Antenna_Usage_Mask_R')
proxy.write_attribute("HBAT_PWR_on_RW", numpy.array([[False] * 32] * 48))
numpy.testing.assert_equal(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment