def test_sanity_pass_relationship(): """ See database sanity check understands about relationships and don't deem them as missing column. """ engine = mc.connect_to_mc_testing_db().engine conn = engine.connect() trans = conn.begin() Session = sessionmaker(bind=engine) session = Session() Base, RelationTestModel, RelationTestModel2 = gen_relation_models() try: Base.metadata.drop_all(engine, tables=[RelationTestModel.__table__, RelationTestModel2.__table__]) except sqlalchemy.exc.NoSuchTableError: pass Base.metadata.create_all(engine, tables=[RelationTestModel.__table__, RelationTestModel2.__table__]) try: assert is_sane_database(Base, session) is True finally: Base.metadata.drop_all(engine)
def setup_and_teardown_package(): global test_db # Do a calculation that requires a current IERS table. This will trigger # automatic downloading of the IERS table if needed, including trying the # mirror site in python 3 (but won't redownload if a current one exists). # If there's not a current IERS table and it can't be downloaded, turn off # auto downloading for the tests and turn it back on once all tests are # completed (done by extending auto_max_age). # Also, the checkWarnings function will ignore IERS-related warnings. try: t1 = Time.now() t1.ut1 except (urllib.error.URLError, IOError, iers.IERSRangeError): iers.conf.auto_max_age = None test_db = mc.connect_to_mc_testing_db() test_db.create_tables() session = test_db.sessionmaker() cm_transfer._initialization(session=session, cm_csv_path=mc.test_data_path) yield test_db iers.conf.auto_max_age = 30 test_db.drop_tables()
def test_sanity_table_missing(): """See check fails when there is a missing table""" engine = mc.connect_to_mc_testing_db().engine conn = engine.connect() trans = conn.begin() Base, SaneTestModel = gen_test_model() Session = sessionmaker(bind=engine) session = Session() try: Base.metadata.drop_all(engine, tables=[SaneTestModel.__table__]) except sqlalchemy.exc.NoSuchTableError: pass assert is_sane_database(Base, session) is False
def test_sanity_column_missing(): """See check fails when there is a missing table""" engine = mc.connect_to_mc_testing_db().engine conn = engine.connect() trans = conn.begin() Session = sessionmaker(bind=engine) session = Session() Base, SaneTestModel = gen_test_model() try: Base.metadata.drop_all(engine, tables=[SaneTestModel.__table__]) except sqlalchemy.exc.NoSuchTableError: pass Base.metadata.create_all(engine, tables=[SaneTestModel.__table__]) # Delete one of the columns engine.execute("ALTER TABLE sanity_check_test DROP COLUMN id") assert is_sane_database(Base, session) is False
def test_sanity_pass(): """ See database sanity check completes when tables and columns are created. """ engine = mc.connect_to_mc_testing_db().engine conn = engine.connect() trans = conn.begin() Base, SaneTestModel = gen_test_model() Session = sessionmaker(bind=engine) session = Session() try: Base.metadata.drop_all(engine, tables=[SaneTestModel.__table__]) except sqlalchemy.exc.NoSuchTableError: pass Base.metadata.create_all(engine, tables=[SaneTestModel.__table__]) try: assert is_sane_database(Base, session) is True finally: Base.metadata.drop_all(engine)
def setUp(self): self.test_db = mc.connect_to_mc_testing_db() self.test_db.create_tables() self.test_conn = self.test_db.engine.connect() self.test_trans = self.test_conn.begin() self.test_session = mc.MCSession(bind=self.test_conn)
def setUp(self): self.test_db = mc.connect_to_mc_testing_db() self.test_db.create_tables() self.test_conn = self.test_db.engine.connect() self.test_trans = self.test_conn.begin() self.test_session = mc.MCSession(bind=self.test_conn)