Source code for sqlobject.tests.test_exceptions

import pytest
from sqlobject import SQLObject, StringCol
from sqlobject.dberrors import DuplicateEntryError, ProgrammingError
from sqlobject.tests.dbtest import getConnection, raises, setupClass, supports


########################################
# Table aliases and self-joins
########################################


[docs]class SOTestException(SQLObject): name = StringCol(unique=True, length=100)
[docs]class SOTestExceptionWithNonexistingTable(SQLObject): pass
[docs]def test_exceptions(): if not supports("exceptions"): pytest.skip("exceptions aren't supported") setupClass(SOTestException) SOTestException(name="test") raises(DuplicateEntryError, SOTestException, name="test") connection = getConnection() if connection.module.__name__ != 'psycopg2': return SOTestExceptionWithNonexistingTable.setConnection(connection) try: list(SOTestExceptionWithNonexistingTable.select()) except ProgrammingError as e: assert e.args[0].code == '42P01' else: assert False, "DID NOT RAISE"