From 9ecbc38ed60d5e521c7acbc4580d2de72207959e Mon Sep 17 00:00:00 2001 From: Clifford Gama Date: Wed, 25 Jun 2025 15:11:44 +0200 Subject: [PATCH] Added benchmarks for SimpleTestCase assertions. --- benchmarks/settings.py | 1 + .../test_utils_benchmarks.py/__init__.py | 0 .../assertions/__init__.py | 0 .../assertions/benchmarks.py | 33 +++++++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 benchmarks/test_utils_benchmarks.py/__init__.py create mode 100644 benchmarks/test_utils_benchmarks.py/assertions/__init__.py create mode 100644 benchmarks/test_utils_benchmarks.py/assertions/benchmarks.py diff --git a/benchmarks/settings.py b/benchmarks/settings.py index d90006ee5a..110f1f77b7 100644 --- a/benchmarks/settings.py +++ b/benchmarks/settings.py @@ -55,6 +55,7 @@ "benchmarks.query_benchmarks.query_select_related", "benchmarks.req_resp_benchmarks.default_middleware", "benchmarks.req_resp_benchmarks.http_methods", + "benchmarks.test_utils_benchmarks.assertions", ] SECRET_KEY = "NOT REALLY SECRET" diff --git a/benchmarks/test_utils_benchmarks.py/__init__.py b/benchmarks/test_utils_benchmarks.py/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/benchmarks/test_utils_benchmarks.py/assertions/__init__.py b/benchmarks/test_utils_benchmarks.py/assertions/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/benchmarks/test_utils_benchmarks.py/assertions/benchmarks.py b/benchmarks/test_utils_benchmarks.py/assertions/benchmarks.py new file mode 100644 index 0000000000..79592a8fc7 --- /dev/null +++ b/benchmarks/test_utils_benchmarks.py/assertions/benchmarks.py @@ -0,0 +1,33 @@ +from django.forms import CharField, Form +from django.test import SimpleTestCase + +from ...utils import bench_setup + + +class DummyForm(Form): + name = CharField() + + +class Assertions: + def setup(self): + bench_setup() + self.html = "

Hello World

" + self.response_content = "

Welcome

Test

" + self.form = DummyForm(data={}) + self.test_case = SimpleTestCase() + + def time_assertContains(self): + self.test_case.assertContains(self.response_content, "Welcome") + + def time_assertNotContains(self): + self.test_case.assertNotContains(self.response_content, "Goodbye") + + def time_assertFormError(self): + self.form.is_valid() + self.test_case.assertFormError(self.form, "name", "This field is required.") + + def time_assertInHTML(self): + self.test_case.assertInHTML("

Hello World

", self.html) + + def time_assertNotInHTML(self): + self.test_case.assertNotInHTML("Django", self.html)