code: def test_get(self, temp_workdir):
      project = Project()
  
      with open("keepsake.yaml", "w") as f:
          f.write("repository: file://.keepsake/")
  
      exp1 = project.experiments.create(
          path=None, params={"foo": "bar"}, disable_heartbeat=True
      )
      exp1.checkpoint(path=None, metrics={"accuracy": "wicked"})
      exp2 = project.experiments.create(
          path=None, params={"foo": "baz"}, disable_heartbeat=True
      )
  
      actual_exp = project.experiments.get(exp1.id)
      assert actual_exp.created == exp1.created
      assert len(actual_exp.checkpoints) == 1
      assert actual_exp.checkpoints[0].metrics == {"accuracy": "wicked"}
      # get by prefix
      assert (
          project.experiments.get(exp2.id[:7]).created == exp2.created
      )
  
      with pytest.raises(DoesNotExist):
          project.experiments.get("doesnotexist")
  
imports: import math
  import datetime
  import json
  import os
  import pytest
  import tarfile
  import tempfile
  import time
  from pathlib import Path
  from unittest.mock import patch
  from waiting import wait
  import keepsake
  from keepsake.exceptions import DoesNotExist, ConfigNotFound, IncompatibleRepositoryVersion
  from keepsake.experiment import Experiment, ExperimentList
  from keepsake.project import Project
  from keepsake.metadata import rfc3339_datetime
  from tests.factories import experiment_factory, checkpoint_factory
label_desc: Use image node_id 1 for calling the TestExperimentCollection obj's underlying member method code with example usage: obj.test_get(temp_workdir) without return types