def _skip_if_not_postgres(self): # Note: pytest.mark.skipif cannot be used at the class level, # since this could have the side-effect of also disabling the sqlite # tests. # # It appears that adding a skip to this class causes # all other test classes using the DatabaseTestBase base class to be # skipped too. if not got_postgresql(): pytest.skip('Needs postgresql')
import pytest import tempfile import yaml from abridger.exc import RelationIntegrityError from abridger.extraction_model import Relation from abridger.schema import PostgresqlSchema from test.conftest import got_postgresql @pytest.mark.skipif(not got_postgresql(), reason='Needs postgresql') class TestPostgresqlSchema(object): test_relations_stmts = ''' CREATE TABLE test1 ( id SERIAL PRIMARY KEY, alt_id SERIAL UNIQUE, alt_id1 SERIAL, alt_id2 SERIAL, UNIQUE(alt_id1, alt_id2) ); CREATE TABLE test2 ( id SERIAL PRIMARY KEY, fk1 INTEGER REFERENCES test1, fk2 INTEGER CONSTRAINT test_constraint REFERENCES test1, fk3 INTEGER REFERENCES test1(alt_id), fk4 INTEGER, fk5 INTEGER, FOREIGN KEY (fk4, fk5) REFERENCES test1(alt_id1, alt_id2) ); '''
import os import pytest import re import subprocess from abridger.abridge_db import main from abridger.database.sqlite import SqliteDatabase from test.abridge_db_test_utils import TestAbridgeDbBase from test.conftest import got_postgresql from test.fixtures.postgresql import make_postgresql_database postgresql_proc2 = factories.postgresql_proc(port=5434) postgresql2 = factories.postgresql('postgresql_proc2') @pytest.mark.skipif(not got_postgresql(), reason='Needs postgresql') class TestAbridgeDbForPostgresql(TestAbridgeDbBase): def setup_method(self, method): self.src_database = None self.dst_database = None def teardown_method(self, method): # Belt and braces in case something unexpected fails if self.src_database is not None: self.src_database.disconnect if self.dst_database is not None: self.dst_database.disconnect def prepare_src(self, postgresql): self.src_database = make_postgresql_database(postgresql) self.src_conn = self.src_database.connection