def test_ensure_installed_twice(caplog): ensure_installed() ensure_installed() assert caplog.record_tuples == 2 * [ ("scout_apm.instruments.redis", logging.DEBUG, "Instrumenting redis.",) ]
def redis_conn(): # Copied from test_redis.py ensure_installed() # e.g. export REDIS_URL="redis://localhost:6379/0" if "REDIS_URL" not in os.environ: raise pytest.skip("Redis isn't available") yield redis.Redis.from_url(os.environ["REDIS_URL"])
def test_ensure_installed_twice(caplog): ensure_installed() ensure_installed() assert caplog.record_tuples == 2 * [ ( "scout_apm.instruments.redis", logging.INFO, "Ensuring redis instrumentation is installed.", ) ]
def test_install_fail_no_redis(caplog): mock_no_redis = mock.patch("scout_apm.instruments.redis.redis", new=None) with mock_no_redis: ensure_installed() assert caplog.record_tuples == [ ("scout_apm.instruments.redis", logging.DEBUG, "Instrumenting redis.",), ( "scout_apm.instruments.redis", logging.DEBUG, "Couldn't import redis - probably not installed.", ), ]
def test_install_fail_no_redis(caplog): mock_no_redis = mock.patch("scout_apm.instruments.redis.redis", new=None) with mock_no_redis: ensure_installed() assert caplog.record_tuples == [ ( "scout_apm.instruments.redis", logging.INFO, "Ensuring redis instrumentation is installed.", ), ("scout_apm.instruments.redis", logging.INFO, "Unable to import redis"), ]
def test_ensure_installed_fail_no_pipeline_execute(caplog): mock_not_patched = mock.patch( "scout_apm.instruments.redis.have_patched_pipeline_execute", new=False ) mock_pipeline = mock.patch("scout_apm.instruments.redis.Pipeline") with mock_not_patched, mock_pipeline as mocked_pipeline: del mocked_pipeline.execute ensure_installed() assert len(caplog.record_tuples) == 2 assert caplog.record_tuples[0] == ( "scout_apm.instruments.redis", logging.DEBUG, "Instrumenting redis.", ) logger, level, message = caplog.record_tuples[1] assert logger == "scout_apm.instruments.redis" assert level == logging.WARNING assert message.startswith( "Failed to instrument redis.Pipeline.execute: AttributeError" )
def test_ensure_installed_fail_no_redis_execute_command(caplog): mock_not_patched = mock.patch( "scout_apm.instruments.redis.have_patched_redis_execute_command", new=False ) mock_redis = mock.patch("scout_apm.instruments.redis.Redis") with mock_not_patched, mock_redis as mocked_redis: del mocked_redis.execute_command ensure_installed() assert len(caplog.record_tuples) == 2 assert caplog.record_tuples[0] == ( "scout_apm.instruments.redis", logging.INFO, "Ensuring redis instrumentation is installed.", ) logger, level, message = caplog.record_tuples[1] assert logger == "scout_apm.instruments.redis" assert level == logging.WARNING assert message.startswith( "Unable to instrument redis.Redis.execute_command: AttributeError" )