3rd-party dialects can bypass individual tests in the test suite by overriding the test in our local copy of "test_suite.py". For example,
from sqlalchemy.testing.suite import SimpleUpdateDeleteTest as _SimpleUpdateDeleteTest
class SimpleUpdateDeleteTest(_SimpleUpdateDeleteTest):
@testing.skip("firebird")
def test_update(self):
# hangs tests (Gord, Windows, FB3)
return
In this particular case that was not sufficient because Firebird does not support transactional DDL. (For example, CREATE TABLE t immediately followed by INSERT INTO t in the same transaction fails with "table t does not exist". It's actually not the test that's failing, it's the fixture (setup or teardown) that messes things up.
In this particular case I was able to do
class SimpleUpdateDeleteTest(_SimpleUpdateDeleteTest):
@classmethod
def define_tables(cls, metadata):
pass
@classmethod
def insert_data(cls, connection):
pass
@testing.skip("firebird")
def test_delete(self):
# hangs tests (Gord, Windows, FB3)
return
@testing.skip("firebird")
def test_update(self):
# hangs tests (Gord, Windows, FB3)
return
However, there are other tests that are far more convoluted and it would be nice just to completely ignore the entire class (setup, tests, teardown, everything).
Is there a way to do that?