diff --git a/python-zmq.spec b/python-zmq.spec
index 728517f..fc4de87 100644
--- a/python-zmq.spec
+++ b/python-zmq.spec
@@ -133,9 +133,20 @@ cp -p '%{SOURCE1}' .
 
 %check
 # to avoid partially initialized zmq module from cwd
-cd %{_topdir}
-# test_cython does not seem to work with --pyargs / not from cwd
-%pytest --pyargs zmq -k "not test_cython"
+mkdir -p _empty
+cd _empty
+ln -s %{buildroot}%{python3_sitearch}/zmq/ ../pytest.ini ./
+
+# test_draft seems to get incorrectly run:
+# https://github.com/zeromq/pyzmq/issues/1853
+k="${k-}${k+ and }not test_draft"
+
+# Whatever it takes to build the Cython extension tests/cython_ext.pyx that is
+# *in the tests*, we aren’t doing it. This goes away in later releases, so we
+# don’t put any effort into figuring out how to make it work.
+k="${k-}${k+ and }not test_cython"
+
+%pytest -k "${k-}" -v zmq/tests
 
 
 %files -n python%{python3_pkgversion}-zmq -f %{pyproject_files}