From: Mike Bayer Date: Tue, 22 Jul 2014 16:54:39 +0000 (-0400) Subject: - allow 10 stray connections that need a gc X-Git-Tag: rel_0_9_7~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3494ed44fb4d75e0154901c861dc491d6ac86453;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - allow 10 stray connections that need a gc - be specific as to what occurred when we collect stray gc --- diff --git a/lib/sqlalchemy/testing/assertions.py b/lib/sqlalchemy/testing/assertions.py index f9331a73e7..79411af7e9 100644 --- a/lib/sqlalchemy/testing/assertions.py +++ b/lib/sqlalchemy/testing/assertions.py @@ -154,8 +154,7 @@ def _assert_no_stray_pool_connections(): # there's a ref in there. usually just one. if pool._refs: - # OK, let's be somewhat forgiving. Increment a counter, - # we'll allow a couple of these at most. + # OK, let's be somewhat forgiving. _STRAY_CONNECTION_FAILURES += 1 print("Encountered a stray connection in test cleanup: %s" @@ -168,7 +167,7 @@ def _assert_no_stray_pool_connections(): # if we've already had two of these occurrences, or # after a hard gc sweep we still have pool._refs?! # now we have to raise. - if _STRAY_CONNECTION_FAILURES >= 2 or pool._refs: + if pool._refs: err = str(pool._refs) # but clean out the pool refs collection directly, @@ -176,7 +175,11 @@ def _assert_no_stray_pool_connections(): # so the error doesn't at least keep happening. pool._refs.clear() _STRAY_CONNECTION_FAILURES = 0 - assert False, "Stray connections in cleanup: %s" % err + assert False, "Stray connection refused to leave "\ + "after gc.collect(): %s" % err + elif _STRAY_CONNECTION_FAILURES > 10: + assert False, "Encountered more than 10 stray connections" + _STRAY_CONNECTION_FAILURES = 0 def eq_(a, b, msg=None):