|
1 | 1 | import re |
2 | 2 |
|
3 | | -from alpacloud.promls.filter import filter_name |
| 3 | +from alpacloud.promls.filter import filter_any, filter_name, filter_path |
4 | 4 | from alpacloud.promls.metrics import Metric |
5 | 5 |
|
6 | 6 |
|
@@ -48,69 +48,47 @@ def test_search_ignores_helptext(self): |
48 | 48 |
|
49 | 49 | class TestFilterAny: |
50 | 50 | def test_matches_when_pattern_in_name(self): |
51 | | - from filter import filter_any |
52 | | - |
53 | 51 | predicate = filter_any(re.compile("latency")) |
54 | 52 | assert predicate(Metric("http_latency_seconds", "HTTP request latency", "histogram")) is True |
55 | 53 |
|
56 | 54 | def test_matches_when_pattern_in_help(self): |
57 | | - from filter import filter_any |
58 | | - |
59 | 55 | predicate = filter_any(re.compile(r"request latency")) |
60 | 56 | assert predicate(Metric("http_seconds", "HTTP request latency", "histogram")) is True |
61 | 57 |
|
62 | 58 | def test_does_not_match_when_neither_name_nor_help_match(self): |
63 | | - from filter import filter_any |
64 | | - |
65 | 59 | predicate = filter_any(re.compile("throughput")) |
66 | 60 | assert predicate(Metric("http_latency_seconds", "HTTP request latency", "histogram")) is False |
67 | 61 |
|
68 | 62 | def test_case_insensitive_with_flag(self): |
69 | | - from filter import filter_any |
70 | | - |
71 | 63 | predicate = filter_any(re.compile("LATENCY", re.IGNORECASE)) |
72 | 64 | assert predicate(Metric("http_latency_seconds", "HTTP request latency", "histogram")) is True |
73 | 65 |
|
74 | 66 | def test_empty_pattern_matches_everything(self): |
75 | | - from filter import filter_any |
76 | | - |
77 | 67 | predicate = filter_any(re.compile("")) |
78 | 68 | assert predicate(Metric("anything", "and everything", "counter")) is True |
79 | 69 |
|
80 | 70 |
|
81 | 71 | class TestFilterPath: |
82 | 72 | def test_matches_prefix_path(self): |
83 | | - from filter import filter_path |
84 | | - |
85 | 73 | predicate = filter_path(["http", "server"]) |
86 | 74 | assert predicate(Metric("http_server_requests_total", "Total HTTP server requests", "counter")) is True |
87 | 75 |
|
88 | 76 | def test_does_not_match_when_prefix_not_at_start(self): |
89 | | - from filter import filter_path |
90 | | - |
91 | 77 | predicate = filter_path(["http", "server"]) |
92 | 78 | assert predicate(Metric("xhttp_server_requests_total", "prefixed with x", "counter")) is False |
93 | 79 |
|
94 | 80 | def test_does_not_match_different_prefix(self): |
95 | | - from filter import filter_path |
96 | | - |
97 | 81 | predicate = filter_path(["http", "server"]) |
98 | 82 | assert predicate(Metric("http_client_requests_total", "client metric", "counter")) is False |
99 | 83 |
|
100 | 84 | def test_exact_match(self): |
101 | | - from filter import filter_path |
102 | | - |
103 | 85 | predicate = filter_path(["http", "server"]) |
104 | 86 | assert predicate(Metric("http_server", "exact match", "gauge")) is True |
105 | 87 |
|
106 | 88 | def test_longer_path_matches(self): |
107 | | - from filter import filter_path |
108 | | - |
109 | 89 | predicate = filter_path(["a", "b", "c"]) |
110 | 90 | assert predicate(Metric("a_b_c_d", "longer metric name", "counter")) is True |
111 | 91 |
|
112 | 92 | def test_case_sensitive_by_default(self): |
113 | | - from filter import filter_path |
114 | | - |
115 | 93 | predicate = filter_path(["HTTP", "server"]) |
116 | 94 | assert predicate(Metric("http_server_requests_total", "lowercase name", "counter")) is False |
0 commit comments