From 50fd9276cebe87eb776ea1bbebea0c930728f3f5 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 23 Sep 2020 17:14:38 +0200 Subject: [PATCH] removed unused tests --- python/api-tests/test_detector.py | 82 --- python/api-tests/test_jungfrau.py | 89 ---- .../eiger/config_test.py | 17 - .../eiger/fixtures.py | 27 - .../settingsdir/standard/5000eV/noise.sn083 | Bin 1048648 -> 0 bytes .../settingsdir/standard/5000eV/noise.sn098 | Bin 1048648 -> 0 bytes .../standard/5000eV/trimbits.sn000 | Bin 1048648 -> 0 bytes .../settingsdir/standard/6000eV/noise.sn083 | Bin 1048648 -> 0 bytes .../settingsdir/standard/6000eV/noise.sn098 | Bin 1048648 -> 0 bytes .../standard/6000eV/trimbits.sn000 | Bin 1048648 -> 0 bytes .../settingsdir/standard/7000eV/noise.sn083 | Bin 1048648 -> 0 bytes .../settingsdir/standard/7000eV/noise.sn098 | Bin 1048648 -> 0 bytes .../standard/7000eV/trimbits.sn000 | Bin 1048648 -> 0 bytes .../eiger/test.config | 33 -- .../simple-integration-tests/eiger/test.par | 2 - .../eiger/test_dynamic_range.py | 44 -- .../eiger/test_eiger_specific.py | 119 ----- .../eiger/test_firmware.py | 129 ----- .../eiger/test_general.py | 187 ------- .../eiger/test_load_config.py | 38 -- .../eiger/test_network.py | 81 --- .../eiger/test_paths_and_files.py | 54 -- .../eiger/test_threshold.py | 47 -- .../eiger/test_time.py | 136 ----- .../eiger/test_trimbits_and_dacs.py | 34 -- .../eiger/test_version_numbers.py | 16 - .../eiger/write_tb_files.py | 42 -- .../jungfrau_0_6/config_test.py | 17 - .../jungfrau_0_6/fixtures.py | 23 - .../jungfrau_0_6/test_main.py | 17 - .../jungfrau_0_6/tests/test.config | 21 - .../jungfrau_0_6/tests/test.par | 1 - .../jungfrau_0_6/tests/test_load_config.py | 43 -- .../tests/test_overtemperature.py | 68 --- python/tests/dac_test.py | 173 ------- python/tests/detector_eiger.py | 489 ------------------ python/tests/detector_test.py | 489 ------------------ python/tests/test_detector_property.py | 76 --- 38 files changed, 2594 deletions(-) delete mode 100644 python/api-tests/test_detector.py delete mode 100644 python/api-tests/test_jungfrau.py delete mode 100755 python/simple-integration-tests/eiger/config_test.py delete mode 100755 python/simple-integration-tests/eiger/fixtures.py delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/5000eV/noise.sn083 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/5000eV/noise.sn098 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/5000eV/trimbits.sn000 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/6000eV/noise.sn083 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/6000eV/noise.sn098 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/6000eV/trimbits.sn000 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/7000eV/noise.sn083 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/7000eV/noise.sn098 delete mode 100755 python/simple-integration-tests/eiger/settingsdir/standard/7000eV/trimbits.sn000 delete mode 100755 python/simple-integration-tests/eiger/test.config delete mode 100755 python/simple-integration-tests/eiger/test.par delete mode 100755 python/simple-integration-tests/eiger/test_dynamic_range.py delete mode 100755 python/simple-integration-tests/eiger/test_eiger_specific.py delete mode 100755 python/simple-integration-tests/eiger/test_firmware.py delete mode 100755 python/simple-integration-tests/eiger/test_general.py delete mode 100755 python/simple-integration-tests/eiger/test_load_config.py delete mode 100755 python/simple-integration-tests/eiger/test_network.py delete mode 100755 python/simple-integration-tests/eiger/test_paths_and_files.py delete mode 100755 python/simple-integration-tests/eiger/test_threshold.py delete mode 100755 python/simple-integration-tests/eiger/test_time.py delete mode 100755 python/simple-integration-tests/eiger/test_trimbits_and_dacs.py delete mode 100755 python/simple-integration-tests/eiger/test_version_numbers.py delete mode 100755 python/simple-integration-tests/eiger/write_tb_files.py delete mode 100755 python/simple-integration-tests/jungfrau_0_6/config_test.py delete mode 100755 python/simple-integration-tests/jungfrau_0_6/fixtures.py delete mode 100755 python/simple-integration-tests/jungfrau_0_6/test_main.py delete mode 100755 python/simple-integration-tests/jungfrau_0_6/tests/test.config delete mode 100755 python/simple-integration-tests/jungfrau_0_6/tests/test.par delete mode 100755 python/simple-integration-tests/jungfrau_0_6/tests/test_load_config.py delete mode 100755 python/simple-integration-tests/jungfrau_0_6/tests/test_overtemperature.py delete mode 100755 python/tests/dac_test.py delete mode 100755 python/tests/detector_eiger.py delete mode 100755 python/tests/detector_test.py delete mode 100755 python/tests/test_detector_property.py diff --git a/python/api-tests/test_detector.py b/python/api-tests/test_detector.py deleted file mode 100644 index 1eff7d28a..000000000 --- a/python/api-tests/test_detector.py +++ /dev/null @@ -1,82 +0,0 @@ -import pytest -import datetime as dt -from slsdet import Detector, timingMode, detectorType - -not_eiger = pytest.mark.skipif( - Detector().type == detectorType.EIGER, reason="Does not work for eiger" -) - - -@pytest.fixture -def det(): - from slsdet import Detector - - return Detector() - - -def test_frames(det): - for n in [1, 100, 3245, 10000]: - det.frames = n - assert det.frames == n - det.frames = 1 - - -def test_triggers(det): - for n in [1, 100, 3245, 10000]: - det.triggers = n - assert det.triggers == n - det.triggers = 1 - - -def test_exptime(det): - det.exptime = 1 - assert det.exptime == 1 - det.exptime = dt.timedelta(milliseconds=10) - assert det.exptime == 0.01 - det.exptime = 1 - - -def test_period(det): - det.period = 3.2 - assert det.period == 3.2 - - p = dt.timedelta(microseconds=1020) - det.period = p - assert det.period == 0.001020 - r = det.getPeriod() - assert r[0] == p - det.period = 0 - assert det.period == 0 - - -def test_lock(det): - for l in [True, False]: - det.lock = l - assert det.lock == l - - -def test_timing(det): - # auto and trigger is available for all det - for m in [timingMode.TRIGGER_EXPOSURE, timingMode.AUTO_TIMING]: - det.timing = m - assert det.timing == m - -@not_eiger -def test_delay(det): - det.delay = 1 - assert det.delay == 1 - - t = dt.timedelta(microseconds=1) - det.delay = t - assert det.delay == t.total_seconds() - - r = det.getDelayAfterTrigger()[0] - assert r == t - - det.delay = 0 - assert det.delay == 0 - - -@not_eiger -def test_delayl(det): - assert det.delayl == 0 \ No newline at end of file diff --git a/python/api-tests/test_jungfrau.py b/python/api-tests/test_jungfrau.py deleted file mode 100644 index baa57d4f0..000000000 --- a/python/api-tests/test_jungfrau.py +++ /dev/null @@ -1,89 +0,0 @@ -import pytest -import datetime as dt -from slsdet import Detector, detectorType - -""" -These tests are designed to work the API and catch -any changes in behavior or naming. Tests are expected -to pass with a virtual detector or a real one - -""" - - -@pytest.fixture -def jf(): - from slsdet import Jungfrau - return Jungfrau() - - -jungfrautest = pytest.mark.skipif( - Detector().type != detectorType.JUNGFRAU, reason="Only valid for Jungfrau" -) - - -@jungfrautest -def test_storagecells(jf): - for i in range(16): - jf.storagecells = i - assert jf.storagecells == i - jf.storagecells = 0 # default - -@jungfrautest -def test_storagecell_start(jf): - for i in range(16): - jf.storagecell_start = i - assert jf.storagecell_start == i - jf.storagecells = 15 # default - -@jungfrautest -def test_storagecell_delay(jf): - for t in [0.001, 0.0002, 0.0013]: - jf.storagecell_delay = t - assert jf.storagecell_delay == t - jf.storagecell_delay = 0 # default - -@jungfrautest -def test_temp_event(jf): - # hard to test with virtual server - assert jf.temp_event == 0 - -@jungfrautest -def test_temp_threshold(jf): - for th in [0, 10, 43, 72]: - jf.temp_threshold = th - assert jf.temp_threshold == th - jf.temp_threshold = 0 - -@jungfrautest -def test_auto_comp_disable(jf): - for v in [True, False]: - jf.auto_comp_disable = v - assert jf.auto_comp_disable == v - -@jungfrautest -def test_numinterfaces(jf): - for n in [2, 1]: - jf.numinterfaces = n - assert jf.numinterfaces == n - -@jungfrautest -def test_dr(jf): - assert jf.dr == 16 - -@jungfrautest -def test_temp_control(jf): - for v in [True, False]: - jf.temp_control = v - assert jf.temp_control == v - -@jungfrautest -def test_startingfnum(jf): - for n in [10, 127, 43321, 1]: - jf.startingfnum = n - assert jf.startingfnum == n - -@jungfrautest -def test_selinterface(jf): - for i in [1, 0]: - jf.selinterface = i - assert jf.selinterface == i \ No newline at end of file diff --git a/python/simple-integration-tests/eiger/config_test.py b/python/simple-integration-tests/eiger/config_test.py deleted file mode 100755 index 690adbd06..000000000 --- a/python/simple-integration-tests/eiger/config_test.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Created on Tue Nov 14 16:49:07 2017 - -@author: l_frojdh -""" - -fw_version = 23 -detector_type = 'Eiger' -known_hostnames = ['beb083', 'beb098'] -image_size = (512,1024) #rows, cols -module_geometry = (1,2) #horizontal, vertical - -#Remember to change these in the settings file as well! -settings_path = '/home/l_frojdh/slsDetectorPackage/settingsdir/eiger' -file_path = '/home/l_frojdh/out' \ No newline at end of file diff --git a/python/simple-integration-tests/eiger/fixtures.py b/python/simple-integration-tests/eiger/fixtures.py deleted file mode 100755 index a59fa6961..000000000 --- a/python/simple-integration-tests/eiger/fixtures.py +++ /dev/null @@ -1,27 +0,0 @@ -import pytest - -from sls_detector import Detector - -@pytest.fixture -def detector(): - from sls_detector import Detector - return Detector() - -@pytest.fixture -def eiger(): - from sls_detector import Eiger - d = Eiger() - d.n_frames = 1 - d.exposure_time = 1 - d.file_write = False - return d - - -@pytest.fixture -def jungfrau(): - from sls_detector import Jungfrau - return Jungfrau() - -detector_type = Detector().detector_type -eigertest = pytest.mark.skipif(detector_type != 'Eiger', reason = 'Only valid for Eiger') -jungfrautest = pytest.mark.skipif(detector_type != 'Jungfrau', reason = 'Only valid for Jungfrau') \ No newline at end of file diff --git a/python/simple-integration-tests/eiger/settingsdir/standard/5000eV/noise.sn083 b/python/simple-integration-tests/eiger/settingsdir/standard/5000eV/noise.sn083 deleted file mode 100755 index 71f43f7bd34d3c798d00d590658f6c0b4960e5a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048648 zcmeIuu?>Vk3UXtrvLx| diff --git a/python/simple-integration-tests/eiger/settingsdir/standard/5000eV/noise.sn098 b/python/simple-integration-tests/eiger/settingsdir/standard/5000eV/noise.sn098 deleted file mode 100755 index 71f43f7bd34d3c798d00d590658f6c0b4960e5a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048648 zcmeIuu?>Vk3UXtrvLx| diff --git a/python/simple-integration-tests/eiger/settingsdir/standard/5000eV/trimbits.sn000 b/python/simple-integration-tests/eiger/settingsdir/standard/5000eV/trimbits.sn000 deleted file mode 100755 index 086352948cb105b96499d3996d0e93c9474fc33e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048648 zcmeIu!3l&w5Cp(R)I$VK%zzB!0x%52FaSgGq01VA&l+f^=QEE=l5I}*F jungfrau.temp.fpga[0]: - time.sleep(5) - print('\t\tJungfrau MCB temperature: {0:.2f} °C'.format(jungfrau.temp.fpga[0])) - - assert jungfrau.temperature_event == False - assert jungfrau.power_chip == True - - print('\tFinished powerchip_test test case') - - -#@jungfrautest -def test_main(jungfrau): - - print('\nTesting overtemperature protection control') - - powerchip_test(jungfrau, False) - powerchip_test(jungfrau, True) - - print('Tested overtemperature protection control') diff --git a/python/tests/dac_test.py b/python/tests/dac_test.py deleted file mode 100755 index 90341fcaa..000000000 --- a/python/tests/dac_test.py +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Testing setting and getting dacs from the detector -""" -from unittest.mock import Mock, call -import pytest -from pytest_mock import mocker -import numpy as np - -from sls_detector import Eiger -from sls_detector import DetectorApi - - -def test_get_vrf_for_three_mod(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 3 - m = mocker.patch.object(DetectorApi, 'getDac', autospec=True) - m.return_value = 1560 - d = Eiger() - vrf = d.dacs.vrf[:] - assert vrf == [1560, 1560, 1560] - -def test_set_vrf_for_three_mod_same_value(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 3 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.vrf[:] = 1500 - calls = [call('vrf', 0, 1500), call('vrf', 1, 1500), call('vrf', 2, 1500)] - m.assert_has_calls(calls) - assert m.call_count == 3 - -def test_set_vrf_for_four_mod_different_value(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 4 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.vrf = [1500, 1600, 1800, 1502] - calls = [call('vrf', 0, 1500), - call('vrf', 1, 1600), - call('vrf', 2, 1800), - call('vrf', 3, 1502)] - m.assert_has_calls(calls) - assert m.call_count == 4 - -def test_set_vrf_for_four_mod_different_value_slice(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 4 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.vrf[:] = [1500, 1600, 1800, 1502] - calls = [call('vrf', 0, 1500), - call('vrf', 1, 1600), - call('vrf', 2, 1800), - call('vrf', 3, 1502)] - m.assert_has_calls(calls) - assert m.call_count == 4 - -def test_set_vcp_single_call(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 2 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.vcp[1] = 1637 - m.assert_called_once_with('vcp', 1, 1637) - -def test_iterate_on_index_call_vcn(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 10 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.vcn[0,3,8] = 1532 - calls = [call('vcn', 0, 1532), - call('vcn', 3, 1532), - call('vcn', 8, 1532)] - m.assert_has_calls(calls) - assert m.call_count == 3 - -def test_set_dac_from_element_in_numpy_array(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 2 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) - d = Eiger() - - vrf = np.array((1600,1700,1800)) - d.dacs.vrf = vrf[0] - calls = [call('vrf', 0, 1600), - call('vrf', 1, 1600),] - m.assert_has_calls(calls) - assert m.call_count == 2 - -def test_set_dac_from_element_in_numpy_array_using_slice(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 2 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) - d = Eiger() - - vrf = np.array((1600,1700,1800)) - d.dacs.vrf[:] = vrf[0] - calls = [call('vrf', 0, 1600), - call('vrf', 1, 1600),] - m.assert_has_calls(calls) - assert m.call_count == 2 - -def test_set_eiger_default(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 2 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.set_default() - calls = [call('vsvp', 0, 0), - call('vsvp', 1, 0), - call('vtr', 0, 2500), - call('vtr', 1, 2500), - call('vrf', 0, 3300), - call('vrf', 1, 3300), - call('vrs', 0, 1400), - call('vrs', 1, 1400), - call('vsvn', 0, 4000), - call('vsvn', 1, 4000), - call('vtgstv', 0, 2556), - call('vtgstv', 1, 2556), - call('vcmp_ll', 0, 1500), - call('vcmp_ll', 1, 1500), - call('vcmp_lr', 0, 1500), - call('vcmp_lr', 1, 1500), - call('vcall', 0, 4000), - call('vcall', 1, 4000), - call('vcmp_rl', 0, 1500), - call('vcmp_rl', 1, 1500), - call('rxb_rb', 0, 1100), - call('rxb_rb', 1, 1100), - call('rxb_lb', 0, 1100), - call('rxb_lb', 1, 1100), - call('vcmp_rr', 0, 1500), - call('vcmp_rr', 1, 1500), - call('vcp', 0, 200), - call('vcp', 1, 200), - call('vcn', 0, 2000), - call('vcn', 1, 2000), - call('vis', 0, 1550), - call('vis', 1, 1550), - call('iodelay', 0, 660), - call('iodelay', 1, 660)] - - m.assert_has_calls(calls) - assert m.call_count == 17*2 - -def test_set_eiger_set_from_array_call_count(mocker): - import numpy as np - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 3 - m = mocker.patch.object(DetectorApi, 'setDac', autospec=True) -# m.return_value = 1560 - d = Eiger() - d.dacs.set_from_array( np.zeros((17,3))) - assert m.call_count == 17*3 - -def test_get_fpga_temp(mocker): - m2= mocker.patch.object(DetectorApi, 'getNumberOfDetectors', autospec=True) - m2.return_value = 2 - m = mocker.patch.object(DetectorApi, 'getAdc', autospec=True) - m.return_value = 34253 - d = Eiger() - t = d.temp.fpga[:] - assert t == [34.253, 34.253] \ No newline at end of file diff --git a/python/tests/detector_eiger.py b/python/tests/detector_eiger.py deleted file mode 100755 index cc36e93e3..000000000 --- a/python/tests/detector_eiger.py +++ /dev/null @@ -1,489 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Testing parameters and methods of the Detector class using mocks -""" -from unittest.mock import Mock -import pytest -from pytest_mock import mocker - - - -@pytest.fixture -def d(): - from sls_detector import Eiger - return Eiger() - - -def test_acq_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.acq') - d.acq() - m.assert_called_once_with() - -def test_busy_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getAcquiringFlag') - m.return_value = False - assert d.busy == False - - -def test_assign_to_detector_type(d): - with pytest.raises(AttributeError): - d.detector_type = 'Eiger' - -def test_det_type(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDetectorType') - m.return_value = 'Eiger' - assert d.detector_type == 'Eiger' - -def test_set_dynamic_range_4(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setDynamicRange') - d.dynamic_range = 4 - m.assert_called_with(4) - -def test_set_dynamic_range_8(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setDynamicRange') - d.dynamic_range = 8 - m.assert_called_with(8) - - -def test_set_dynamic_range_16(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setDynamicRange') - d.dynamic_range = 16 - m.assert_called_with(16) - -def test_set_dynamic_range_32(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setDynamicRange') - d.dynamic_range = 32 - m.assert_called_with(32) - -def test_set_dynamic_range_raises_exception(d, mocker): - mocker.patch('_slsdet.DetectorApi.setDynamicRange') - with pytest.raises(ValueError): - d.dynamic_range = 17 - -def test_get_dynamic_range_32(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDynamicRange') - m.return_value = 32 - dr = d.dynamic_range - assert dr == 32 - -def test_eiger_matrix_reset(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getCounterBit') - m.return_value = True - assert d.eiger_matrix_reset == True - -def test_set_eiger_matrix_reset(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setCounterBit') - d.eiger_matrix_reset = True - m.assert_called_once_with(True) - - -def test_get_exposure_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getExposureTime') - m.return_value = 100000000 - assert d.exposure_time == 0.1 - -def test_set_exposure_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setExposureTime') - d.exposure_time = 1.5 - m.assert_called_once_with(1500000000) - -def test_set_exposure_time_less_than_zero(d, mocker): - mocker.patch('_slsdet.DetectorApi.setExposureTime') - with pytest.raises(ValueError): - d.exposure_time = -7 - - -def test_get_file_index(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getFileIndex') - m.return_value = 8 - assert d.file_index == 8 - -def test_set_file_index(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setFileIndex') - d.file_index = 9 - m.assert_called_with(9) - - -def test_set_file_index_raises_on_neg(d, mocker): - mocker.patch('_slsdet.DetectorApi.setFileIndex') - with pytest.raises(ValueError): - d.file_index = -9 - - -def test_get_file_name(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getFileName') - d.file_name - m.assert_called_once_with() - -def test_set_file_name(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setFileName') - d.file_name = 'hej' - m.assert_called_once_with('hej') - -def test_get_file_path(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getFilePath') - d.file_path - m.assert_called_once_with() - -def test_set_file_path_when_path_exists(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setFilePath') - #To avoid raising an exception because path is not there - mock_os = mocker.patch('os.path.exists') - mock_os.return_value = True - d.file_path = '/path/to/something/' - m.assert_called_once_with('/path/to/something/') - -def test_set_file_path_raises_when_not_exists(d, mocker): - mocker.patch('_slsdet.DetectorApi.setFilePath') - mock_os = mocker.patch('os.path.exists') - mock_os.return_value = False - with pytest.raises(FileNotFoundError): - d.file_path = '/path/to/something/' - -def test_get_file_write(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getFileWrite') - m.return_value = False - assert d.file_write == False - -def test_set_file_write(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setFileWrite') - d.file_write = True - m.assert_called_once_with(True) - - -def test_get_firmware_version(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getFirmwareVersion') - m.return_value = 20 - assert d.firmware_version == 20 - -def test_cannot_set_fw_version(d): - with pytest.raises(AttributeError): - d.firmware_version = 20 - -def test_get_high_voltage_call_signature(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDac') - d.high_voltage - m.assert_called_once_with('highvoltage', -1) - -def test_get_high_voltage(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDac') - m.return_value = 80 - assert d.high_voltage == 80 - -#self._api.setDac('highvoltage', -1, voltage) -def test_set_high_voltage(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setDac') - d.high_voltage = 80 - m.assert_called_once_with('highvoltage', -1, 80) - -def test_decode_hostname_two_names(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getHostname') - m.return_value = 'beb059+beb048+' - assert d.hostname == ['beb059', 'beb048'] - -def test_decode_hostname_four_names(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getHostname') - m.return_value = 'beb059+beb048+beb120+beb153+' - assert d.hostname == ['beb059', 'beb048', 'beb120', 'beb153'] - -def test_decode_hostname_blank(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getHostname') - m.return_value = '' - assert d.hostname == [] - -def test_get_image_size_gives_correct_size(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getImageSize') - m.return_value = (512,1024) - im_size = d.image_size - assert im_size.rows == 512 - assert im_size.cols == 1024 - - - -def test_load_config(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.readConfigurationFile') - #To avoid raising an exception because path is not there - mock_os = mocker.patch('os.path.isfile') - mock_os.return_value = True - d.load_config('/path/to/my/file.config') - m.assert_called_once_with('/path/to/my/file.config') - -def test_load_config_raises_when_file_is_not_found(d, mocker): - mocker.patch('_slsdet.DetectorApi.readConfigurationFile') - mock_os = mocker.patch('os.path.isfile') - mock_os.return_value = False - with pytest.raises(FileNotFoundError): - d.load_config('/path/to/my/file.config') - -def test_load_parameters(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.readParametersFile') - #To avoid raising an exception because path is not there - mock_os = mocker.patch('os.path.isfile') - mock_os.return_value = True - d.load_parameters('/path/to/my/file.par') - m.assert_called_once_with('/path/to/my/file.par') - -def test_load_parameters_raises_when_file_is_not_found(d, mocker): - mocker.patch('_slsdet.DetectorApi.readParametersFile') - mock_os = mocker.patch('os.path.isfile') - mock_os.return_value = False - with pytest.raises(FileNotFoundError): - d.load_parameters('/path/to/my/file.par') - -#getDetectorGeometry -def test_get_module_geometry_gives_correct_size(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDetectorGeometry') - m.return_value = (13,7) - g = d.module_geometry - assert g.vertical == 7 - assert g.horizontal == 13 - -def test_get_module_geometry_access(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDetectorGeometry') - m.return_value = (12,3) - assert d.module_geometry[0] == 12 - assert d.module_geometry[1] == 3 - assert d.module_geometry.vertical == 3 - assert d.module_geometry.horizontal == 12 - -def test_get_n_frames(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getNumberOfFrames') - m.return_value = 3 - assert d.n_frames == 3 - -def test_set_n_frames(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setNumberOfFrames') - d.n_frames = 9 - m.assert_called_once_with(9) - -def test_set_n_frames_raises_on_neg(d, mocker): - mocker.patch('_slsdet.DetectorApi.setNumberOfFrames') - with pytest.raises(ValueError): - d.n_frames = -1 - -def test_set_n_frames_raises_on_zero(d, mocker): - mocker.patch('_slsdet.DetectorApi.setNumberOfFrames') - with pytest.raises(ValueError): - d.n_frames = 0 - -def test_get_n_modules(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getNumberOfDetectors') - m.return_value = 12 - assert d.n_modules == 12 - -def test_get_period_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getPeriod') - m.return_value = 130000000 - assert d.period == 0.13 - -def test_set_period_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setPeriod') - d.period = 1.953 - m.assert_called_once_with(1953000000) - -def test_set_period_time_less_than_zero(d, mocker): - mocker.patch('_slsdet.DetectorApi.setPeriod') - with pytest.raises(ValueError): - d.period = -7 - -def test_pulse_chip_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.pulseChip') - d.pulse_chip(15) - m.assert_called_once_with(15) - -def test_pulse_chip_call_minus_one(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.pulseChip') - d.pulse_chip(-1) - m.assert_called_once_with(-1) - -def test_pulse_chip_asserts_on_smaller_than_minus_one(d, mocker): - mocker.patch('_slsdet.DetectorApi.pulseChip') - with pytest.raises(ValueError): - d.pulse_chip(-3) -#--------------------------------------------------------------------subexptime -def test_get_sub_exposure_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getSubExposureTime') - m.return_value = 2370000 - assert d.sub_exposure_time == 0.00237 - - -def test_set_sub_exposure_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setSubExposureTime') - d.sub_exposure_time = 0.002 - m.assert_called_once_with(2000000) - -def test_set_sub_exposure_time_raises_on_zero(d, mocker): - mocker.patch('_slsdet.DetectorApi.setSubExposureTime') - with pytest.raises(ValueError): - d.sub_exposure_time = 0 - -#-------------------------------------------------------------Rate correction -def test_get_rate_correction(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getRateCorrection') - m.return_value = [132,129] - assert d.rate_correction == [132,129] - -def test_set_rate_correction(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setRateCorrection') - mock_n = mocker.patch('_slsdet.DetectorApi.getNumberOfDetectors') - mock_n.return_value = 3 - d.rate_correction = [123,90,50] - m.assert_called_once_with([123,90,50]) - -def test_set_rate_correction_raises_on_wrong_number_of_values(d, mocker): - mocker.patch('_slsdet.DetectorApi.setRateCorrection') - mock_n = mocker.patch('_slsdet.DetectorApi.getNumberOfDetectors') - mock_n.return_value = 4 - with pytest.raises(ValueError): - d.rate_correction = [123,90,50] - -#----------------------------------------------------------------Readout clock -def test_get_readout_clock_0(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') - m.return_value = 0 - assert d.readout_clock == 'Full Speed' - -def test_get_readout_clock_1(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') - m.return_value = 1 - assert d.readout_clock == 'Half Speed' - -def test_get_readout_clock_2(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') - m.return_value = 2 - assert d.readout_clock == 'Quarter Speed' - -def test_get_readout_clock_3(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') - m.return_value = 3 - assert d.readout_clock == 'Super Slow Speed' - -def test_set_readout_clock_0(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') - d.readout_clock = 'Full Speed' - m.assert_called_once_with(0) - -def test_set_readout_clock_1(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') - d.readout_clock = 'Half Speed' - m.assert_called_once_with(1) - -def test_set_readout_clock_2(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') - d.readout_clock = 'Quarter Speed' - m.assert_called_once_with(2) - -def test_set_readout_clock_3(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') - d.readout_clock = 'Super Slow Speed' - m.assert_called_once_with(3) - -#----------------------------------------------------------------rx_zmqstream -def test_get_rx_zmqstream(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getRxDataStreamStatus') - m.return_value = False - assert d.rx_zmqstream == False - -def test_set_rx_zmqstream(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setRxDataStreamStatus') - d.rx_zmqstream = True - m.assert_called_once_with(True) - -def test_get_rx_zmqip(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') - d.rx_zmqip - m.assert_called_once_with('rx_zmqip') - -def test_get_rx_zmqport_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') - d.rx_zmqport - m.assert_called_once_with('rx_zmqport') - -def test_get_rx_zmqport_decode(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') - m.return_value = '30001+30003+' - assert d.rx_zmqport == [30001, 30002, 30003, 30004] - -def test_get_rx_zmqport_empty(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') - m.return_value = '' - assert d.rx_zmqport == [] - - -#--------------------------------------------------------------------status -def test_status_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getRunStatus') - d.status - m.assert_called_once_with() - -def test_start_acq_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.startAcquisition') - d.start_acq() - m.assert_called_once_with() - -def test_stop_acq_call(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.stopAcquisition') - d.stop_acq() - m.assert_called_once_with() - -#--------------------------------------------------------------------subexptime -def test_get_sub_exposure_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getSubExposureTime') - m.return_value = 2370000 - assert d.sub_exposure_time == 0.00237 - - -def test_set_sub_exposure_time(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setSubExposureTime') - d.sub_exposure_time = 0.002 - m.assert_called_once_with(2000000) - -def test_set_sub_exposure_time_raises_on_zero(d, mocker): - mocker.patch('_slsdet.DetectorApi.setSubExposureTime') - with pytest.raises(ValueError): - d.sub_exposure_time = 0 - -#------------------------------------------------------------------timing mode -def test_get_timing_mode(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getTimingMode') - d.timing_mode - m.assert_called_once_with() - -def test_set_timing_mode(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setTimingMode') - d.timing_mode = 'auto' - m.assert_called_once_with('auto') - -#----------------------------------------------------------------vthreshold -def test_get_vthreshold(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getDac') - d.vthreshold - m.assert_called_once_with('vthreshold', -1) - -def test_set_vthreshold(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setDac') - d.vthreshold = 1675 - m.assert_called_once_with('vthreshold', -1, 1675) - -#----------------------------------------------------------------trimbits -def test_get_trimbits(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.getAllTrimbits') - d.trimbits - m.assert_called_once_with() - -def test_set_trimbits(d, mocker): - m = mocker.patch('_slsdet.DetectorApi.setAllTrimbits') - d.trimbits = 15 - m.assert_called_once_with(15) - -def test_set_trimbits_raises_outside_range(d, mocker): - mocker.patch('_slsdet.DetectorApi.setAllTrimbits') - - with pytest.raises(ValueError): - d.trimbits = 69 - - with pytest.raises(ValueError): - d.trimbits = -5 - - diff --git a/python/tests/detector_test.py b/python/tests/detector_test.py deleted file mode 100755 index aa639ef3b..000000000 --- a/python/tests/detector_test.py +++ /dev/null @@ -1,489 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Testing the Detector python class by mocking calls. -Should only be used when there is functionality in -the detector.py file. - -An example is converting a mask to a list of set bits. -""" - -from unittest.mock import Mock -import pytest -from pytest_mock import mocker - -import sys -sys.path.append('/home/l_frojdh/slsdetectorgrup/sls_detector') - -import _slsdet -from sls_detector.errors import DetectorValueError, DetectorError -from sls_detector.utils import all_equal, element_if_equal - -@pytest.fixture -def d(): - from sls_detector import Detector - return Detector() - -def test_length(d, mocker): - m = mocker.patch('sls_detector.Detector.size') - m.return_value = 5 - assert(len(d) == 5) - -def test_counters_single(d, mocker): - m = mocker.patch('sls_detector.Detector.getCounterMask') - m.return_value = [7] - assert(d.counters == [0,1,2]) - -def test_counters_multi(d, mocker): - m = mocker.patch('sls_detector.Detector.getCounterMask') - m.return_value = [7, 9] - assert(d.counters == [[0,1,2],[0,3]]) - -def test_set_counters_single(d, mocker): - m = mocker.patch('sls_detector.Detector.setCounterMask') - d.counters = [0,2] - m.assert_called_once_with(5) - - - -# def test_busy_call(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getAcquiringFlag') -# m.return_value = False -# assert d.busy == False - -# def test_set_busy(d): -# d.busy = True -# assert d.busy == True -# assert d._api.getAcquiringFlag() == True -# d.busy = False -# assert d.busy == False -# assert d._api.getAcquiringFlag() == False - -# def test_error_mask(d): -# d._api.setErrorMask(1) -# assert d.error_mask == 1 -# d.clear_errors() - -# def test_error_handling(d): -# with pytest.raises(DetectorError): -# d._provoke_error() - -# def test_assign_to_detector_type(d): -# with pytest.raises(AttributeError): -# d.detector_type = 'Eiger' - -# def test_det_type(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getDetectorType') -# m.return_value = 'Eiger' -# assert d.detector_type == 'Eiger' - - -# def test_get_exposure_time(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getExposureTime') -# m.return_value = 100000000 -# assert d.exposure_time == 0.1 - -# def test_set_exposure_time(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setExposureTime') -# d.exposure_time = 1.5 -# m.assert_called_once_with(1500000000) - -# def test_set_exposure_time_less_than_zero(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setExposureTime') -# with pytest.raises(DetectorValueError): -# d.exposure_time = -7 - - -# def test_get_file_index(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getFileIndex') -# m.return_value = 8 -# assert d.file_index == 8 - -# def test_set_file_index(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setFileIndex') -# d.file_index = 9 -# m.assert_called_with(9) - - -# def file_index_with_no_detector(d): -# assert d.file_index == -100 - -# def dr_with_no_detector(d): -# assert d.dynamic_range == -100 - -# def test_set_file_index_raises_on_neg(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setFileIndex') -# with pytest.raises(ValueError): -# d.file_index = -9 - - -# def test_get_file_name(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getFileName') -# d.file_name -# m.assert_called_once_with() - -# def test_set_file_name(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setFileName') -# d.file_name = 'hej' -# m.assert_called_once_with('hej') - -# def test_get_file_path(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getFilePath') -# d.file_path -# m.assert_called_once_with() - -# def test_set_file_path_when_path_exists(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setFilePath') -# #To avoid raising an exception because path is not there -# mock_os = mocker.patch('os.path.exists') -# mock_os.return_value = True -# d.file_path = '/path/to/something/' -# m.assert_called_once_with('/path/to/something/') - -# def test_set_file_path_raises_when_not_exists(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setFilePath') -# mock_os = mocker.patch('os.path.exists') -# mock_os.return_value = False -# with pytest.raises(FileNotFoundError): -# d.file_path = '/path/to/something/' - -# def test_get_file_write(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getFileWrite') -# m.return_value = False -# assert d.file_write == False - -# def test_set_file_write(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setFileWrite') -# d.file_write = True -# m.assert_called_once_with(True) - - -# def test_get_firmware_version(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getFirmwareVersion') -# m.return_value = 20 -# assert d.firmware_version == 20 - -# def test_cannot_set_fw_version(d): -# with pytest.raises(AttributeError): -# d.firmware_version = 20 - -# def test_get_high_voltage_call_signature(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getDac') -# d.high_voltage -# m.assert_called_once_with('highvoltage', -1) - -# def test_get_high_voltage(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getDac') -# m.return_value = 80 -# assert d.high_voltage == 80 - -# #self._api.setDac('highvoltage', -1, voltage) -# def test_set_high_voltage(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setDac') -# d.high_voltage = 80 -# m.assert_called_once_with('highvoltage', -1, 80) - -# def test_decode_hostname_two_names(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getHostname') -# m.return_value = 'beb059+beb048+' -# assert d.hostname == ['beb059', 'beb048'] - -# def test_decode_hostname_four_names(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getHostname') -# m.return_value = 'beb059+beb048+beb120+beb153+' -# assert d.hostname == ['beb059', 'beb048', 'beb120', 'beb153'] - -# def test_decode_hostname_blank(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getHostname') -# m.return_value = '' -# assert d.hostname == [] - -# def test_get_image_size_gives_correct_size(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getImageSize') -# m.return_value = (512,1024) -# im_size = d.image_size -# assert im_size.rows == 512 -# assert im_size.cols == 1024 - - - -# def test_load_config(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.readConfigurationFile') -# #To avoid raising an exception because path is not there -# mock_os = mocker.patch('os.path.isfile') -# mock_os.return_value = True -# d.load_config('/path/to/my/file.config') -# m.assert_called_once_with('/path/to/my/file.config') - -# def test_load_config_raises_when_file_is_not_found(d, mocker): -# mocker.patch('_slsdet.DetectorApi.readConfigurationFile') -# mock_os = mocker.patch('os.path.isfile') -# mock_os.return_value = False -# with pytest.raises(FileNotFoundError): -# d.load_config('/path/to/my/file.config') - -# def test_load_parameters(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.readParametersFile') -# #To avoid raising an exception because path is not there -# mock_os = mocker.patch('os.path.isfile') -# mock_os.return_value = True -# d.load_parameters('/path/to/my/file.par') -# m.assert_called_once_with('/path/to/my/file.par') - -# def test_load_parameters_raises_when_file_is_not_found(d, mocker): -# mocker.patch('_slsdet.DetectorApi.readParametersFile') -# mock_os = mocker.patch('os.path.isfile') -# mock_os.return_value = False -# with pytest.raises(FileNotFoundError): -# d.load_parameters('/path/to/my/file.par') - -# #getDetectorGeometry -# def test_get_module_geometry_gives_correct_size(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getDetectorGeometry') -# m.return_value = (13,7) -# g = d.module_geometry -# assert g.vertical == 7 -# assert g.horizontal == 13 - -# def test_get_module_geometry_access(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getDetectorGeometry') -# m.return_value = (12,3) -# assert d.module_geometry[0] == 12 -# assert d.module_geometry[1] == 3 -# assert d.module_geometry.vertical == 3 -# assert d.module_geometry.horizontal == 12 - -# def test_module_geometry_without_detectors(d): -# t = d.module_geometry -# assert t.horizontal == 0 -# assert t.vertical == 0 - -# def test_get_n_frames(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getNumberOfFrames') -# m.return_value = 3 -# assert d.n_frames == 3 - -# def test_set_n_frames(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setNumberOfFrames') -# d.n_frames = 9 -# m.assert_called_once_with(9) - -# def test_nframes_without_detector(d): -# assert d.n_frames == -100 - -# def test_set_n_frames_raises_on_neg(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setNumberOfFrames') -# with pytest.raises(DetectorValueError): -# d.n_frames = -1 - -# def test_set_n_frames_raises_on_zero(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setNumberOfFrames') -# with pytest.raises(DetectorValueError): -# d.n_frames = 0 - -# def test_n_cycles_without_detector(d): -# assert d.n_cycles == -100 - -# def test_set_n_cycles_raises_on_zero(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setCycles') -# with pytest.raises(DetectorValueError): -# d.n_cycles = 0 - -# def test_set_n_cycles(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setCycles') -# d.n_cycles = 56 -# m.assert_called_once_with(56) - - - -# def test_n_measurements_without_detector(d): -# assert d.n_measurements == -100 - -# def test_set_n_measurements_raises_on_zero(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setNumberOfMeasurements') -# with pytest.raises(DetectorValueError): -# d.n_measurements = 0 - -# def test_set_n_measurements(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setNumberOfMeasurements') -# d.n_measurements = 560 -# m.assert_called_once_with(560) - -# def test_get_n_modules_no_detector(d): -# assert d.n_modules == 0 - -# def test_get_n_modules(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getNumberOfDetectors') -# m.return_value = 12 -# assert d.n_modules == 12 - -# def test_get_period_time(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getPeriod') -# m.return_value = 130000000 -# assert d.period == 0.13 - -# def test_set_period_time(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setPeriod') -# d.period = 1.953 -# m.assert_called_once_with(1953000000) - -# def test_set_period_time_less_than_zero(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setPeriod') -# with pytest.raises(ValueError): -# d.period = -7 - - -# def test_get_online(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getOnline') -# d.online -# m.assert_called_once_with() - -# def test_set_online(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setOnline') -# d.online = True -# m.assert_called_once_with(True) - -# def test_last_client_ip_no_detector(d): -# assert d.last_client_ip == '' - -# def test_last_cliten_ip_call(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getLastClientIP') -# d.last_client_ip -# m.assert_called_once_with() - -# #-------------------------------------------------------------Rate correction -# def test_get_rate_correction(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getRateCorrection') -# m.return_value = [132,129] -# assert d.rate_correction == [132,129] - -# def test_set_rate_correction(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setRateCorrection') -# mock_n = mocker.patch('_slsdet.DetectorApi.getNumberOfDetectors') -# mock_n.return_value = 3 -# d.rate_correction = [123,90,50] -# m.assert_called_once_with([123,90,50]) - -# def test_set_rate_correction_raises_on_wrong_number_of_values(d, mocker): -# mocker.patch('_slsdet.DetectorApi.setRateCorrection') -# mock_n = mocker.patch('_slsdet.DetectorApi.getNumberOfDetectors') -# mock_n.return_value = 4 -# with pytest.raises(ValueError): -# d.rate_correction = [123,90,50] - -# #----------------------------------------------------------------Readout clock -# def test_get_readout_clock_0(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') -# m.return_value = 0 -# assert d.readout_clock == 'Full Speed' - -# def test_get_readout_clock_1(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') -# m.return_value = 1 -# assert d.readout_clock == 'Half Speed' - -# def test_get_readout_clock_2(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') -# m.return_value = 2 -# assert d.readout_clock == 'Quarter Speed' - -# def test_get_readout_clock_3(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getReadoutClockSpeed') -# m.return_value = 3 -# assert d.readout_clock == 'Super Slow Speed' - -# def test_set_readout_clock_0(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') -# d.readout_clock = 'Full Speed' -# m.assert_called_once_with(0) - -# def test_set_readout_clock_1(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') -# d.readout_clock = 'Half Speed' -# m.assert_called_once_with(1) - -# def test_set_readout_clock_2(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') -# d.readout_clock = 'Quarter Speed' -# m.assert_called_once_with(2) - -# def test_set_readout_clock_3(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setReadoutClockSpeed') -# d.readout_clock = 'Super Slow Speed' -# m.assert_called_once_with(3) - -# #----------------------------------------------------------------rx_zmqstream -# def test_get_rx_zmqstream(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getRxDataStreamStatus') -# m.return_value = False -# assert d.rx_zmqstream == False - -# def test_set_rx_zmqstream(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setRxDataStreamStatus') -# d.rx_zmqstream = True -# m.assert_called_once_with(True) - -# def test_get_rx_zmqip(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') -# d.rx_zmqip -# m.assert_called_once_with('rx_zmqip') - -# def test_get_rx_zmqport_call(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') -# d.rx_zmqport -# m.assert_called_once_with('rx_zmqport') - -# def test_get_rx_zmqport_decode(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') -# m.return_value = ['30001', '30003'] -# assert d.rx_zmqport == [30001, 30003] - -# def test_get_rx_zmqport_empty(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getNetworkParameter') -# m.return_value = '' -# assert d.rx_zmqport == [] - - -# #--------------------------------------------------------------------status -# def test_status_call(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getRunStatus') -# d.status -# m.assert_called_once_with() - -# def test_start_detecor(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.startAcquisition') -# d.start_detector() -# m.assert_called_once_with() - -# def test_stop_acq_call(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.stopAcquisition') -# d.stop_detector() -# m.assert_called_once_with() - - - -# #------------------------------------------------------------------timing mode -# def test_get_timing_mode(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getTimingMode') -# d.timing_mode -# m.assert_called_once_with() - -# def test_set_timing_mode(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setTimingMode') -# d.timing_mode = 'auto' -# m.assert_called_once_with('auto') - -# #----------------------------------------------------------------vthreshold -# def test_get_vthreshold(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.getDac') -# d.vthreshold -# m.assert_called_once_with('vthreshold', -1) - -# def test_set_vthreshold(d, mocker): -# m = mocker.patch('_slsdet.DetectorApi.setDac') -# d.vthreshold = 1675 -# m.assert_called_once_with('vthreshold', -1, 1675) - - - - diff --git a/python/tests/test_detector_property.py b/python/tests/test_detector_property.py deleted file mode 100755 index c647c4efc..000000000 --- a/python/tests/test_detector_property.py +++ /dev/null @@ -1,76 +0,0 @@ -import pytest -from sls_detector.detector_property import DetectorProperty - -class Holder: - """ - This class does nothing except hold values - for testing of the DetectorProperty class - """ - def __init__(self, N): - self.values = [i for i in range(N)] - def get(self, i): - return self.values[i] - def set(self, i,v): - self.values[i] = v - def nmod(self): - return len(self.values) - -@pytest.fixture -def p(): - h = Holder(5) - return DetectorProperty(h.get, h.set, h.nmod, 'prop') - -def test_initialization(): - def getf(i): - return 5 - def setf(): - return - def nmod(): - return 3 - name = 'a property' - p = DetectorProperty(getf, setf, nmod, name) - assert p.get == getf - assert p.set == setf - assert p.get_nmod == nmod - assert p.__name__ == name - -def test_get_single_value(p): - assert p[2] == 2 - -def test_get_all_values(p): - assert p[:] == [0, 1, 2, 3, 4] - -def test_get_values_by_iterable(p): - vals = p[1,3] - assert vals == [1,3] - -def test_set_single_value(p): - p[2] = 7 - assert p[:] == [0,1,7,3,4] - -def test_set_all(p): - p[:] = 10 - assert p[:] == [10,10,10,10,10] - -def test_set_all_by_list(p): - p[:] = [7,8,9,10,11] - assert p[:] == [7,8,9,10,11] - -def test_set_all_bool(p): - p[:] = True - assert p[:] == [True]*5 - -def test_set_by_iter(p): - keys = [2,4] - vals = [18,23] - p[keys] = vals - assert p[:] == [0,1,18,3,23] - -def test_set_by_iter_single_val(p): - keys = [2,4] - val = 9 - p[keys] = val - assert p[:] == [0,1,9,3,9] - -def test_print_values(p): - assert repr(p) == 'prop: [0, 1, 2, 3, 4]'