{"ok": true, "next": null, "rows": [{"id": "testing_plugins:testing-plugins-pdb", "page": "testing_plugins", "ref": "testing-plugins-pdb", "title": "Using pdb for errors thrown inside Datasette", "content": "If an exception occurs within Datasette itself during a test, the response returned to your plugin will have a  response.status_code  value of 500. \n             You can add  pdb=True  to the  Datasette  constructor to drop into a Python debugger session inside your test run instead of getting back a 500 response code. This is equivalent to running the  datasette  command-line tool with the  --pdb  option. \n             Here's what that looks like in a test function: \n             def test_that_opens_the_debugger_or_errors():\n    ds = Datasette([db_path], pdb=True)\n    response = await ds.client.get(\"/\") \n             If you use this pattern you will need to run  pytest  with the  -s  option to avoid capturing stdin/stdout in order to interact with the debugger prompt.", "breadcrumbs": "[\"Testing plugins\"]", "references": "[]"}], "truncated": false}