mirror of https://github.com/django/django.git
Made SerializeMixin check lockfile attr at import time.
This commit is contained in:
parent
d8c17aa10c
commit
2e4711c611
|
@ -1624,12 +1624,15 @@ class SerializeMixin:
|
|||
"""
|
||||
lockfile = None
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
def __init_subclass__(cls, /, **kwargs):
|
||||
super().__init_subclass__(**kwargs)
|
||||
if cls.lockfile is None:
|
||||
raise ValueError(
|
||||
"{}.lockfile isn't set. Set it to a unique value "
|
||||
"in the base class.".format(cls.__name__))
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls._lockfile = open(cls.lockfile)
|
||||
locks.lock(cls._lockfile, locks.LOCK_EX)
|
||||
super().setUpClass()
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
from django.test import SimpleTestCase
|
||||
from django.test.testcases import SerializeMixin
|
||||
|
||||
|
||||
class TestSerializeMixin(SimpleTestCase):
|
||||
def test_init_without_lockfile(self):
|
||||
msg = (
|
||||
"ExampleTests.lockfile isn't set. Set it to a unique value in the "
|
||||
"base class."
|
||||
)
|
||||
with self.assertRaisesMessage(ValueError, msg):
|
||||
class ExampleTests(SerializeMixin, SimpleTestCase):
|
||||
pass
|
||||
|
||||
|
||||
class TestSerializeMixinUse(SerializeMixin, SimpleTestCase):
|
||||
lockfile = __file__
|
||||
|
||||
def test_usage(self):
|
||||
# Running this test ensures that the lock/unlock functions have passed.
|
||||
pass
|
Loading…
Reference in New Issue