Fix test on compiled build
diff --git a/mypyc/test/test_emitclass.py b/mypyc/test/test_emitclass.py
index 149798e..4e34f35 100644
--- a/mypyc/test/test_emitclass.py
+++ b/mypyc/test/test_emitclass.py
@@ -1,7 +1,6 @@
 from __future__ import annotations
 
 import unittest
-from unittest.mock import patch
 
 from mypyc.analysis.attrdefined import detect_undefined_bitmap
 from mypyc.codegen.emit import Emitter, EmitterContext
@@ -12,6 +11,7 @@
     setter_name,
     slot_key,
 )
+from mypyc.common import IS_FREE_THREADED
 from mypyc.ir.class_ir import ClassIR
 from mypyc.ir.rtypes import int32_rprimitive, object_rprimitive
 from mypyc.namegen import NameGenerator
@@ -44,16 +44,18 @@
 
         assert getter_name(cls, "down", generator) == "testing___SomeClass_get_down"
 
+    @unittest.skipUnless(IS_FREE_THREADED, "requires a free threaded build")
     def test_free_threaded_ref_attribute_getter_and_setter_use_owner(self) -> None:
+        # Note: We can't monkey patch IS_FREE_THREADED to test this on a build with
+        # the GIL enabled, since monkey patching doesn't work if mypyc is compiled.
         cl = ClassIR("A", "mod")
         cl.attributes = {"o": object_rprimitive}
         cl.deletable = ["o"]
         cl.mro = cl.base_mro = [cl]
         emitter = Emitter(EmitterContext(NameGenerator([["mod"]]), True))
 
-        with patch("mypyc.codegen.emitclass.IS_FREE_THREADED", True):
-            generate_getter(cl, "o", object_rprimitive, emitter)
-            generate_setter(cl, "o", object_rprimitive, emitter)
+        generate_getter(cl, "o", object_rprimitive, emitter)
+        generate_setter(cl, "o", object_rprimitive, emitter)
 
         generated = "".join(emitter.fragments)
         assert "CPy_GetAttrRef((PyObject *)self, (PyObject **)&self->_o)" in generated