summaryrefslogtreecommitdiffstats
path: root/lab_control/test/sds1000xe_unittest.py
diff options
context:
space:
mode:
authorEddy Pedroni <eddy@0xf7.com>2022-06-05 16:45:32 +0200
committerEddy Pedroni <eddy@0xf7.com>2022-06-05 16:45:50 +0200
commited42c1a47bc96f6453bb50008481d3467e9254e6 (patch)
tree300eab13aee99bb1322da61e8fe74243a32c59da /lab_control/test/sds1000xe_unittest.py
parent498b2543dc4336962c8c235ac7a0b41e175fde07 (diff)
Refactored SDS1000X-E unit tests
Diffstat (limited to 'lab_control/test/sds1000xe_unittest.py')
-rw-r--r--lab_control/test/sds1000xe_unittest.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/lab_control/test/sds1000xe_unittest.py b/lab_control/test/sds1000xe_unittest.py
new file mode 100644
index 0000000..ce87a6e
--- /dev/null
+++ b/lab_control/test/sds1000xe_unittest.py
@@ -0,0 +1,61 @@
+import pytest
+
+from lab_control.sds1000xe import SDS1000XE
+from lab_control.connection.direct_connection import DirectConnection as MockConnection
+from lab_control.test.mock_sds1000xe_device import MockSDS1000XEDevice
+
+@pytest.fixture
+def mockDevice():
+ return MockSDS1000XEDevice()
+
+@pytest.fixture
+def mockConnection(mockDevice):
+ return MockConnection(mockDevice._handleRequest)
+
+@pytest.fixture
+def uut(mockConnection):
+ return SDS1000XE("", overrideConnection=mockConnection)
+
+def checkFloatMeasurement(testValues, setValue, measureValue):
+ for channel in SDS1000XE.AVAILABLE_CHANNELS:
+ for value in testValues:
+ setValue(channel, value)
+ measuredValue = measureValue(channel)
+ assert measuredValue == value
+
+def test_amplitudeMeasurement(uut, mockDevice):
+ testValues = [16.23987, 0.0, -0.0164, 10.1]
+ checkFloatMeasurement(testValues, mockDevice.setAmplitude, uut.measureAmplitude)
+
+def test_peakToPeakMeasurement(uut, mockDevice):
+ testValues = [16.23987, 0.0, -0.0164, 10.1]
+ checkFloatMeasurement(testValues, mockDevice.setPeakToPeak, uut.measurePeakToPeak)
+
+def test_RMSMeasurement(uut, mockDevice):
+ testValues = [16.23987, 0.0, -0.0164, 10.1]
+ checkFloatMeasurement(testValues, mockDevice.setRMS, uut.measureRMS)
+
+def test_frequencyMeasurement(uut, mockDevice):
+ testValues = [16.23987, 0.0, -0.0164, 93489.15]
+ checkFloatMeasurement(testValues, mockDevice.setFrequency, uut.measureFrequency)
+
+def test_invalidChannel(uut, mockDevice):
+ # Channel is checked by the UUT before the request is sent
+ testCases = [-1, 0, 5, None]
+ testMethods = [uut.measureAmplitude, uut.measurePeakToPeak, uut.measureRMS, uut.measureFrequency]
+
+ for t in testCases:
+ for m in testMethods:
+ with pytest.raises(AssertionError):
+ m(t)
+
+def test_setVoltsPerDivision(uut, mockDevice):
+ testValues = [5e-3, 50e-3, 1e0, 5e0, 10e0, 100e0]
+
+ for channel in SDS1000XE.AVAILABLE_CHANNELS:
+ assert mockDevice.getVoltsPerDivision(channel) is None
+
+ for value in testValues:
+ uut.setVoltsPerDivision(channel, value)
+ assert mockDevice.getVoltsPerDivision(channel) == value
+