code: def test_actual_timeouts(mock_build_dir):
      """Test that size and timeout attrs are mapped to seconds correctly.
  
      Assert that each of the fake rules is mapped correctly.
      """
      query = bazel_sharding.get_target_expansion_query(
          ["..."], tests_only=False, exclude_manual=False
      )
      xml_output = bazel_sharding.run_bazel_query(query, debug=False)
      rules = set(bazel_sharding.extract_rules_from_xml(xml_output))
      expected_timeouts = {
          "test_default": 60 * 5,
          "test_small": 60,
          "test_medium": 60 * 5,
          "test_large": 60 * 15,
          "test_enormous": 60 * 60,
          "test_short": 60,
          "test_moderate": 60 * 5,
          "test_long": 60 * 15,
          "test_eternal": 60 * 60,
          "test_both_size_and_timeout": 60 * 15,
      }
      assert len(rules) == len(expected_timeouts)
      assert (
          rule.actual_timeout_s == expected_timeouts[rule.name]
          for rule in rules
      )
  
file_path: ray/ci/ray_ci/test_bazel_sharding.py
imports: from typing import List
  import pytest
  import os
  import shutil
  import sys
  import tempfile
  import bazel_sharding
label_desc: Use image node_id 3 for calling a global function with example usage: test_actual_timeouts(mock_build_dir) without return types