Django

Code

Show
Ignore:
Timestamp:
07/20/08 01:32:54 (6 months ago)
Author:
russellm
Message:

Fixed #7339 -- Added manual calls to the garbage collector. This is required for PyPy and Jython; these implementations don't use reference counting, so you can't rely on del being run immediately after del is called. Thanks to Maciej Fijalkowski (fijal) and Leo Soto.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/tests/regressiontests/dispatch/tests/test_dispatcher.py

    r5876 r8004  
    33import unittest 
    44import copy 
     5import sys 
     6import gc 
     7 
     8if sys.platform.startswith('java'): 
     9    def garbage_collect(): 
     10        """Run the garbage collector and wait a bit to let it do his work""" 
     11        import time 
     12        gc.collect() 
     13        time.sleep(0.1) 
     14else: 
     15    def garbage_collect(): 
     16        gc.collect() 
    517 
    618def x(a): 
     
    2234    def setUp(self): 
    2335        # track the initial state, since it's possible that others have bleed receivers in 
     36        garbage_collect() 
    2437        self.sendersBack = copy.copy(dispatcher.sendersBack) 
    2538        self.connections = copy.copy(dispatcher.connections) 
     
    87100        expected = [] 
    88101        del a 
     102        garbage_collect() 
    89103        result = send('this',b, a=b) 
    90104        self.assertEqual(result, expected) 
     
    102116        expected = [] 
    103117        del a 
     118        garbage_collect() 
    104119        result = send('this',b, a=b) 
    105120        self.assertEqual(result, expected) 
     
    124139        del b 
    125140        del result 
     141        garbage_collect() 
    126142        self._testIsClean() 
    127143     
     
    142158 
    143159if __name__ == "__main__": 
    144     unittest.main () 
     160    unittest.main()