diff --git a/pyproject.toml b/pyproject.toml index 601bff5..49fe44b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -118,7 +118,7 @@ float_to_top = true [tool.pytest.ini_options] addopts = "--ignore=tests/benchmarks --ignore=tests/examples --ignore=tests/benchmarks/TheAlgorithms" filterwarnings = ["ignore::DeprecationWarning:pytest_benchmark.utils.*:"] -pythonpath = ["tests/benchmarks/TheAlgorithms", "./scripts"] +pythonpath = ["tests/benchmarks/TheAlgorithms", "./scripts", "tests/benchmarks"] [tool.coverage.run] branch = true diff --git a/tests/benchmarks/test_bench_imports/__init__.py b/tests/benchmarks/test_bench_imports/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/benchmarks/test_bench_imports/module_a.py b/tests/benchmarks/test_bench_imports/module_a.py new file mode 100644 index 0000000..08b7470 --- /dev/null +++ b/tests/benchmarks/test_bench_imports/module_a.py @@ -0,0 +1,3 @@ +# Fake import initialization payload +for i in range(10000): + pass diff --git a/tests/benchmarks/test_bench_imports/module_b.py b/tests/benchmarks/test_bench_imports/module_b.py new file mode 100644 index 0000000..29ab6b3 --- /dev/null +++ b/tests/benchmarks/test_bench_imports/module_b.py @@ -0,0 +1,5 @@ +# Depends on module_a.py +from . import module_a +# Fake import initialization payload +for i in range(10000): + pass \ No newline at end of file diff --git a/tests/benchmarks/test_bench_imports/test_bench_imports.py b/tests/benchmarks/test_bench_imports/test_bench_imports.py new file mode 100644 index 0000000..f9a4676 --- /dev/null +++ b/tests/benchmarks/test_bench_imports/test_bench_imports.py @@ -0,0 +1,14 @@ +import importlib +import sys +import time +import pytest +from unittest import mock + +@pytest.mark.parametrize("mod_name", [".module_a", ".module_b"]) +def test_bench_module_import(benchmark, mod_name): + @benchmark + def _(): + with mock.patch("sys.modules", {}): + importlib.import_module(mod_name, "test_bench_imports") + + diff --git a/tests/benchmarks/test_bench_unittest.py b/tests/benchmarks/test_bench_unittest.py new file mode 100644 index 0000000..6c26191 --- /dev/null +++ b/tests/benchmarks/test_bench_unittest.py @@ -0,0 +1,20 @@ +import unittest + +import pytest + + +class MyBenchmark(unittest.TestCase): + def setUp(self): + # Initialize the benchmark environment + self.input = ( + "Lorem Ipsum is simply dummy text of the printing and typesetting industry." + * 100 + ) + + @pytest.mark.benchmark + def test_bench_hash(self): + hash(self.input) + + def tearDown(self): + # Clean up the benchmark environment + pass