mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 21:04:50 -04:00
Do a GC after each test to fix logcontext leaks (#4227)
* Some words about garbage collections and logcontexts * Do a GC after each test to fix logcontext leaks This feels like an awful hack, but... * changelog
This commit is contained in:
parent
e8690dec2e
commit
de8772a655
3 changed files with 71 additions and 3 deletions
|
@ -13,7 +13,7 @@
|
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import gc
|
||||
import hashlib
|
||||
import hmac
|
||||
import logging
|
||||
|
@ -31,7 +31,7 @@ from synapse.http.server import JsonResource
|
|||
from synapse.http.site import SynapseRequest
|
||||
from synapse.server import HomeServer
|
||||
from synapse.types import UserID, create_requester
|
||||
from synapse.util.logcontext import LoggingContextFilter
|
||||
from synapse.util.logcontext import LoggingContext, LoggingContextFilter
|
||||
|
||||
from tests.server import get_clock, make_request, render, setup_test_homeserver
|
||||
from tests.utils import default_config
|
||||
|
@ -115,6 +115,17 @@ class TestCase(unittest.TestCase):
|
|||
logging.getLogger().setLevel(level)
|
||||
return orig()
|
||||
|
||||
@around(self)
|
||||
def tearDown(orig):
|
||||
ret = orig()
|
||||
|
||||
# force a GC to workaround problems with deferreds leaking logcontexts when
|
||||
# they are GCed (see the logcontext docs)
|
||||
gc.collect()
|
||||
LoggingContext.set_current_context(LoggingContext.sentinel)
|
||||
|
||||
return ret
|
||||
|
||||
def assertObjectHasAttributes(self, attrs, obj):
|
||||
"""Asserts that the given object has each of the attributes given, and
|
||||
that the value of each matches according to assertEquals."""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue