home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1354053151

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/datasette/pull/1960#issuecomment-1354053151 https://api.github.com/repos/simonw/datasette/issues/1960 1354053151 IC_kwDOBm6k_c5QtTYf 9599 2022-12-16T01:33:22Z 2022-12-16T01:33:22Z OWNER

The thing with Datasette(memory=False) is tripping me up.

The problem is that the tests written against app_client - which I want to replace - all assume that there is no _memory database, because when you start Datasette with at least one database file it doesn't enable _memory unless you explicitly tell it to.

But the new ds_client fixture works by creating a named in-memory database called fixtures, which it does with a call to ds.add_memory_database("fixtures") after the object has been instantiated.

This results in a datasette instance that DOES have a _memory database, when we didn't want one.

My initial solution attempt was a huge hack - I decided that if you pass memory=False to the Datasette constructor it should mean "don't add a _memory database even though I didn't pass any files". I set a the default memory argument to None.

This is weird and surprising (memory=False no does something different from memory=None?) and I found other tests that it broke, like this one:

python def test_sql_errors_logged_to_stderr(): runner = CliRunner(mix_stderr=False) result = runner.invoke(cli, ["--get", "/_memory.json?sql=select+blah"]) assert result.exit_code == 1 assert "sql = 'select blah', params = {}: no such column: blah\n" in result.stderr It ended up with no _memory database because it turns out datasette serve ... passes memory=False without me realizing it.

So I'm going to undo that hack and teach the fixture to do this instead:

python db = ds.add_memory_database("fixtures") ds.remove_database("_memory")

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1499150951  
Powered by Datasette · Queries took 1.016ms · About: github-to-sqlite