"""Test for Mysql connection.""" from sqlalchemy.exc import NoSuchColumnError from product.connectors import mysql def test_wrap_db_errors(): """Test wrap_db_errors with no errors.""" @mysql.wrap_db_errors def no_exception(): return True response = no_exception() assert response def test_wrap_db_errors_with_error(): """Test wrap_db_errors when it raises an exception.""" @mysql.wrap_db_errors def has_exception(): raise NoSuchColumnError('column not found') response = has_exception() assert response.status == 500 @mysql.db_session_wrap def db_session_wrapped_fn(session, existing_session_id=None): """Fixture function to test db_session_wrap.""" return (id(session) == existing_session_id) def test_db_session_wrap(): """Test db_session_wrap when no session passed.""" response = db_session_wrapped_fn() assert response is False response = db_session_wrapped_fn(existing_session_id='dummyid') assert response is False def test_db_session_wrap_shared(): """Test db_session_wrap when session passed.""" with mysql.db_session() as new_session: response = db_session_wrapped_fn( session=new_session, existing_session_id=id(new_session)) assert response