code: def test_override_defaults(self) -> None:
      class FooBase(HasProps):
          x = Int(12)
  
      class FooSub(FooBase):
          x = Override(default=14)
  
      def func_default():
          return 16
  
      class FooSubSub(FooBase):
          x = Override(default=func_default)
  
      f_base = FooBase()
      f_sub = FooSub()
      f_sub_sub = FooSubSub()
  
      assert f_base.x == 12
      assert f_sub.x == 14
      assert f_sub_sub.x == 16
  
      assert (
          12
          == f_base.properties_with_values(include_defaults=True)["x"]
      )
      assert (
          14 == f_sub.properties_with_values(include_defaults=True)["x"]
      )
      assert (
          16
          == f_sub_sub.properties_with_values(include_defaults=True)[
              "x"
          ]
      )
  
      assert "x" not in f_base.properties_with_values(
          include_defaults=False
      )
      assert "x" not in f_sub.properties_with_values(
          include_defaults=False
      )
      assert "x" in f_sub_sub.properties_with_values(
          include_defaults=False
      )
  
imports: from __future__ import annotations
  import pytest
  import numpy
  from bokeh.core.has_props import HasProps, Local
  from bokeh.core.properties import Alias, Dict, Enum, Float, Instance, Int, List, NotSerialized, Nullable, NumberSpec, Override, Readonly, String, UnsetValueError
  from bokeh.model import Model
  from tests.support.util.api import verify_all
  import bokeh.core.properties
label_desc: Use image node_id 12 for calling the TestBasic obj's underlying member method code with example usage: obj.test_override_defaults() and returns: int