8000 fix(loguru): Move integration setup from `__init__` to `setup_once` by sentrivana · Pull Request #4399 · getsentry/sentry-python · GitHub
[go: up one dir, main page]

Skip to content

fix(loguru): Move integration setup from __init__ to setup_once #4399

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 19, 2025

Conversation

sentrivana
Copy link
Contributor
@sentrivana sentrivana commented May 19, 2025

We shouldn't have setup code in an integration's __init__. This can be called an arbitrary amount of times. setup_once exists so that the code is only guaranteed to run once.

Having integration setup in __init__ also means that the integration currently can't be disabled via disabled_integrations.

Fixes #4398

Copy link
codecov bot commented May 19, 2025

⚠️ Parser warning

The parser emitted a warning. Please review your JUnit XML file:

Warning while parsing testcase attributes: Limit of string is 1000 chars, for name, we got 2301 at 1:2560 in /home/runner/work/sentry-python/sentry-python/.junitxml

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
23560 4 23556 5868
View the top 3 failed test(s) by shortest run time
tests.integrations.redis.cluster.test_redis_cluster::test_rediscluster_pipeline[True-expected_first_ten1]
Stack Traces | 0.088s run time
.../redis/cluster/test_redis_cluster.py:131: in test_rediscluster_pipeline
    assert span["data"] == ApproxDict(
E   assert {'thread.id': '139853990849408', 'thread.name': 'MainThread', 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379, 'redis.commands': {'count': 0, 'first_ten': []}} == {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' 1", "SET 'baz' 2"]}, 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Common items:
E     {'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Differing items:
E     {'redis.commands': {'count': 0, 'first_ten': []}} != {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' 1", "SET 'baz' 2"]}}
E     Left contains 2 more items:
E     {'thread.id': '139853990849408', 'thread.name': 'MainThread'}
E     Full diff:
E       {
E        'db.system': 'redis',
E     -  'redis.commands': {'count': 3,
E     ?                              ^
E     +  'redis.commands': {'count': 0,
E     ?                              ^
E     -                     'first_ten': ["GET 'foo'",
E     ?                                   ^^^^^^^^^^^
E     +                     'first_ten': []},
E     ?                                   ^^
E     -                                   "SET 'bar' 1",
E     -                                   "SET 'baz' 2"]},
E        'server.address': '127.0.0.1',
E        'server.port': 6379,
E     +  'thread.id': '139853990849408',
E     +  'thread.name': 'MainThread',
E       }
tests.integrations.redis.cluster.test_redis_cluster::test_rediscluster_pipeline[False-expected_first_ten0]
Stack Traces | 0.091s run time
.../redis/cluster/test_redis_cluster.py:131: in test_rediscluster_pipeline
    assert span["data"] == ApproxDict(
E   assert {'thread.id': '139853990849408', 'thread.name': 'MainThread', 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379, 'redis.commands': {'count': 0, 'first_ten': []}} == {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' [Filtered]", "SET 'baz' [Filtered]"]}, 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Common items:
E     {'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Differing items:
E     {'redis.commands': {'count': 0, 'first_ten': []}} != {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' [Filtered]", "SET 'baz' [Filtered]"]}}
E     Left contains 2 more items:
E     {'thread.id': '139853990849408', 'thread.name': 'MainThread'}
E     Full diff:
E       {
E        'db.system': 'redis',
E     -  'redis.commands': {'count': 3,
E     ?                              ^
E     +  'redis.commands': {'count': 0,
E     ?                              ^
E     -                     'first_ten': ["GET 'foo'",
E     ?                                   ^^^^^^^^^^^
E     +                     'first_ten': []},
E     ?                                   ^^
E     -                                   "SET 'bar' [Filtered]",
E     -                                   "SET 'baz' [Filtered]"]},
E        'server.address': '127.0.0.1',
E        'server.port': 6379,
E     +  'thread.id': '139853990849408',
E     +  'thread.name': 'MainThread',
E       }
tests.integrations.redis.cluster.test_redis_cluster::test_rediscluster_pipeline[True-expected_first_ten1]
Stack Traces | 0.093s run time
.../redis/cluster/test_redis_cluster.py:131: in test_rediscluster_pipeline
    assert span["data"] == ApproxDict(
E   assert {'thread.id': '139693679688576', 'thread.name': 'MainThread', 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379, 'redis.commands': {'count': 0, 'first_ten': []}} == {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' 1", "SET 'baz' 2"]}, 'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Common items:
E     {'db.system': 'redis', 'server.address': '127.0.0.1', 'server.port': 6379}
E     Differing items:
E     {'redis.commands': {'count': 0, 'first_ten': []}} != {'redis.commands': {'count': 3, 'first_ten': ["GET 'foo'", "SET 'bar' 1", "SET 'baz' 2"]}}
E     Left contains 2 more items:
E     {'thread.id': '139693679688576', 'thread.name': 'MainThread'}
E     Full diff:
E       {
E        'db.system': 'redis',
E     -  'redis.commands': {'count': 3,
E     ?                              ^
E     +  'redis.commands': {'count': 0,
E     ?                              ^
E     -                     'first_ten': ["GET 'foo'",
E     ?                                   ^^^^^^^^^^^
E     +                     'first_ten': []},
E     ?                                   ^^
E     -                                   "SET 'bar' 1",
E     -                                   "SET 'baz' 2"]},
E        'server.address': '127.0.0.1',
E        'server.port': 6379,
E     +  'thread.id': '139693679688576',
E     +  'thread.name': 'MainThread',
E       }

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@sentrivana sentrivana marked this pull request as ready for review May 19, 2025 12:12
@sentrivana sentrivana requested a review from a team as a code owner May 19, 2025 12:12
@sentrivana sentrivana merged commit 830f270 into master May 19, 2025
135 of 137 checks passed
@sentrivana sentrivana deleted the ivana/loguru-cant-be-disabled branch May 19, 2025 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Loguru integration does not support disabled_integrations?
2 participants
0