Esempio n. 1
0
    def test_raise_deadlock(self):

        class TestException(Exception):
            pass

        self.attempts = 3

        def _mock_get_session():
            def _raise_exceptions():
                self.attempts -= 1
                if self.attempts <= 0:
                    raise TestException("Exit")
                raise db_exc.DBDeadlock("Fake Exception")
            return _raise_exceptions

        with mock.patch.object(api, 'get_session') as sess:
            sess.side_effect = _mock_get_session()

            try:
                api._image_update(None, {}, 'fake-id')
            except TestException:
                self.assertEqual(3, sess.call_count)

        # Test retry on image destroy if db deadlock occurs
        self.attempts = 3
        with mock.patch.object(api, 'get_session') as sess:
            sess.side_effect = _mock_get_session()

            try:
                api.image_destroy(None, 'fake-id')
            except TestException:
                self.assertEqual(3, sess.call_count)
Esempio n. 2
0
    def test_raise_deadlock(self):
        class TestException(Exception):
            pass

        self.attempts = 3

        def _mock_get_session():
            def _raise_exceptions():
                self.attempts -= 1
                if self.attempts <= 0:
                    raise TestException("Exit")
                raise db_exc.DBDeadlock("Fake Exception")

            return _raise_exceptions

        with mock.patch.object(api, 'get_session') as sess:
            sess.side_effect = _mock_get_session()

            try:
                api._image_update(None, {}, 'fake-id')
            except TestException:
                self.assertEqual(3, sess.call_count)

        # Test retry on image destroy if db deadlock occurs
        self.attempts = 3
        with mock.patch.object(api, 'get_session') as sess:
            sess.side_effect = _mock_get_session()

            try:
                api.image_destroy(None, 'fake-id')
            except TestException:
                self.assertEqual(3, sess.call_count)