code: def test_cassandra_sink(self):
      type_info = Types.ROW([Types.STRING(), Types.INT()])
      ds = self.env.from_collection(
          [("ab", 1), ("bdc", 2), ("cfgs", 3), ("deeefg", 4)],
          type_info=type_info,
      )
      cassandra_sink_builder = CassandraSink.add_sink(ds)
  
      cassandra_sink = (
          cassandra_sink_builder.set_host("localhost", 9876)
          .set_query("query")
          .enable_ignore_null_fields()
          .set_mapper_options(
              MapperOptions()
              .ttl(1)
              .timestamp(100)
              .tracing(True)
              .if_not_exists(False)
              .consistency_level(ConsistencyLevel.ANY)
              .save_null_fields(True)
          )
          .set_max_concurrent_requests(1000)
          .build()
      )
  
      cassandra_sink.name("cassandra_sink").set_parallelism(3)
  
      plan = eval(self.env.get_execution_plan())
      self.assertEqual("Sink: cassandra_sink", plan["nodes"][1]["type"])
      self.assertEqual(3, plan["nodes"][1]["parallelism"])
  
imports: from pyflink.common import Types
  from pyflink.datastream.connectors.cassandra import CassandraSink, MapperOptions, ConsistencyLevel
  from pyflink.testing.test_case_utils import PyFlinkStreamingTestCase
label_desc: Use image node_id 1 for calling the CassandraSinkTest obj's underlying member method code with example usage: obj.test_cassandra_sink() without return types