code: def test_event_time_session_window(self):
      data_stream = self.env.from_collection(
          [
              ("hi", 1),
              ("hi", 2),
              ("hi", 3),
              ("hi", 4),
              ("hi", 8),
              ("hi", 9),
              ("hi", 15),
          ],
          type_info=Types.TUPLE([Types.STRING(), Types.INT()]),
      )  # type: DataStream
      watermark_strategy = WatermarkStrategy.for_monotonous_timestamps().with_timestamp_assigner(
          SecondColumnTimestampAssigner()
      )
  
      data_stream.assign_timestamps_and_watermarks(
          watermark_strategy
      ).key_by(lambda x: x[0], key_type=Types.STRING()).window(
          EventTimeSessionWindows.with_gap(Time.milliseconds(5))
      ).process(
          CountWindowProcessFunction(),
          Types.TUPLE(
              [Types.STRING(), Types.LONG(), Types.LONG(), Types.INT()]
          ),
      ).add_sink(
          self.test_sink
      )
  
      self.env.execute("test_event_time_session_window")
      results = self.test_sink.get_results()
      expected = ["(hi,1,14,6)", "(hi,15,20,1)"]
      self.assert_equals_sorted(expected, results)
  
imports: from typing import Iterable, Tuple, Dict
  from pyflink.common import Configuration
  from pyflink.common.time import Time
  from pyflink.common.typeinfo import Types
  from pyflink.common.watermark_strategy import WatermarkStrategy, TimestampAssigner
  from pyflink.datastream.data_stream import DataStream
  from pyflink.datastream.functions import ProcessWindowFunction, WindowFunction, AggregateFunction, ProcessAllWindowFunction
  from pyflink.datastream.output_tag import OutputTag
  from pyflink.datastream.window import TumblingEventTimeWindows, SlidingEventTimeWindows, EventTimeSessionWindows, CountSlidingWindowAssigner, SessionWindowTimeGapExtractor, CountWindow, PurgingTrigger, EventTimeTrigger, TimeWindow, GlobalWindows, CountTrigger
  from pyflink.datastream.tests.test_util import DataStreamTestSinkFunction
  from pyflink.java_gateway import get_gateway
  from pyflink.testing.test_case_utils import PyFlinkStreamingTestCase
  from pyflink.util.java_utils import get_j_env_configuration
label_desc: Use image node_id 8 for calling the WindowTests obj's underlying member method code with example usage: obj.test_event_time_session_window() without return types