code: def test_timestamps_from_extractor(self):
      rowtime = Rowtime().timestamps_from_extractor(
          "org.apache.flink.table.utils.TestingDescriptors$CustomExtractor"
      )
  
      properties = rowtime.to_properties()
      expected = {
          "rowtime.timestamps.type": "custom",
          "rowtime.timestamps.class": "org.apache.flink.table.utils.TestingDescriptors$CustomExtractor",
          "rowtime.timestamps.serialized": "rO0ABXNyAD9vcmcuYXBhY2hlLmZsaW5rLnRhYmxlLnV0aWxzLlRlc3RpbmdEZXNjcmlwdG9ycyRDdXN0b2"
          "1FeHRyYWN0b3K-MntVKO8Z7QIAAUwABWZpZWxkdAASTGphdmEvbGFuZy9TdHJpbmc7eHIAPm9yZy5hcGFj"
          "aGUuZmxpbmsudGFibGUuc291cmNlcy50c2V4dHJhY3RvcnMuVGltZXN0YW1wRXh0cmFjdG9yX9WOqYhTbB"
          "gCAAB4cHQAAnRz",
      }
      self.assertEqual(expected, properties)
  
imports: import collections
  import sys
  from pyflink.table.descriptors import Rowtime, Schema
  from pyflink.table.table_schema import TableSchema
  from pyflink.table.types import DataTypes
  from pyflink.testing.test_case_utils import PyFlinkTestCase
label_desc: Use image node_id 3 for calling the RowTimeDescriptorTests obj's underlying member method code with example usage: obj.test_timestamps_from_extractor() without return types