Skip to content

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

New issue

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

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

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # 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