From 5fff3ca6ae96b9c2a73c22afdb409b80af8e9dd3 Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Mon, 2 Jan 2023 10:14:52 +0100
Subject: [PATCH] add test

---
 setup.py                       |  1 +
 tests/test_calcat_interface.py | 81 ++++++++++++++++++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 tests/test_calcat_interface.py

diff --git a/setup.py b/setup.py
index c9f0722aa..e68e1e4d9 100644
--- a/setup.py
+++ b/setup.py
@@ -110,6 +110,7 @@ if "readthedocs.org" not in sys.executable:
     install_requires += [
         "iCalibrationDB @ git+ssh://git@git.xfel.eu:10022/detectors/cal_db_interactive.git@2.3.0",  # noqa
         "XFELDetectorAnalysis @ git+ssh://git@git.xfel.eu:10022/karaboDevices/pyDetLib.git@2.7.0",  # noqa
+        "calibration_client @ git+ssh://git.xfel.eu:10022/ITDM/calibration_client.git@410e48bbff84b0d011a332cac95e3c8b499e9a28"
     ]
 
 setup(
diff --git a/tests/test_calcat_interface.py b/tests/test_calcat_interface.py
new file mode 100644
index 000000000..6cd935185
--- /dev/null
+++ b/tests/test_calcat_interface.py
@@ -0,0 +1,81 @@
+"""
+TEST CALCAT INTERFACE:
+
+1- AGIPD_CalibrationData/ CalibrationData / metadata()
+2- physical_detector_units().
+"""
+
+import pytest
+
+from cal_tools.calcat_interface import AGIPD_CalibrationData, DSSC_CalibrationData
+
+
+@pytest.mark.requires_gpfs
+@pytest.mark.parametrize(
+    "mod,mod_naming",
+    [
+        ("AGIPD00", "da"),
+        ("Q1M1", "qm"),
+        (0, "modno"),
+
+    ]
+)
+def test_AGIPD_CalibrationData(mod, mod_naming):
+    """Test CalibrationData through AGIPD_CalibrationData
+    and test metadata method.
+
+    Args:
+        mod (str): Module name
+        mod_naming (str): Selected module naming
+    """
+    agipd_md = AGIPD_CalibrationData(
+        detector_name="SPB_DET_AGIPD1M-1",
+        sensor_bias_voltage=300,
+        memory_cells=352,
+        acquisition_rate=1.1,
+        integration_time=12,
+        source_energy=9.2,
+        gain_mode=0,
+        gain_setting=0,
+        event_at="2020-01-07 13:26:48.00",
+        modules=[mod],
+        client=None,
+        module_naming=mod_naming
+    ).metadata()
+    assert isinstance(agipd_md, dict)
+    assert list(agipd_md.keys())[0] == mod
+
+
+@pytest.mark.parametrize(
+    "mod,mod_naming",
+    [
+        ("DSSC00", "da"),
+        ("Q1M1", "qm"),
+        (0, "modno"),
+
+    ]
+)
+def test_physical_detector_units(mod, mod_naming):
+    """Test physical_detector_units property.
+
+    Args:
+        mod (str): Module name
+        mod_naming (str): Selected module naming
+    """
+    agipd_cal = DSSC_CalibrationData(
+        detector_name="SCS_DET_DSSC1M-1",
+        sensor_bias_voltage=300,
+        memory_cells=400,
+        pulse_id_checksum=None,
+        acquisition_rate=None,
+        target_gain=None,
+        encoded_gain=None,
+        event_at="2020-01-07 13:26:48.00",
+        modules=[mod],
+        client=None,
+        module_naming=mod_naming
+    )
+    pdus = agipd_cal.physical_detector_units
+    assert isinstance(pdus, dict)
+    assert len(pdus) == 16
+    assert list(pdus.keys())[0] == mod
-- 
GitLab