Skip to content

Commit 1b5cf42

Browse files
authored
Stop using assertEqual use assert instead (#389)
1 parent e992f8b commit 1b5cf42

File tree

6 files changed

+93
-78
lines changed

6 files changed

+93
-78
lines changed

django_prometheus/tests/end2end/testapp/test_db.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from django_prometheus.testutils import (
77
PrometheusTestCaseMixin,
88
assert_metric_compare,
9+
assert_metric_diff,
910
get_metric,
1011
save_registry,
1112
)
@@ -86,7 +87,7 @@ def test_execute_many(self):
8687
"INSERT INTO testapp_lawn(location) VALUES (?)",
8788
[("Paris",), ("New York",), ("Berlin",), ("San Francisco",)],
8889
)
89-
self.assertMetricDiff(
90+
assert_metric_diff(
9091
registry,
9192
4,
9293
"django_db_execute_many_total",

django_prometheus/tests/end2end/testapp/test_middleware.py

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from django.test import SimpleTestCase, override_settings
22
from testapp.views import ObjectionException
33

4-
from django_prometheus.testutils import PrometheusTestCaseMixin, save_registry
4+
from django_prometheus.testutils import (
5+
PrometheusTestCaseMixin,
6+
assert_metric_diff,
7+
save_registry,
8+
)
59

610

711
def M(metric_name):
@@ -36,28 +40,28 @@ def test_request_counters(self):
3640
self.client.get("/help")
3741
self.client.post("/", {"test": "data"})
3842

39-
self.assertMetricDiff(registry, 4, M("requests_before_middlewares_total"))
40-
self.assertMetricDiff(registry, 4, M("responses_before_middlewares_total"))
41-
self.assertMetricDiff(registry, 3, T("requests_total_by_method"), method="GET")
42-
self.assertMetricDiff(registry, 1, T("requests_total_by_method"), method="POST")
43-
self.assertMetricDiff(registry, 4, T("requests_total_by_transport"), transport="http")
44-
self.assertMetricDiff(
43+
assert_metric_diff(registry, 4, M("requests_before_middlewares_total"))
44+
assert_metric_diff(registry, 4, M("responses_before_middlewares_total"))
45+
assert_metric_diff(registry, 3, T("requests_total_by_method"), method="GET")
46+
assert_metric_diff(registry, 1, T("requests_total_by_method"), method="POST")
47+
assert_metric_diff(registry, 4, T("requests_total_by_transport"), transport="http")
48+
assert_metric_diff(
4549
registry,
4650
2,
4751
T("requests_total_by_view_transport_method"),
4852
view="testapp.views.index",
4953
transport="http",
5054
method="GET",
5155
)
52-
self.assertMetricDiff(
56+
assert_metric_diff(
5357
registry,
5458
1,
5559
T("requests_total_by_view_transport_method"),
5660
view="testapp.views.help",
5761
transport="http",
5862
method="GET",
5963
)
60-
self.assertMetricDiff(
64+
assert_metric_diff(
6165
registry,
6266
1,
6367
T("requests_total_by_view_transport_method"),
@@ -68,16 +72,16 @@ def test_request_counters(self):
6872
# We have 3 requests with no post body, and one with a few
6973
# bytes, but buckets are cumulative so that is 4 requests with
7074
# <=128 bytes bodies.
71-
self.assertMetricDiff(registry, 3, M("requests_body_total_bytes_bucket"), le="0.0")
72-
self.assertMetricDiff(registry, 4, M("requests_body_total_bytes_bucket"), le="128.0")
75+
assert_metric_diff(registry, 3, M("requests_body_total_bytes_bucket"), le="0.0")
76+
assert_metric_diff(registry, 4, M("requests_body_total_bytes_bucket"), le="128.0")
7377
self.assertMetricEquals(None, M("responses_total_by_templatename"), templatename="help.html")
74-
self.assertMetricDiff(registry, 3, T("responses_total_by_templatename"), templatename="index.html")
75-
self.assertMetricDiff(registry, 4, T("responses_total_by_status"), status="200")
76-
self.assertMetricDiff(registry, 0, M("responses_body_total_bytes_bucket"), le="0.0")
77-
self.assertMetricDiff(registry, 3, M("responses_body_total_bytes_bucket"), le="128.0")
78-
self.assertMetricDiff(registry, 4, M("responses_body_total_bytes_bucket"), le="8192.0")
79-
self.assertMetricDiff(registry, 4, T("responses_total_by_charset"), charset="utf-8")
80-
self.assertMetricDiff(registry, 0, M("responses_streaming_total"))
78+
assert_metric_diff(registry, 3, T("responses_total_by_templatename"), templatename="index.html")
79+
assert_metric_diff(registry, 4, T("responses_total_by_status"), status="200")
80+
assert_metric_diff(registry, 0, M("responses_body_total_bytes_bucket"), le="0.0")
81+
assert_metric_diff(registry, 3, M("responses_body_total_bytes_bucket"), le="128.0")
82+
assert_metric_diff(registry, 4, M("responses_body_total_bytes_bucket"), le="8192.0")
83+
assert_metric_diff(registry, 4, T("responses_total_by_charset"), charset="utf-8")
84+
assert_metric_diff(registry, 0, M("responses_streaming_total"))
8185

8286
def test_latency_histograms(self):
8387
# Caution: this test is timing-based. This is not ideal. It
@@ -90,15 +94,15 @@ def test_latency_histograms(self):
9094
# This always takes more than .1 second, so checking the lower
9195
# buckets is fine.
9296
self.client.get("/slow")
93-
self.assertMetricDiff(
97+
assert_metric_diff(
9498
registry,
9599
0,
96100
M("requests_latency_seconds_by_view_method_bucket"),
97101
le="0.05",
98102
view="slow",
99103
method="GET",
100104
)
101-
self.assertMetricDiff(
105+
assert_metric_diff(
102106
registry,
103107
1,
104108
M("requests_latency_seconds_by_view_method_bucket"),
@@ -114,7 +118,7 @@ def test_exception_latency_histograms(self):
114118
self.client.get("/objection")
115119
except ObjectionException:
116120
pass
117-
self.assertMetricDiff(
121+
assert_metric_diff(
118122
registry,
119123
2,
120124
M("requests_latency_seconds_by_view_method_bucket"),
@@ -127,5 +131,5 @@ def test_streaming_responses(self):
127131
registry = save_registry()
128132
self.client.get("/")
129133
self.client.get("/file")
130-
self.assertMetricDiff(registry, 1, M("responses_streaming_total"))
131-
self.assertMetricDiff(registry, 1, M("responses_body_total_bytes_bucket"), le="+Inf")
134+
assert_metric_diff(registry, 1, M("responses_streaming_total"))
135+
assert_metric_diff(registry, 1, M("responses_body_total_bytes_bucket"), le="+Inf")

django_prometheus/tests/end2end/testapp/test_middleware_custom_labels.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
PrometheusAfterMiddleware,
1010
PrometheusBeforeMiddleware,
1111
)
12-
from django_prometheus.testutils import PrometheusTestCaseMixin, save_registry
12+
from django_prometheus.testutils import (
13+
PrometheusTestCaseMixin,
14+
assert_metric_diff,
15+
save_registry,
16+
)
1317

1418
EXTENDED_METRICS = [
1519
M("requests_latency_seconds_by_view_method"),
@@ -62,36 +66,36 @@ def test_request_counters(self):
6266
self.client.get("/help")
6367
self.client.post("/", {"test": "data"})
6468

65-
self.assertMetricDiff(registry, 4, M("requests_before_middlewares_total"))
66-
self.assertMetricDiff(registry, 4, M("responses_before_middlewares_total"))
67-
self.assertMetricDiff(registry, 3, T("requests_total_by_method"), method="GET")
68-
self.assertMetricDiff(registry, 1, T("requests_total_by_method"), method="POST")
69-
self.assertMetricDiff(registry, 4, T("requests_total_by_transport"), transport="http")
70-
self.assertMetricDiff(
69+
assert_metric_diff(registry, 4, M("requests_before_middlewares_total"))
70+
assert_metric_diff(registry, 4, M("responses_before_middlewares_total"))
71+
assert_metric_diff(registry, 3, T("requests_total_by_method"), method="GET")
72+
assert_metric_diff(registry, 1, T("requests_total_by_method"), method="POST")
73+
assert_metric_diff(registry, 4, T("requests_total_by_transport"), transport="http")
74+
assert_metric_diff(
7175
registry,
7276
2,
7377
T("requests_total_by_view_transport_method"),
7478
view="testapp.views.index",
7579
transport="http",
7680
method="GET",
7781
)
78-
self.assertMetricDiff(
82+
assert_metric_diff(
7983
registry,
8084
1,
8185
T("requests_total_by_view_transport_method"),
8286
view="testapp.views.help",
8387
transport="http",
8488
method="GET",
8589
)
86-
self.assertMetricDiff(
90+
assert_metric_diff(
8791
registry,
8892
1,
8993
T("requests_total_by_view_transport_method"),
9094
view="testapp.views.index",
9195
transport="http",
9296
method="POST",
9397
)
94-
self.assertMetricDiff(
98+
assert_metric_diff(
9599
registry,
96100
2.0,
97101
T("responses_total_by_status_view_method"),
@@ -101,7 +105,7 @@ def test_request_counters(self):
101105
view_type="foo",
102106
user_agent_type="browser",
103107
)
104-
self.assertMetricDiff(
108+
assert_metric_diff(
105109
registry,
106110
1.0,
107111
T("responses_total_by_status_view_method"),
Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from django.test import TestCase
22
from testapp.models import Dog, Lawn
33

4-
from django_prometheus.testutils import PrometheusTestCaseMixin, save_registry
4+
from django_prometheus.testutils import (
5+
PrometheusTestCaseMixin,
6+
assert_metric_diff,
7+
save_registry,
8+
)
59

610

711
def M(metric_name):
@@ -21,31 +25,31 @@ def test_counters(self):
2125
cool = Dog()
2226
cool.name = "Cool"
2327
cool.save()
24-
self.assertMetricDiff(registry, 1, M("inserts_total"), model="dog")
28+
assert_metric_diff(registry, 1, M("inserts_total"), model="dog")
2529

2630
elysees = Lawn()
2731
elysees.location = "Champs Elysees, Paris"
2832
elysees.save()
29-
self.assertMetricDiff(registry, 1, M("inserts_total"), model="lawn")
30-
self.assertMetricDiff(registry, 1, M("inserts_total"), model="dog")
33+
assert_metric_diff(registry, 1, M("inserts_total"), model="lawn")
34+
assert_metric_diff(registry, 1, M("inserts_total"), model="dog")
3135

3236
galli = Dog()
3337
galli.name = "Galli"
3438
galli.save()
35-
self.assertMetricDiff(registry, 2, M("inserts_total"), model="dog")
39+
assert_metric_diff(registry, 2, M("inserts_total"), model="dog")
3640

3741
cool.breed = "Wolfhound"
38-
self.assertMetricDiff(registry, 2, M("inserts_total"), model="dog")
42+
assert_metric_diff(registry, 2, M("inserts_total"), model="dog")
3943

4044
cool.save()
41-
self.assertMetricDiff(registry, 2, M("inserts_total"), model="dog")
42-
self.assertMetricDiff(registry, 1, M("updates_total"), model="dog")
45+
assert_metric_diff(registry, 2, M("inserts_total"), model="dog")
46+
assert_metric_diff(registry, 1, M("updates_total"), model="dog")
4347

4448
cool.age = 9
4549
cool.save()
46-
self.assertMetricDiff(registry, 2, M("updates_total"), model="dog")
50+
assert_metric_diff(registry, 2, M("updates_total"), model="dog")
4751

4852
cool.delete() # :(
49-
self.assertMetricDiff(registry, 2, M("inserts_total"), model="dog")
50-
self.assertMetricDiff(registry, 2, M("updates_total"), model="dog")
51-
self.assertMetricDiff(registry, 1, M("deletes_total"), model="dog")
53+
assert_metric_diff(registry, 2, M("inserts_total"), model="dog")
54+
assert_metric_diff(registry, 2, M("updates_total"), model="dog")
55+
assert_metric_diff(registry, 1, M("deletes_total"), model="dog")

django_prometheus/tests/test_testutils.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from django_prometheus.testutils import (
88
PrometheusTestCaseMixin,
9+
assert_metric_diff,
910
assert_metric_no_diff,
1011
assert_metric_not_equal,
1112
get_metric,
@@ -104,8 +105,8 @@ def test_registry_saving(self):
104105
assert 42 == get_metric_from_frozen_registry("some_gauge", frozen_registry)
105106
self.some_gauge.set(99)
106107
assert 42 == get_metric_from_frozen_registry("some_gauge", frozen_registry)
107-
self.test_case.assertMetricDiff(frozen_registry, 99 - 42, "some_gauge", registry=self.registry)
108-
assert self.test_case.passes is True
108+
assert_metric_diff(frozen_registry, 99 - 42, "some_gauge", registry=self.registry)
109+
109110
assert_metric_no_diff(frozen_registry, 1, "some_gauge", registry=self.registry)
110111

111112
# Now test the same thing with a labelled metric.
@@ -116,15 +117,15 @@ def test_registry_saving(self):
116117
assert 1 == get_metric_from_frozen_registry(
117118
"some_labelled_gauge", frozen_registry, labelred="pink", labelblue="indigo"
118119
)
119-
self.test_case.assertMetricDiff(
120+
assert_metric_diff(
120121
frozen_registry,
121122
5 - 1,
122123
"some_labelled_gauge",
123124
registry=self.registry,
124125
labelred="pink",
125126
labelblue="indigo",
126127
)
127-
assert self.test_case.passes is True
128+
128129
assert_metric_no_diff(
129130
frozen_registry,
130131
1,

django_prometheus/testutils.py

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,33 @@ def assertMetricEquals(self, expected_value, metric_name, registry=REGISTRY, **l
4242
metric_name,
4343
format_vector(get_metrics_vector(metric_name)),
4444
)
45-
self.assertEqual(expected_value, value, assert_err)
46-
47-
def assertMetricDiff(self, frozen_registry, expected_diff, metric_name, registry=REGISTRY, **labels):
48-
"""Asserts that metric_name{**labels} changed by expected_diff between
49-
the frozen registry and now. A frozen registry can be obtained
50-
by calling save_registry, typically at the beginning of a test
51-
case.
52-
"""
53-
saved_value = get_metric_from_frozen_registry(metric_name, frozen_registry, **labels)
54-
current_value = get_metric(metric_name, registry=registry, **labels)
55-
assert current_value is not None, METRIC_DIFF_ERR_NONE_EXPLANATION % (
56-
metric_name,
57-
format_labels(labels),
58-
saved_value,
59-
current_value,
60-
)
61-
diff = current_value - (saved_value or 0.0)
62-
assert_err = METRIC_DIFF_ERR_EXPLANATION % (
63-
metric_name,
64-
format_labels(labels),
65-
diff,
66-
expected_diff,
67-
saved_value,
68-
current_value,
69-
)
70-
self.assertEqual(expected_diff, diff, assert_err)
45+
assert expected_value == value, assert_err
46+
47+
48+
def assert_metric_diff(frozen_registry, expected_diff, metric_name, registry=REGISTRY, **labels):
49+
"""Asserts that metric_name{**labels} changed by expected_diff between
50+
the frozen registry and now. A frozen registry can be obtained
51+
by calling save_registry, typically at the beginning of a test
52+
case.
53+
"""
54+
saved_value = get_metric_from_frozen_registry(metric_name, frozen_registry, **labels)
55+
current_value = get_metric(metric_name, registry=registry, **labels)
56+
assert current_value is not None, METRIC_DIFF_ERR_NONE_EXPLANATION % (
57+
metric_name,
58+
format_labels(labels),
59+
saved_value,
60+
current_value,
61+
)
62+
diff = current_value - (saved_value or 0.0)
63+
assert_err = METRIC_DIFF_ERR_EXPLANATION % (
64+
metric_name,
65+
format_labels(labels),
66+
diff,
67+
expected_diff,
68+
saved_value,
69+
current_value,
70+
)
71+
assert expected_diff == diff, assert_err
7172

7273

7374
def assert_metric_no_diff(frozen_registry, expected_diff, metric_name, registry=REGISTRY, **labels):
@@ -138,7 +139,7 @@ def save_registry(registry=REGISTRY):
138139
139140
registry = save_registry()
140141
doStuff()
141-
self.assertMetricDiff(registry, 1, 'stuff_done_total')
142+
assert_metric_diff(registry, 1, 'stuff_done_total')
142143
"""
143144
return copy.deepcopy(list(registry.collect()))
144145

0 commit comments

Comments
 (0)