code: def test_encrypted_parquet_write_kms_factory_type_error(
      tempdir, data_table, basic_encryption_config
  ):
      """Write an encrypted parquet, but use wrong KMS client type
      that doesn't implement KmsClient."""
      path = (
          tempdir / "encrypted_table_kms_factory_error.in_mem.parquet"
      )
      encryption_config = basic_encryption_config
  
      # Empty master_keys_map
      kms_connection_config = pe.KmsConnectionConfig()
  
      class WrongTypeKmsClient:
          """This is not an implementation of KmsClient."""
  
          def __init__(self, config):
              self.master_keys_map = config.custom_kms_conf
  
          def wrap_key(self, key_bytes, master_key_identifier):
              return None
  
          def unwrap_key(self, wrapped_key, master_key_identifier):
              return None
  
      def kms_factory(kms_connection_configuration):
          return WrongTypeKmsClient(kms_connection_configuration)
  
      crypto_factory = pe.CryptoFactory(kms_factory)
      with pytest.raises(TypeError):
          # Write with encryption properties
          write_encrypted_parquet(
              path,
              data_table,
              encryption_config,
              kms_connection_config,
              crypto_factory,
          )
  
imports: import pytest
  from datetime import timedelta
  import pyarrow
label_desc: Use image node_id 14 for calling a global function with example usage: test_encrypted_parquet_write_kms_factory_type_error(tempdir, data_table, basic_encryption_config) and returns: WrongTypeKmsClient, None, None