class_docstr: `current.card.append` should be accessible to the card with `customize=True`.
      - Even if there are other editable cards without `id` and with `id`
class_docstr_tok: ["`","current.card.append","`","should","be","accessible","to","the","card","with","`","customize=True","`",".","-","Even","if","there","are","other","editable","cards","without","`","id","`","and","with","`","id","`"]
code: def check_results(self, flow, checker):
      run = checker.get_run()
      card_type = "test_editable_card"
      if run is None:
          # This means CliCheck is in context.
          for step in flow:
              if step.name != "start":
                  continue
  
              cli_check_dict = checker.artifact_dict(
                  step.name, "random_number"
              )
              for task_pathspec in cli_check_dict:
                  task_id = task_pathspec.split("/")[-1]
                  cards_info = checker.list_cards(
                      step.name, task_id, card_type
                  )
                  assert_equals(
                      cards_info is not None
                      and "cards" in cards_info
                      and len(cards_info["cards"]) == 2,
                      True,
                  )
                  # Find the card without the id
                  default_editable_cards = [
                      c for c in cards_info["cards"] if c["id"] is None
                  ]
                  # There should only be one card of type "test_editable_card" with no id.
                  # That is the default editable card because it has `customize=True`
                  assert_equals(len(default_editable_cards) == 1, True)
                  card = default_editable_cards[0]
                  number = cli_check_dict[task_pathspec][
                      "random_number"
                  ]
                  checker.assert_card(
                      step.name,
                      task_id,
                      card_type,
                      "%d" % number,
                      card_hash=card["hash"],
                      exact_match=True,
                  )
      else:
          # This means MetadataCheck is in context.
          for step in flow:
              if step.name != "start":
                  continue
              meta_check_dict = checker.artifact_dict(
                  step.name, "random_number"
              )
              for task_id in meta_check_dict:
                  cards_info = checker.list_cards(
                      step.name, task_id, card_type
                  )
                  assert_equals(
                      cards_info is not None
                      and "cards" in cards_info
                      and len(cards_info["cards"]) == 2,
                      True,
                  )
                  default_editable_cards = [
                      c for c in cards_info["cards"] if c["id"] is None
                  ]
                  # There should only be one card of type "test_editable_card" with no id.
                  # That is the default editable card since it has `customize=True`
                  assert_equals(len(default_editable_cards) == 1, True)
                  card = default_editable_cards[0]
                  random_number = meta_check_dict[task_id][
                      "random_number"
                  ]
                  checker.assert_card(
                      step.name,
                      task_id,
                      card_type,
                      "%d" % random_number,
                      card_hash=card["hash"],
                      exact_match=True,
                  )
  
imports: from metaflow_test import MetaflowTest, ExpectationFailed, steps, tag
label_desc: Use image node_id 3 for calling the DefaultEditableCardWithCustomizeTest obj's underlying member method code with example usage: obj.check_results(flow, checker) without return types