code: def test_type_validation(self):
      # Only strings allowed.
      with pytest.raises(TypeError, match=".*Dict[str, str]*"):
          parse_and_validate_env_vars({"INT_ENV": 1})
  
      with pytest.raises(TypeError, match=".*Dict[str, str]*"):
          parse_and_validate_env_vars({1: "hi"})
  
      with pytest.raises(
          TypeError, match=".*value 123 is of type <class 'int'>*"
      ):
          parse_and_validate_env_vars({"hi": 123})
  
      with pytest.raises(
          TypeError, match=".*value True is of type <class 'bool'>*"
      ):
          parse_and_validate_env_vars({"hi": True})
  
      with pytest.raises(
          TypeError, match=".*key 1.23 is of type <class 'float'>*"
      ):
          parse_and_validate_env_vars({1.23: "hi"})
  
imports: import os
  import pytest
  import sys
  import tempfile
  from pathlib import Path
  from ray import job_config
  import yaml
  import jsonschema
  from ray._private.runtime_env.validation import parse_and_validate_excludes, parse_and_validate_working_dir, parse_and_validate_conda, parse_and_validate_pip, parse_and_validate_env_vars, parse_and_validate_py_modules
  from ray._private.runtime_env.plugin_schema_manager import RuntimeEnvPluginSchemaManager
  from ray.runtime_env import RuntimeEnv
label_desc: Use image node_id 1 for calling the TestValidateEnvVars obj's underlying member method code with example usage: obj.test_type_validation() without return types