code: def test_no_c_code(self):
      class IncOnePython(COp):
          """
          An Op with only a Python (perform) implementation
          """
  
          __props__ = ()
  
          def make_node(self, input):
              input = ps.as_scalar(input)
              output = input.type()
              return Apply(self, [input], [output])
  
          def perform(self, node, inputs, outputs):
              (input,) = inputs
              (output,) = outputs
              output[0] = input + 1
  
      i = ps.int32("i")
      i.tag.test_value = 3
  
      o = IncOnePython()(i)
  
      # Check that the c_code function is not implemented
      with pytest.raises((NotImplementedError, utils.MethodNotDefined)):
          o.owner.op.c_code(o.owner, "o", ["x"], "z", {"fail": ""})
  
      assert hasattr(o.tag, "test_value")
      assert o.tag.test_value == 4
  
imports: import numpy
  import pytest
  import pytensor
  import pytensor.tensor
  from pytensor import scalar
  from pytensor.configdefaults import config
  from pytensor.graph import utils
  from pytensor.graph.basic import Apply
  from pytensor.graph.op import Op
  from pytensor.graph.type import Type
  from pytensor.link.c.op import COp
  from pytensor.tensor.math import _allclose, dot
  from pytensor.tensor.type import fmatrix, iscalar, matrix, vector
label_desc: Use image node_id 14 for calling the TestComputeTestValue obj's underlying member method code with example usage: obj.test_no_c_code() and returns: Apply