def test_update_error(self, mock_upd, simple_model, memory_db):
        memory_db()

        err = IntegrityError(None, None, None, None)
        err.message = 'duplicate'
        mock_upd.side_effect = err

        with pytest.raises(JHTTPConflict) as ex:
            simple_model(id=4).update({'name': 'q'})
        assert 'There was a conflict' in str(ex.value)
    def test_save_error(self, obj_session, simple_model, memory_db):
        memory_db()

        err = IntegrityError(None, None, None, None)
        err.message = 'duplicate'
        obj_session().flush.side_effect = err

        with pytest.raises(JHTTPConflict) as ex:
            simple_model(id=4).save()
        assert 'There was a conflict' in str(ex.value)
Beispiel #3
0
    def test_add_record_duplicate_entry(self):
        """test duplicate entries to add record.

        test that when session.add throws Duplicate Entry exception,
        no expcetion is thrown back.
        """
        side_effect = IntegrityError(None, None, None, None)
        side_effect.message = "Duplicate entry"
        mock_session = self.mock_sessionmaker.return_value.__call__
        mock_add = mock_session.im_self.add
        mock_add.side_effect = side_effect
        self.conn.add_record(self.transaction)
Beispiel #4
0
    def test_add_record_integrity_entry(self):
        """test add record that throws integrity error.

        test that when session.add throws a different exception
        than Duplicate Entry it will be rasied up.
        """
        side_effect = IntegrityError(None, None, None, None)
        side_effect.message = "Some other integrity error"
        mock_session = self.mock_sessionmaker.return_value.__call__
        mock_add = mock_session.im_self.add
        mock_add.side_effect = IntegrityError("Some other integrity error",
                                              None, None, None)
        self.assertRaises(IntegrityError, self.conn.add_record,
                          self.transaction)