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