コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
 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)
コード例 #4
0
    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()
コード例 #5
0
    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()
コード例 #6
0
    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)
コード例 #7
0
 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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
    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)
コード例 #12
0
    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()
コード例 #13
0
    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)
コード例 #14
0
    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)
コード例 #15
0
    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)