Skip to content

Commit 1ba998a

Browse files
committed
tests
1 parent 44dd1e5 commit 1ba998a

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

tests/test_basics.py

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,89 @@ def test_enable_integration(sentry_init):
10021002
assert "gnu_backtrace" in client.integrations
10031003

10041004

1005+
def test_enable_enabled_integration(sentry_init):
1006+
from sentry_sdk.integrations.gnu_backtrace import GnuBacktraceIntegration
1007+
1008+
sentry_init(integrations=[GnuBacktraceIntegration()])
1009+
1010+
assert "gnu_backtrace" in get_client().integrations
1011+
1012+
# Second call should not raise or cause issues
1013+
sentry_sdk.enable_integration(GnuBacktraceIntegration())
1014+
assert "gnu_backtrace" in get_client().integrations
1015+
1016+
1017+
def test_enable_integration_twice(sentry_init):
1018+
sentry_init()
1019+
1020+
from sentry_sdk.integrations.gnu_backtrace import GnuBacktraceIntegration
1021+
1022+
assert "gnu_backtrace" not in get_client().integrations
1023+
1024+
sentry_sdk.enable_integration(GnuBacktraceIntegration())
1025+
assert "gnu_backtrace" in get_client().integrations
1026+
1027+
# Second call should not raise or cause issues
1028+
sentry_sdk.enable_integration(GnuBacktraceIntegration())
1029+
assert "gnu_backtrace" in get_client().integrations
1030+
1031+
1032+
def test_enable_integration_did_not_enable(sentry_init):
1033+
sentry_init()
1034+
1035+
class FailingIntegration(Integration):
1036+
identifier = "failing_test_integration"
1037+
1038+
@staticmethod
1039+
def setup_once():
1040+
raise DidNotEnable("This integration cannot be enabled")
1041+
1042+
sentry_sdk.enable_integration(FailingIntegration())
1043+
1044+
assert "failing_test_integration" not in get_client().integrations
1045+
1046+
1047+
def test_enable_integration_setup_once_called(sentry_init):
1048+
sentry_init()
1049+
1050+
setup_called = []
1051+
1052+
class TrackingIntegration(Integration):
1053+
identifier = "tracking_test_integration"
1054+
1055+
@staticmethod
1056+
def setup_once():
1057+
setup_called.append(True)
1058+
1059+
def setup_once_with_options(self, options):
1060+
setup_called.append(True)
1061+
1062+
assert len(setup_called) == 0
1063+
sentry_sdk.enable_integration(TrackingIntegration())
1064+
assert len(setup_called) == 2
1065+
assert "tracking_test_integration" in get_client().integrations
1066+
1067+
1068+
def test_enable_integration_setup_once_not_called_twice(sentry_init):
1069+
sentry_init()
1070+
1071+
setup_count = []
1072+
1073+
class CountingIntegration(Integration):
1074+
identifier = "counting_test_integration"
1075+
1076+
@staticmethod
1077+
def setup_once():
1078+
setup_count.append(1)
1079+
1080+
sentry_sdk.enable_integration(CountingIntegration())
1081+
assert len(setup_count) == 1
1082+
1083+
# Enable again - setup_once should NOT be called
1084+
sentry_sdk.enable_integration(CountingIntegration())
1085+
assert len(setup_count) == 1
1086+
1087+
10051088
class TracingTestClass:
10061089
@staticmethod
10071090
def static(arg):

0 commit comments

Comments
 (0)