code: def test_assert_subprocess_calls():
      expected_calls = ["echo Hello", ["echo", "World"]]
      with assert_subprocess_calls(expected_calls):
          subprocess.run(["echo", "Hello"])
          subprocess.run(["echo", "World"])
  
      expected_env = PartialEnv(CUSTOM_ENV_A="a", CUSTOM_ENV_C="c")
      with assert_subprocess_calls(expected_calls, env=expected_env):
          env = {
              "CUSTOM_ENV_A": "a",
              "CUSTOM_ENV_B": "b",
              "CUSTOM_ENV_C": "c",
          }
          subprocess.run(["echo", "Hello"], env=env)
          subprocess.run(["echo", "World"], env=env)
  
      with pytest.raises(AssertionError):
          with assert_subprocess_calls(
              expected_calls, env=expected_env
          ):
              env = {"CUSTOM_ENV_B": "b", "CUSTOM_ENV_C": "c"}
              subprocess.run(["echo", "Hello"], env=env)
              subprocess.run(["echo", "World"], env=env)
  
imports: import subprocess
  import pytest
  from archery.testing import PartialEnv, assert_subprocess_calls
label_desc: Use image node_id 2 for calling a global function with example usage: test_assert_subprocess_calls() without return types