code: def test_environment_variable_functionality(
      monkeypatch,
      var_name,
      var_value,
      var_type,
      default_value,
      expected_raw,
      expected_get,
  ):
      if var_value is not None:
          monkeypatch.setenv(var_name, var_value)
      env_var = _EnvironmentVariable(var_name, var_type, default_value)
  
      # Test if variable is defined
      assert env_var.defined == (var_value is not None)
  
      # Test getting raw value
      assert env_var.get_raw() == expected_raw
  
      # Test getting value
      assert env_var.get() == expected_get
  
      # Test setting and unsetting value
      env_var.set(str(default_value))
      assert os.getenv(var_name) == str(default_value)
      env_var.unset()
      assert os.getenv(var_name) is None
  
file_path: mlflow/tests/test_environment_variables.py
imports: import os
  import pytest
  from mlflow.environment_variables import _BooleanEnvironmentVariable, _EnvironmentVariable
label_desc: Use image node_id 6 for calling a global function with example usage: test_environment_variable_functionality(monkeypatch, var_name, var_value, var_type, default_value, expected_raw, expected_get) without return types