code: def test_construct_datatypes(self):
      for datatypes_module in datatype_modules:
          module = importlib.import_module(datatypes_module)
          for name in getattr(module, "__all__", []):
              if (
                  name.startswith("_")
                  or name[0].islower()
                  or name == "FigureWidget"
              ):
                  continue
              obj = getattr(module, name)
              try:
                  v = obj()
              except Exception:
                  print(
                      "Failed to construct {obj} in module {module}".format(
                          obj=obj, module=datatypes_module
                      )
                  )
                  raise
  
              if obj.__module__ == "plotly.graph_objs._deprecations":
                  self.assertTrue(
                      isinstance(v, list) or isinstance(v, dict)
                  )
                  obj()
              elif name in ("Figure", "FigureWidget"):
                  self.assertIsInstance(v, BaseFigure)
              else:
                  self.assertIsInstance(v, BasePlotlyType)
  
imports: from unittest import TestCase
  import os
  import importlib
  from plotly.basedatatypes import BasePlotlyType, BaseFigure
label_desc: Use image node_id 1 for calling the HierarchyTest obj's underlying member method code with example usage: obj.test_construct_datatypes() without return types