diff --git a/test_mccabe.py b/test_mccabe.py
index fe6e8d3..14d8012 100644
--- a/test_mccabe.py
+++ b/test_mccabe.py
@@ -241,37 +241,38 @@ class RegressionTests(unittest.TestCase):
 
 # This test uses the Hypothesis and Hypothesmith libraries to generate random
 # syntatically-valid Python source code and applies McCabe on it.
-@settings(
-    max_examples=1000,  # roughly 1k tests/minute, or half that under coverage
-    derandomize=False,  # deterministic mode to avoid CI flakiness
-    deadline=None,  # ignore Hypothesis' health checks; we already know that
-    suppress_health_check=HealthCheck.all(),  # this is slow and filter-heavy.
-)
-@given(
-    # Note that while Hypothesmith might generate code unlike that written by
-    # humans, it's a general test that should pass for any *valid* source code.
-    # (so e.g. running it against code scraped of the internet might also help)
-    src_contents=hypothesmith.from_grammar() | hypothesmith.from_node(),
-    max_complexity=st.integers(min_value=1),
-)
-@pytest.mark.skipif(not hypothesmith, reason="hypothesmith could not be imported")
-def test_idempotent_any_syntatically_valid_python(
-    src_contents: str, max_complexity: int
-) -> None:
-    """Property-based tests for mccabe.
-
-    This test case is based on a similar test for Black, the code formatter.
-    Black's test was written by Zac Hatfield-Dodds, the author of Hypothesis
-    and the Hypothesmith tool for source code generation.  You can run this
-    file with `python`, `pytest`, or (soon) a coverage-guided fuzzer Zac is
-    working on.
-    """
-
-    # Before starting, let's confirm that the input string is valid Python:
-    compile(src_contents, "<string>", "exec")  # else bug is in hypothesmith
-
-    # Then try to apply get_complexity_number to the code...
-    get_code_complexity(src_contents, max_complexity)
+if hypothesmith:
+    @settings(
+        max_examples=1000,  # roughly 1k tests/minute, or half that under coverage
+        derandomize=False,  # deterministic mode to avoid CI flakiness
+        deadline=None,  # ignore Hypothesis' health checks; we already know that
+        suppress_health_check=HealthCheck.all(),  # this is slow and filter-heavy.
+    )
+    @given(
+        # Note that while Hypothesmith might generate code unlike that written by
+        # humans, it's a general test that should pass for any *valid* source code.
+        # (so e.g. running it against code scraped of the internet might also help)
+        src_contents=hypothesmith.from_grammar() | hypothesmith.from_node(),
+        max_complexity=st.integers(min_value=1),
+    )
+    @pytest.mark.skipif(not hypothesmith, reason="hypothesmith could not be imported")
+    def test_idempotent_any_syntatically_valid_python(
+            src_contents: str, max_complexity: int
+            ) -> None:
+        """Property-based tests for mccabe.
+
+        This test case is based on a similar test for Black, the code formatter.
+        Black's test was written by Zac Hatfield-Dodds, the author of Hypothesis
+        and the Hypothesmith tool for source code generation.  You can run this
+        file with `python`, `pytest`, or (soon) a coverage-guided fuzzer Zac is
+        working on.
+        """
+
+        # Before starting, let's confirm that the input string is valid Python:
+        compile(src_contents, "<string>", "exec")  # else bug is in hypothesmith
+
+        # Then try to apply get_complexity_number to the code...
+        get_code_complexity(src_contents, max_complexity)
 
 
 if __name__ == "__main__":