blob: 8abcc58382c52905242bfd75526868d48010f0aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import gc
from django.db.models.base import ModelState, ModelStateFieldsCacheDescriptor
from django.test import SimpleTestCase
from django.test.utils import garbage_collect
from .models import Worker, WorkerProfile
class ModelStateTests(SimpleTestCase):
def test_fields_cache_descriptor(self):
self.assertIsInstance(ModelState.fields_cache, ModelStateFieldsCacheDescriptor)
def test_one_to_one_field_cycle_collection(self):
self.addCleanup(gc.set_debug, gc.get_debug())
gc.set_debug(gc.DEBUG_SAVEALL)
def clear_garbage():
del gc.garbage[:]
self.addCleanup(clear_garbage)
worker = Worker()
profile = WorkerProfile(worker=worker)
worker_id = id(worker)
del worker
del profile
garbage_collect()
leaked = [obj for obj in gc.garbage if id(obj) == worker_id]
self.assertEqual(leaked, [])
|