code: def test_stream_save_options(self):
      df = (
          self.spark.readStream.format("text")
          .load("python/test_support/sql/streaming")
          .withColumn("id", lit(1))
      )
      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.option("checkpointLocation", chk)
          .queryName("this_query")
          .format("parquet")
          .partitionBy("id")
          .outputMode("append")
          .option("path", out)
          .start()
      )
      try:
          self.assertEqual(q.name, "this_query")
          self.assertTrue(q.isActive)
          q.processAllAvailable()
          output_files = []
          for _, _, files in os.walk(out):
              output_files.extend(
                  [f for f in files if not f.startswith(".")]
              )
          self.assertTrue(len(output_files) > 0)
          self.assertTrue(len(os.listdir(chk)) > 0)
      finally:
          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 5 for calling the StreamingTestsMixin obj's underlying member method code with example usage: obj.test_stream_save_options() without return types