code: def attributes_to_test(
      inputs: InputTypes,
      cluster_name: str,
      fargate_profile_name: str | None = None,
      nodegroup_name: str | None = None,
  ) -> list[tuple]:
      """
      Assembles the list of tuples which will be used to validate test results.
      The format of the tuple is (attribute name, expected value)
  
      :param inputs: A class containing lists of tuples to use for verifying the output
      of cluster or nodegroup creation tests.
      :param cluster_name: The name of the cluster under test.
      :param fargate_profile_name: The name of the Fargate profile under test if applicable.
      :param nodegroup_name: The name of the nodegroup under test if applicable.
      :return: Returns a list of tuples containing the keys and values to be validated in testing.
      """
      result: list[tuple] = deepcopy(inputs.REQUIRED + inputs.OPTIONAL + [STATUS])  # type: ignore
      if inputs == ClusterInputs:
          result += [(ClusterAttributes.NAME, cluster_name)]
      elif inputs == FargateProfileInputs:
          result += [
              (
                  FargateProfileAttributes.FARGATE_PROFILE_NAME,
                  fargate_profile_name,
              )
          ]
      elif inputs == NodegroupInputs:
          # The below tag is mandatory and must have a value of either 'owned' or 'shared'
          # A value of 'owned' denotes that the subnets are exclusive to the nodegroup.
          # The 'shared' value allows more than one resource to use the subnet.
          required_tag: dict = {
              f"kubernetes.io/cluster/{cluster_name}": "owned"
          }
          # Find the user-submitted tag set and append the required tag to it.
          final_tag_set: dict = required_tag
          for key, value in result:
              if key == "tags":
                  final_tag_set = {**value, **final_tag_set}
          # Inject it back into the list.
          result = [
              (key, value)
              if (key != NodegroupAttributes.TAGS)
              else (NodegroupAttributes.TAGS, final_tag_set)
              for key, value in result
          ]
  
          result += [
              (NodegroupAttributes.NODEGROUP_NAME, nodegroup_name)
          ]
  
      return result
  
file_path: airflow/tests/providers/amazon/aws/utils/eks_test_utils.py
imports: from __future__ import annotations
  import re
  from copy import deepcopy
  from typing import TYPE_CHECKING, Pattern, Type, Union
  from ..utils.eks_test_constants import STATUS, ClusterAttributes, ClusterInputs, FargateProfileAttributes, FargateProfileInputs, NodegroupAttributes, NodegroupInputs, ResponseAttributes
label_desc: Use image node_id 1 for calling a global function with example usage: attributes_to_test(inputs, cluster_name, fargate_profile_name, nodegroup_name) and returns: result