import subprocess import sys from textwrap import dedent import pytest def test_excepthook(tmpdir): app = tmpdir.join("app.py") app.write( dedent( """ from posthog import Posthog posthog = Posthog('phc_x', host='https://eu.i.posthog.com', enable_exception_autocapture=True, debug=True, on_error=lambda e, batch: print('error handling batch: ', e, batch)) # frame_value = "LOL" 1/0 """ ) ) with pytest.raises(subprocess.CalledProcessError) as excinfo: subprocess.check_output([sys.executable, str(app)], stderr=subprocess.STDOUT) output = excinfo.value.output assert b"ZeroDivisionError" in output assert b"LOL" in output assert b"DEBUG:posthog:data uploaded successfully" in output assert ( b'"$exception_list": [{"mechanism": {"type": "generic", "handled": true}, "module": null, "type": "ZeroDivisionError", "value": "division by zero", "stacktrace": {"frames": [{"platform": "python", "filename": "app.py", "abs_path"' in output ) def test_trying_to_use_django_integration(tmpdir): app = tmpdir.join("app.py") app.write( dedent( """ from posthog import Posthog, Integrations posthog = Posthog('phc_x', host='https://eu.i.posthog.com', enable_exception_autocapture=True, exception_autocapture_integrations=[Integrations.Django], debug=True, on_error=lambda e, batch: print('error handling batch: ', e, batch)) # frame_value = "LOL" 1/0 """ ) ) with pytest.raises(subprocess.CalledProcessError) as excinfo: subprocess.check_output([sys.executable, str(app)], stderr=subprocess.STDOUT) output = excinfo.value.output assert b"ZeroDivisionError" in output assert b"LOL" in output assert b"DEBUG:posthog:data uploaded successfully" in output assert ( b'"$exception_list": [{"mechanism": {"type": "generic", "handled": true}, "module": null, "type": "ZeroDivisionError", "value": "division by zero", "stacktrace": {"frames": [{"platform": "python", "filename": "app.py", "abs_path"' in output )
Memory