code: def test_keyframe_insert():
      obj = objects.Object3D()
      handler = mock.Mock()
      obj.observe(handler, "position", type="keyframe")
  
      obj.position = (3, 3, 3)
      obj.keyframe_insert("position", 7)
  
      assert handler.call_count == 1
      change_argument = handler.call_args[0][0]
      assert change_argument.name == "position"
      assert change_argument.owner == obj
      assert change_argument.frame == 7
      assert change_argument.type == "keyframe"
  
imports: import re
  import pytest
  import numpy
  from numpy.testing import assert_allclose
  import pyquaternion
  from traitlets import TraitError
  from unittest import mock
  from kubric.core import Asset
  from kubric.core import UndefinedAsset
  from kubric.core import objects
  from kubric.core import materials
label_desc: Use image node_id 29 for calling a global function with example usage: test_keyframe_insert() without return types