code: def _assert_exception_tree_contains_msg(self, exception, msg):
      e = exception
      contains = msg in e._desc
      while e._cause is not None and not contains:
          e = e._cause
          contains = msg in e._desc
      self.assertTrue(
          contains,
          "Exception tree doesn't contain the expected message: %s"
          % msg,
      )
  
imports: import os
  import shutil
  import tempfile
  import time
  from pyspark.sql import Row
  from pyspark.sql.functions import lit
  from pyspark.sql.types import StructType, StructField, IntegerType, StringType
  from pyspark.testing.sqlutils import ReusedSQLTestCase
label_desc: Use image node_id 1 for calling the StreamingTests obj's underlying member method code with example usage: obj._assert_exception_tree_contains_msg(exception, msg) without return types