]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: tests: utils: types tests parametrization
authorAleš Mrázek <ales.mrazek@nic.cz>
Tue, 22 Mar 2022 14:48:53 +0000 (15:48 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 8 Apr 2022 14:30:44 +0000 (16:30 +0200)
manager/tests/unit/utils/test_types.py

index cf8984587c04ff5a3fcae332d92e6e90dd669d42..cb5087d8702f601df137876ab20b9e45a77e383e 100644 (file)
@@ -1,15 +1,38 @@
-from typing import List
+from typing import Any, Dict, List, Tuple, Union
 
+import pytest
 from typing_extensions import Literal
 
+from knot_resolver_manager.utils.modelling import SchemaNode
 from knot_resolver_manager.utils.types import is_list, is_literal
 
+types = [
+    bool,
+    int,
+    str,
+    Dict[Any, Any],
+    Tuple[Any, Any],
+    Union[str, int],
+    SchemaNode,
+]
+literal_types = [Literal[5], Literal["test"], Literal[False]]
 
-def test_is_list():
-    assert is_list(List[str])
-    assert is_list(List[int])
 
+@pytest.mark.parametrize("val", types)
+def test_is_list_true(val: Any):
+    assert is_list(List[val])
 
-def test_is_literal():
-    assert is_literal(Literal[5])
-    assert is_literal(Literal["test"])
+
+@pytest.mark.parametrize("val", types)
+def test_is_list_false(val: Any):
+    assert not is_list(val)
+
+
+@pytest.mark.parametrize("val", literal_types)
+def test_is_literal_true(val: Any):
+    assert is_literal(Literal[val])
+
+
+@pytest.mark.parametrize("val", types)
+def test_is_literal_false(val: Any):
+    assert not is_literal(val)