code: def test_databases_json(
      app_client_two_attached_databases_one_immutable,
  ):
      response = app_client_two_attached_databases_one_immutable.get(
          "/-/databases.json"
      )
      databases = response.json
      assert 2 == len(databases)
      extra_database, fixtures_database = databases
      assert "extra database" == extra_database["name"]
      assert None == extra_database["hash"]
      assert True == extra_database["is_mutable"]
      assert False == extra_database["is_memory"]
  
      assert "fixtures" == fixtures_database["name"]
      assert fixtures_database["hash"] is not None
      assert False == fixtures_database["is_mutable"]
      assert False == fixtures_database["is_memory"]
  
file_path: datasette/tests/test_api.py
imports: from datasette.app import Datasette
  from datasette.plugins import DEFAULT_PLUGINS
  from datasette.utils.sqlite import supports_table_xinfo
  from datasette.version import __version__
  from .fixtures import app_client, app_client_no_files, app_client_with_dot, app_client_shorter_time_limit, app_client_two_attached_databases_one_immutable, app_client_larger_cache_size, app_client_with_cors, app_client_two_attached_databases, app_client_conflicting_database_names, app_client_immutable_and_inspect_file, make_app_client, EXPECTED_PLUGINS, METADATA
  import pathlib
  import pytest
  import sys
  import urllib
label_desc: Use image node_id 5 for calling a global function with example usage: test_databases_json(app_client_two_attached_databases_one_immutable) without return types