Add tests for api; add checks for ctl and api for the paused state case

This commit is contained in:
Murat Kabilov
2016-08-29 08:36:35 +02:00
parent 1635f5269e
commit 89ef5da5ae
5 changed files with 68 additions and 11 deletions
+17
View File
@@ -39,6 +39,10 @@ class MockHa(object):
state_handler = MockPostgresql()
@staticmethod
def is_paused():
return False
@staticmethod
def schedule_reinitialize():
return 'reinitialize'
@@ -221,11 +225,18 @@ class TestRestApiHandler(unittest.TestCase):
request = make_request(role='master', postgres_version='9.5.2')
MockRestApiServer(RestApiHandler, request)
with patch.object(MockHa, 'is_paused', Mock(return_value=True)):
request = make_request(schedule='2016-08-42 12:45TZ+1', role='master')
MockRestApiServer(RestApiHandler, request)
def test_do_DELETE_restart(self):
for retval in (True, False):
with patch.object(MockHa, 'delete_future_restart', Mock(return_value=retval)):
request = 'DELETE /restart HTTP/1.0' + self._authorization
self.assertIsNotNone(MockRestApiServer(RestApiHandler, request))
with patch.object(MockHa, 'is_paused', Mock(return_value=True)):
request = 'DELETE /restart HTTP/1.0' + self._authorization
self.assertIsNotNone(MockRestApiServer(RestApiHandler, request))
@patch.object(MockPatroni, 'dcs')
def test_do_POST_reinitialize(self, dcs):
@@ -239,6 +250,9 @@ class TestRestApiHandler(unittest.TestCase):
cluster.leader.name = 'test'
self.assertIsNotNone(MockRestApiServer(RestApiHandler, request))
with patch.object(MockHa, 'is_paused', Mock(return_value=True)):
self.assertIsNotNone(MockRestApiServer(RestApiHandler, request))
@patch('time.sleep', Mock())
def test_RestApiServer_query(self):
with patch.object(MockCursor, 'execute', Mock(side_effect=psycopg2.OperationalError)):
@@ -306,6 +320,9 @@ class TestRestApiHandler(unittest.TestCase):
d.manual_failover.return_value = False
MockRestApiServer(RestApiHandler, request)
with patch.object(MockHa, 'is_paused', Mock(return_value=True)):
MockRestApiServer(RestApiHandler, request)
# Exception: No timezone specified
request = post + '97\n\n{"leader": "postgresql1", "member": "postgresql2",' +\
' "scheduled_at": "6016-02-15T18:13:30.568224"}'