code: def test_query_manager_await_termination(self):
      df = self.spark.readStream.format("text").load(
          "python/test_support/sql/streaming"
      )
      for q in self.spark.streams.active:
          q.stop()
      tmpPath = tempfile.mkdtemp()
      shutil.rmtree(tmpPath)
      self.assertTrue(df.isStreaming)
      out = os.path.join(tmpPath, "out")
      chk = os.path.join(tmpPath, "chk")
      q = df.writeStream.start(
          path=out,
          format="parquet",
          queryName="this_query",
          checkpointLocation=chk,
      )
      try:
          self.assertTrue(q.isActive)
          try:
              self.spark.streams.awaitAnyTermination("hello")
              self.fail("Expected a value exception")
          except ValueError:
              pass
          now = time.time()
          # test should take at least 2 seconds
          res = self.spark.streams.awaitAnyTermination(2.6)
          duration = time.time() - now
          self.assertTrue(duration >= 2)
          self.assertFalse(res)
      finally:
          q.processAllAvailable()
          q.stop()
          shutil.rmtree(tmpPath)
  
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 11 for calling the StreamingTestsMixin obj's underlying member method code with example usage: obj.test_query_manager_await_termination() without return types