code: def test_delete(self, temp_workdir):
      project = Project()
  
      with open("keepsake.yaml", "w") as f:
          f.write("repository: file://.keepsake/")
  
      with open("foo.txt", "w") as f:
          f.write("hello")
  
      experiment = project.experiments.create(
          path=".", params={"foo": "bar"}, disable_heartbeat=True
      )
      with open("model.txt", "w") as f:
          f.write("i'm a model")
      chk = experiment.checkpoint(
          path="model.txt", metrics={"accuracy": "awesome"}
      )
  
      def get_paths():
          return set(
              str(p).replace(".keepsake/", "")
              for p in Path(".keepsake").rglob("*")
          )
  
      chk_tar_path = os.path.join(
          ".keepsake/checkpoints", chk.id + ".tar.gz"
      )
      wait(
          lambda: os.path.exists(chk_tar_path),
          timeout_seconds=5,
          sleep_seconds=0.01,
      )
  
      paths = get_paths()
      expected = set(
          [
              "repository.json",
              "metadata/experiments/{}.json".format(experiment.id),
              "experiments",
              "checkpoints/{}.tar.gz".format(chk.id),
              "metadata",
              "metadata/experiments",
              "experiments/{}.tar.gz".format(experiment.id),
              "checkpoints",
          ]
      )
      assert paths == expected
  
      experiment.delete()
  
      paths = get_paths()
      expected = set(
          [
              "repository.json",  # we're not deleting the project spec
              "experiments",
              "metadata",
              "metadata/experiments",
              "checkpoints",
          ]
      )
      assert paths == expected
  
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 4 for calling the TestExperiment obj's underlying member method code with example usage: obj.test_delete(temp_workdir) and returns: set