def test_mantis(self): nagios2mantis = Nagios2Mantis(self.config) with mock.patch('SOAPpy.WSDL.Proxy') as ws_mock: mantis_ws = nagios2mantis.mantis ws_mock.assert_called_once_with( 'http://your-mantis.com/api/soap/mantisconnect.php?wsdl') self.assertEquals(mantis_ws, nagios2mantis._mantis)
def test_notify(self): nagios2mantis = Nagios2Mantis(self.config) before_time = os.path.getctime(self.config.inotify_file) time.sleep(1) nagios2mantis.notify() after_time = os.path.getctime(self.config.inotify_file) self.assertNotEquals(before_time, after_time)
def test_add_note(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.delete = mock.MagicMock() with mock.patch('SOAPpy.WSDL.Proxy'): nagios2mantis.add_note(1, 'test', 1) nagios2mantis.mantis.mc_issue_note_add.assert_called_once_with( 'mantis_login', 'mantis_password', 1, {'text': 'test'}) nagios2mantis.db_spool.delete.assert_called_once_with(1)
def test_empty_cache_none(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.rows = mock.MagicMock(return_value=[]) nagios2mantis.empty_row = mock.MagicMock() nagios2mantis.db_spool.close = mock.MagicMock() nagios2mantis.empty_cache() nagios2mantis.db_spool.rows.assert_called_once_with() self.assertFalse(nagios2mantis.empty_row.called) nagios2mantis.db_spool.close.assert_called_once_with()
def test_empty_cache(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.rows = mock.MagicMock(return_value=[1, 2]) nagios2mantis.empty_row = mock.MagicMock() nagios2mantis.db_spool.close = mock.MagicMock() nagios2mantis.empty_cache() nagios2mantis.db_spool.rows.assert_called_once_with() self.assertEquals(nagios2mantis.empty_row.call_count, 2) nagios2mantis.db_spool.close.assert_called_once_with()
def test_empty_row_not_found_state_up(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.find_issue = mock.MagicMock(return_value=None) nagios2mantis.add_issue = mock.MagicMock() nagios2mantis.add_note = mock.MagicMock() nagios2mantis.empty_row((1, 'localhost', 'UP', 'apache2', 'OK', 1)) nagios2mantis.find_issue.assert_called_once_with( 'localhost', 'apache2') self.assertFalse(nagios2mantis.add_issue.called) self.assertFalse(nagios2mantis.add_note.called)
def test_spool_failed(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.add = mock.MagicMock(side_effect=AssertionError) with mock.patch('logging.exception') as exc_mock: nagios2mantis.spool('localhost', 'UP', None, 'OK', 1) exc_mock.assert_called_once_with( 'An error occured while addind a new item to treat. ' 'Params where hostname:%s ; state:%s ; service:%s ; ' 'plugin_output:%s ; project_id:%d', 'localhost', 'UP', None, 'OK', 1) nagios2mantis.db_spool.add.assert_called_once_with( 'localhost', 'UP', None, 'OK', 1)
def test_empty_row_found(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.find_issue = mock.MagicMock(return_value={'id': 1}) nagios2mantis.add_issue = mock.MagicMock() nagios2mantis.add_note = mock.MagicMock() nagios2mantis.empty_row((1, 'localhost', 'UP', 'apache2', 'OK', 1)) nagios2mantis.find_issue.assert_called_once_with( 'localhost', 'apache2') nagios2mantis.add_note.assert_called_once_with( 1, u'Nagios error detected. UP: OK', 1) self.assertFalse(nagios2mantis.add_issue.called)
def test_add_issue_failed(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.delete = mock.MagicMock() nagios2mantis.db_spool.add_relation = mock.MagicMock() with mock.patch('SOAPpy.WSDL.Proxy'): nagios2mantis.mantis.mc_issue_add.side_effect = faultType nagios2mantis.add_issue('localhost', 'apache2', {'summary': 'test'}, 1) nagios2mantis.mantis.mc_issue_add.assert_called_once_with( 'mantis_login', 'mantis_password', {'summary': 'test'}) self.assertFalse(nagios2mantis.db_spool.delete.called) self.assertFalse(nagios2mantis.db_spool.add_relation.called)
def test_add_issue(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.delete = mock.MagicMock() nagios2mantis.db_spool.add_relation = mock.MagicMock() with mock.patch('SOAPpy.WSDL.Proxy'): nagios2mantis.mantis.mc_issue_add.return_value = 2 nagios2mantis.add_issue('localhost', 'apache2', {'summary': 'test'}, 1) nagios2mantis.mantis.mc_issue_add.assert_called_once_with( 'mantis_login', 'mantis_password', {'summary': 'test'}) nagios2mantis.db_spool.delete.assert_called_once_with(1) nagios2mantis.db_spool.add_relation.assert_called_once_with( 'localhost', 'apache2', 2)
def test_spool(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.add = mock.MagicMock() nagios2mantis.db_spool.close = mock.MagicMock() before_time = os.path.getctime(self.config.inotify_file) time.sleep(1) nagios2mantis.spool('localhost', 'UP', None, 'OK', 1) nagios2mantis.db_spool.add.assert_called_once_with( 'localhost', 'UP', None, 'OK', 1) nagios2mantis.db_spool.close.assert_called_once_with() after_time = os.path.getctime(self.config.inotify_file) self.assertNotEquals(before_time, after_time)
def test_empty_cache_fail(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.rows = mock.MagicMock(return_value=[[1], [2]]) nagios2mantis.empty_row = mock.MagicMock( side_effect=[None, AssertionError]) nagios2mantis.db_spool.close = mock.MagicMock() with mock.patch('logging.exception') as exc_mock: nagios2mantis.empty_cache() exc_mock.assert_called_once_with('Treating row whose id is %d failed', 2) nagios2mantis.db_spool.rows.assert_called_once_with() self.assertEquals(nagios2mantis.empty_row.call_count, 2) nagios2mantis.db_spool.close.assert_called_once_with()
def test_find_issue_fault(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.get_issue_id = mock.MagicMock(return_value=1) nagios2mantis.db_spool.del_relation = mock.MagicMock() with mock.patch('SOAPpy.WSDL.Proxy'): nagios2mantis.mantis.mc_issue_get.side_effect = faultType result = nagios2mantis.find_issue('localhost', 'apache2') self.assertIsNone(result) nagios2mantis.db_spool.get_issue_id.assert_called_once_with( 'localhost', 'apache2') nagios2mantis.db_spool.del_relation.assert_called_once_with( 'localhost', 'apache2') nagios2mantis.mantis.mc_issue_get.assert_called_once_with( 'mantis_login', 'mantis_password', 1)
def test_find_issue_found_not_closed(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.db_spool.get_issue_id = mock.MagicMock(return_value=1) nagios2mantis.db_spool.del_relation = mock.MagicMock() with mock.patch('SOAPpy.WSDL.Proxy'): nagios2mantis.mantis.mc_issue_get.return_value = { 'status': { 'id': 10 } } result = nagios2mantis.find_issue('localhost', 'apache2') self.assertEquals(result, {'status': {'id': 10}}) nagios2mantis.db_spool.get_issue_id.assert_called_once_with( 'localhost', 'apache2') self.assertFalse(nagios2mantis.db_spool.del_relation.called) nagios2mantis.mantis.mc_issue_get.assert_called_once_with( 'mantis_login', 'mantis_password', 1)
def test_empty_row_not_found(self): nagios2mantis = Nagios2Mantis(self.config) nagios2mantis.find_issue = mock.MagicMock(return_value=None) nagios2mantis.add_issue = mock.MagicMock() nagios2mantis.add_note = mock.MagicMock() nagios2mantis.empty_row((1, 'localhost', 'DOWN', 'apache2', 'OK', 1)) nagios2mantis.find_issue.assert_called_once_with( 'localhost', 'apache2') expected_issue = { 'category': u'General', 'project': { 'id': 1 }, 'description': u'Nagios error detected: OK', 'summary': 'apache2 is DOWN on host localhost' } nagios2mantis.add_issue.assert_called_once_with( 'localhost', 'apache2', expected_issue, 1) self.assertFalse(nagios2mantis.add_note.called)