mirror of https://github.com/fail2ban/fail2ban
Merge pull request #2651 from fail2ban/0.10-travis-3.9-dev
python 3.9 compatibility + CIpull/2689/head
commit
428c75d1cd
|
@ -26,6 +26,7 @@ matrix:
|
|||
- python: 3.6
|
||||
- python: 3.7
|
||||
- python: 3.8
|
||||
- python: 3.9-dev
|
||||
- python: pypy3.5
|
||||
before_install:
|
||||
- echo "running under $TRAVIS_PYTHON_VERSION"
|
||||
|
|
|
@ -32,6 +32,7 @@ ver. 0.10.6-dev (20??/??/??) - development edition
|
|||
IPv6-capable now.
|
||||
|
||||
### Fixes
|
||||
* python 3.9 compatibility (and Travis CI support)
|
||||
* restoring a large number (500+ depending on files ulimit) of current bans when using PyPy fixed
|
||||
* manual ban is written to database, so can be restored by restart (gh-2647)
|
||||
* `filter.d/common.conf`: avoid substitute of default values in related `lt_*` section, `__prefix_line`
|
||||
|
|
|
@ -120,3 +120,6 @@ class JailThread(Thread):
|
|||
## python 2.x replace binding of private __bootstrap method:
|
||||
if sys.version_info < (3,): # pragma: 3.x no cover
|
||||
JailThread._Thread__bootstrap = JailThread._JailThread__bootstrap
|
||||
## python 3.9, restore isAlive method:
|
||||
elif not hasattr(JailThread, 'isAlive'): # pragma: 2.x no cover
|
||||
JailThread.isAlive = JailThread.is_alive
|
||||
|
|
|
@ -86,7 +86,7 @@ class Socket(LogCaptureTestCase):
|
|||
def _stopServerThread(self):
|
||||
serverThread = self.serverThread
|
||||
# wait for end of thread :
|
||||
Utils.wait_for(lambda: not serverThread.isAlive()
|
||||
Utils.wait_for(lambda: not serverThread.is_alive()
|
||||
or serverThread.join(Utils.DEFAULT_SLEEP_TIME), unittest.F2B.maxWaitTime(10))
|
||||
self.serverThread = None
|
||||
|
||||
|
@ -97,7 +97,7 @@ class Socket(LogCaptureTestCase):
|
|||
self.server.close()
|
||||
# wait for end of thread :
|
||||
self._stopServerThread()
|
||||
self.assertFalse(serverThread.isAlive())
|
||||
self.assertFalse(serverThread.is_alive())
|
||||
# clean :
|
||||
self.server.stop()
|
||||
self.assertFalse(self.server.isActive())
|
||||
|
@ -138,7 +138,7 @@ class Socket(LogCaptureTestCase):
|
|||
self.server.stop()
|
||||
# wait for end of thread :
|
||||
self._stopServerThread()
|
||||
self.assertFalse(serverThread.isAlive())
|
||||
self.assertFalse(serverThread.is_alive())
|
||||
self.assertFalse(self.server.isActive())
|
||||
self.assertFalse(os.path.exists(self.sock_name))
|
||||
|
||||
|
@ -179,7 +179,7 @@ class Socket(LogCaptureTestCase):
|
|||
self.server.stop()
|
||||
# wait for end of thread :
|
||||
self._stopServerThread()
|
||||
self.assertFalse(serverThread.isAlive())
|
||||
self.assertFalse(serverThread.is_alive())
|
||||
|
||||
def testLoopErrors(self):
|
||||
# replace poll handler to produce error in loop-cycle:
|
||||
|
@ -215,7 +215,7 @@ class Socket(LogCaptureTestCase):
|
|||
self.server.stop()
|
||||
# wait for end of thread :
|
||||
self._stopServerThread()
|
||||
self.assertFalse(serverThread.isAlive())
|
||||
self.assertFalse(serverThread.is_alive())
|
||||
self.assertFalse(self.server.isActive())
|
||||
self.assertFalse(os.path.exists(self.sock_name))
|
||||
|
||||
|
|
Loading…
Reference in New Issue