code: def test_core_config(app, status, warning):
      cfg = app.config
  
      # simple values
      assert "project" in cfg.__dict__
      assert cfg.project == "Sphinx <Tests>"
      assert cfg.templates_path == ["_templates"]
  
      # overrides
      assert cfg.root_doc == "root"
      assert cfg.latex_elements["maketitle"] == "blah blah blah"
      assert cfg.modindex_common_prefix == ["path1", "path2"]
  
      # simple default values
      assert "locale_dirs" in cfg.__dict__
      assert cfg.locale_dirs == ["locales"]
      assert cfg.trim_footnote_reference_space is False
  
      # complex default values
      assert "html_title" not in cfg.__dict__
      assert cfg.html_title == "Sphinx <Tests> 0.6alpha1 documentation"
  
      # complex default values mustn't raise
      for valuename in cfg.config_values:
          getattr(cfg, valuename)
  
      # "contains" gives True both for set and unset values
      assert "project" in cfg
      assert "html_title" in cfg
      assert "nonexisting_value" not in cfg
  
      # invalid values
      with pytest.raises(AttributeError):
          _ = cfg._value
      with pytest.raises(AttributeError):
          _ = cfg.nonexisting_value
  
      # non-value attributes are deleted from the namespace
      with pytest.raises(AttributeError):
          _ = cfg.sys
  
      # setting attributes
      cfg.project = "Foo"
      assert cfg.project == "Foo"
  
      # alternative access via item interface
      cfg["project"] = "Sphinx Tests"
      assert cfg["project"] == cfg.project == "Sphinx Tests"
  
imports: import pickle
  import time
  from pathlib import Path
  from unittest import mock
  import pytest
  import sphinx
  from sphinx.builders.gettext import _gettext_compact_validator
  from sphinx.config import ENUM, Config, _Opt, check_confval_types
  from sphinx.deprecation import RemovedInSphinx90Warning
  from sphinx.errors import ConfigError, ExtensionError, VersionRequirementError
label_desc: Use image node_id 2 for calling a global function with example usage: test_core_config(app, status, warning) without return types