|
16 | 16 | from ddtrace.internal.utils.cache import cachedmethod
|
17 | 17 | from ddtrace.internal.utils.cache import callonce
|
18 | 18 | from ddtrace.internal.utils.formats import asbool
|
| 19 | +from ddtrace.internal.utils.formats import flatten_key_value |
| 20 | +from ddtrace.internal.utils.formats import is_sequence |
19 | 21 | from ddtrace.internal.utils.formats import parse_tags_str
|
20 | 22 | from ddtrace.internal.utils.http import w3c_get_dd_list_member
|
21 | 23 | from ddtrace.internal.utils.importlib import func_name
|
@@ -96,6 +98,40 @@ def test_parse_env_tags(tag_str, expected_tags, error_calls):
|
96 | 98 | assert log.error.call_count == 0, log.error.call_args_list
|
97 | 99 |
|
98 | 100 |
|
| 101 | +@pytest.mark.parametrize( |
| 102 | + "key,value,expected", |
| 103 | + [ |
| 104 | + ("a", "1", {"a": "1"}), |
| 105 | + ("a", set("0"), {"a.0": "0"}), |
| 106 | + ("a", frozenset("0"), {"a.0": "0"}), |
| 107 | + ("a", ["0", "1", "2", "3"], {"a.0": "0", "a.1": "1", "a.2": "2", "a.3": "3"}), |
| 108 | + ("a", ("0", "1", "2", "3"), {"a.0": "0", "a.1": "1", "a.2": "2", "a.3": "3"}), |
| 109 | + ( |
| 110 | + "a", |
| 111 | + ["0", {"1"}, ("2",), ["3", "4", ["5"]]], |
| 112 | + {"a.0": "0", "a.1.0": "1", "a.2.0": "2", "a.3.0": "3", "a.3.1": "4", "a.3.2.0": "5"}, |
| 113 | + ), |
| 114 | + ], |
| 115 | +) |
| 116 | +def test_flatten_key_value_pairs(key, value, expected): |
| 117 | + assert flatten_key_value(key, value) == expected |
| 118 | + |
| 119 | + |
| 120 | +@pytest.mark.parametrize( |
| 121 | + "value,expected", |
| 122 | + [ |
| 123 | + (("0", "1"), True), |
| 124 | + (["0", "1"], True), |
| 125 | + ({"0", "1"}, True), |
| 126 | + (frozenset(["0", "1"]), True), |
| 127 | + ("123", False), |
| 128 | + ({"a": "1"}, False), |
| 129 | + ], |
| 130 | +) |
| 131 | +def test_is_sequence(value, expected): |
| 132 | + assert is_sequence(value) == expected |
| 133 | + |
| 134 | + |
99 | 135 | def test_no_states():
|
100 | 136 | watch = time.StopWatch()
|
101 | 137 | with pytest.raises(RuntimeError):
|
|
0 commit comments