From 3d81187100b6efde980cb5b45dda51e6f85c64c7 Mon Sep 17 00:00:00 2001
From: Yoann Schneider <yschneider@teklia.com>
Date: Mon, 2 Oct 2023 18:34:14 +0200
Subject: [PATCH] one function per param

---
 tests/test_elements_worker/test_elements.py | 128 +++++++++++++++++++-
 1 file changed, 127 insertions(+), 1 deletion(-)

diff --git a/tests/test_elements_worker/test_elements.py b/tests/test_elements_worker/test_elements.py
index 1547bed2..28aa6454 100644
--- a/tests/test_elements_worker/test_elements.py
+++ b/tests/test_elements_worker/test_elements.py
@@ -1222,10 +1222,63 @@ def test_create_elements_integrity_error(
             {"element": "not element type"},
             "element shouldn't be null and should be an Element or CachedElement",
         ),
+
+    ))
+def test_partial_update_element_wrong_param_element(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Type
         ({"type": 1234}, "type should be a str"),
+    ),
+)
+def test_partial_update_element_wrong_param_type(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Name
         ({"name": 1234}, "name should be a str"),
+    )
+)
+def test_partial_update_element_wrong_param_name(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Polygon
         ({"polygon": "not a polygon"}, "polygon should be a list"),
         ({"polygon": [[1, 1], [2, 2]]}, "polygon should have at least three points"),
@@ -1241,6 +1294,24 @@ def test_create_elements_integrity_error(
             {"polygon": [["not a coord", 1], [2, 2], [2, 1], [1, 2]]},
             "polygon points should be lists of two numbers",
         ),
+    )
+)
+def test_partial_update_element_wrong_param_polygon(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Confidence
         ({"confidence": "lol"}, "confidence should be None or a float in [0..1] range"),
         ({"confidence": "0.2"}, "confidence should be None or a float in [0..1] range"),
@@ -1250,19 +1321,74 @@ def test_create_elements_integrity_error(
             {"confidence": float("inf")},
             "confidence should be None or a float in [0..1] range",
         ),
+    )
+)
+def test_partial_update_element_wrong_param_conf(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Rotation angle
         ({"rotation_angle": "lol"}, "rotation_angle should be a positive integer"),
         ({"rotation_angle": -1}, "rotation_angle should be a positive integer"),
         ({"rotation_angle": 0.5}, "rotation_angle should be a positive integer"),
+    )
+)
+def test_partial_update_element_wrong_param_rota(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Mirrored
         ({"mirrored": "lol"}, "mirrored should be a boolean"),
         ({"mirrored": 1234}, "mirrored should be a boolean"),
+    )
+)
+def test_partial_update_element_wrong_param_mir(mock_elements_worker, payload, error):
+    api_payload = {
+        "element": Element({"zone": None}),
+        **payload,
+    }
+
+    with pytest.raises(AssertionError) as e:
+        mock_elements_worker.partial_update_element(
+            **api_payload,
+        )
+    assert str(e.value) == error
+
+
+
+@pytest.mark.parametrize(
+    "payload, error",
+    (
         # Image
         ({"image": "lol"}, "image should be a UUID"),
         ({"image": 1234}, "image should be a UUID"),
     ),
 )
-def test_partial_update_element_wrong_param(mock_elements_worker, payload, error):
+def test_partial_update_element_wrong_param_image(mock_elements_worker, payload, error):
     api_payload = {
         "element": Element({"zone": None}),
         **payload,
-- 
GitLab