Move backdoor-related tests from test_service
LauncherTest contains a number of tests that actually test eventlet_backdoor while unnecessarily creating and launching services. Moreover some of these tests duplicate existing tests from test_eventlet-backdoor. This change moves such tests to test_eventlet_backdoor, removes mox usage from them and deletes duplicated ones. Change-Id: Ib7533400115700bcb36ef403f9ccad9c8796e455
This commit is contained in:
parent
3625c0010e
commit
e7dabc7fae
|
@ -29,6 +29,16 @@ from oslo_service.tests import base
|
|||
|
||||
class BackdoorPortTest(base.ServiceBaseTestCase):
|
||||
|
||||
@mock.patch.object(eventlet, 'spawn')
|
||||
@mock.patch.object(eventlet, 'listen')
|
||||
def test_backdoor_port(self, listen_mock, spawn_mock):
|
||||
self.config(backdoor_port=1234)
|
||||
sock = mock.MagicMock()
|
||||
sock.getsockname.return_value = ('127.0.0.1', 1234)
|
||||
listen_mock.return_value = sock
|
||||
port = eventlet_backdoor.initialize_if_enabled(self.conf)
|
||||
self.assertEqual(port, 1234)
|
||||
|
||||
@mock.patch.object(eventlet, 'spawn')
|
||||
@mock.patch.object(eventlet, 'listen')
|
||||
def test_backdoor_port_inuse(self, listen_mock, spawn_mock):
|
||||
|
@ -47,7 +57,17 @@ class BackdoorPortTest(base.ServiceBaseTestCase):
|
|||
port = eventlet_backdoor.initialize_if_enabled(self.conf)
|
||||
self.assertEqual(port, 8800)
|
||||
|
||||
@mock.patch.object(eventlet, 'spawn_n')
|
||||
@mock.patch.object(eventlet, 'spawn')
|
||||
@mock.patch.object(eventlet, 'listen')
|
||||
def test_backdoor_port_range_one_inuse(self, listen_mock, spawn_mock):
|
||||
self.config(backdoor_port='8800:8900')
|
||||
sock = mock.MagicMock()
|
||||
sock.getsockname.return_value = ('127.0.0.1', 8801)
|
||||
listen_mock.side_effect = [socket.error(errno.EADDRINUSE, ''), sock]
|
||||
port = eventlet_backdoor.initialize_if_enabled(self.conf)
|
||||
self.assertEqual(port, 8801)
|
||||
|
||||
@mock.patch.object(eventlet, 'spawn')
|
||||
@mock.patch.object(eventlet, 'listen')
|
||||
def test_backdoor_port_range_all_inuse(self, listen_mock, spawn_mock):
|
||||
self.config(backdoor_port='8800:8899')
|
||||
|
@ -58,6 +78,11 @@ class BackdoorPortTest(base.ServiceBaseTestCase):
|
|||
self.assertRaises(socket.error,
|
||||
eventlet_backdoor.initialize_if_enabled, self.conf)
|
||||
|
||||
def test_backdoor_port_reverse_range(self):
|
||||
self.config(backdoor_port='8888:7777')
|
||||
self.assertRaises(eventlet_backdoor.EventletBackdoorConfigValueError,
|
||||
eventlet_backdoor.initialize_if_enabled, self.conf)
|
||||
|
||||
def test_backdoor_port_bad(self):
|
||||
self.config(backdoor_port='abc')
|
||||
self.assertRaises(eventlet_backdoor.EventletBackdoorConfigValueError,
|
||||
|
|
|
@ -22,7 +22,6 @@ from __future__ import print_function
|
|||
|
||||
import threading
|
||||
|
||||
import errno
|
||||
import logging
|
||||
import multiprocessing
|
||||
import os
|
||||
|
@ -36,12 +35,9 @@ import traceback
|
|||
import eventlet
|
||||
from eventlet import event
|
||||
import mock
|
||||
from mox3 import mox
|
||||
from oslotest import base as test_base
|
||||
from oslotest import moxstubout
|
||||
from six.moves import queue
|
||||
|
||||
from oslo_service import eventlet_backdoor
|
||||
from oslo_service import service
|
||||
from oslo_service.tests import base
|
||||
|
||||
|
@ -278,65 +274,6 @@ class _Service(service.Service):
|
|||
|
||||
|
||||
class LauncherTest(base.ServiceBaseTestCase):
|
||||
def setUp(self):
|
||||
super(LauncherTest, self).setUp()
|
||||
self.mox = self.useFixture(moxstubout.MoxStubout()).mox
|
||||
|
||||
def test_backdoor_port(self):
|
||||
self.config(backdoor_port='1234')
|
||||
|
||||
sock = self.mox.CreateMockAnything()
|
||||
self.mox.StubOutWithMock(eventlet, 'listen')
|
||||
self.mox.StubOutWithMock(eventlet, 'spawn')
|
||||
|
||||
eventlet.listen(('localhost', 1234)).AndReturn(sock)
|
||||
sock.getsockname().AndReturn(('127.0.0.1', 1234))
|
||||
eventlet.spawn(eventlet.backdoor.backdoor_server, sock,
|
||||
locals=mox.IsA(dict))
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
svc = service.Service()
|
||||
launcher = service.launch(self.conf, svc)
|
||||
self.assertEqual(svc.backdoor_port, 1234)
|
||||
launcher.stop()
|
||||
|
||||
def test_backdoor_inuse(self):
|
||||
sock = eventlet.listen(('localhost', 0))
|
||||
port = sock.getsockname()[1]
|
||||
self.config(backdoor_port=port)
|
||||
svc = service.Service()
|
||||
self.assertRaises(socket.error,
|
||||
service.launch, self.conf, svc)
|
||||
sock.close()
|
||||
|
||||
def test_backdoor_port_range_one_inuse(self):
|
||||
self.config(backdoor_port='8800:8900')
|
||||
|
||||
sock = self.mox.CreateMockAnything()
|
||||
self.mox.StubOutWithMock(eventlet, 'listen')
|
||||
self.mox.StubOutWithMock(eventlet, 'spawn')
|
||||
|
||||
eventlet.listen(('localhost', 8800)).AndRaise(
|
||||
socket.error(errno.EADDRINUSE, ''))
|
||||
eventlet.listen(('localhost', 8801)).AndReturn(sock)
|
||||
sock.getsockname().AndReturn(('127.0.0.1', 8801))
|
||||
eventlet.spawn(eventlet.backdoor.backdoor_server, sock,
|
||||
locals=mox.IsA(dict))
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
svc = service.Service()
|
||||
launcher = service.launch(self.conf, svc)
|
||||
self.assertEqual(svc.backdoor_port, 8801)
|
||||
launcher.stop()
|
||||
|
||||
def test_backdoor_port_reverse_range(self):
|
||||
# backdoor port should get passed to the service being launched
|
||||
self.config(backdoor_port='8888:7777')
|
||||
svc = service.Service()
|
||||
self.assertRaises(eventlet_backdoor.EventletBackdoorConfigValueError,
|
||||
service.launch, self.conf, svc)
|
||||
|
||||
def test_graceful_shutdown(self):
|
||||
# test that services are given a chance to clean up:
|
||||
|
|
Loading…
Reference in New Issue