code: def test_shell_params_to_env_var_conversion(
      env_vars: dict[str, str],
      kwargs: dict[str, str | bool],
      expected_vars: dict[str, str],
  ):
      with patch("os.environ", env_vars):
          shell_params = ShellParams(**kwargs)
          env_vars = shell_params.env_variables_for_docker_commands
          error = False
          for expected_key, expected_value in expected_vars.items():
              if expected_key not in env_vars:
                  if expected_value is not None:
                      console.print(
                          f"[red] Expected variable {expected_key} missing.[/]\nVariables retrieved:"
                      )
                      console.print(env_vars)
                      error = True
              elif expected_key is None:
                  console.print(
                      f"[red] The variable {expected_key} is not expected.[/]\nVariables retrieved:"
                  )
                  console.print(env_vars)
                  error = True
              elif env_vars[expected_key] != expected_value:
                  console.print(
                      f"[red] The expected variable {expected_key} value '{env_vars[expected_key]}' is different than expected {expected_value}[/]\n"
                      f"Variables retrieved:"
                  )
                  console.print(env_vars)
                  error = True
          assert not error, "Some values are not as expected."
  
imports: from __future__ import annotations
  from unittest.mock import patch
  import pytest
  from rich.console import Console
  from airflow_breeze.branch_defaults import AIRFLOW_BRANCH
  from airflow_breeze.params.shell_params import ShellParams
label_desc: Use image node_id 1 for calling a global function with example usage: test_shell_params_to_env_var_conversion(env_vars, kwargs, expected_vars) without return types