code: def test_from_json(self, temp_workdir):
      data = {
          "id": "a1a973fcbead997a3b253c960b9fad1bb1386681beefd7ba8703e25548beb11c",
          "created": "2020-10-07T22:44:06.532785Z",
          "path": "model.pth",
          "metrics": {
              "loss": 0.9042219519615173,
              "accuracy": 0.8666666746139526,
          },
          "primary_metric": {"name": "loss", "goal": "minimize"},
          "step": 7,
      }
      checkpoint = Checkpoint.from_json(data)
      assert dataclasses.asdict(checkpoint) == {
          "id": "a1a973fcbead997a3b253c960b9fad1bb1386681beefd7ba8703e25548beb11c",
          "created": datetime.datetime(2020, 10, 7, 22, 44, 6, 532785),
          "path": "model.pth",
          "metrics": {
              "loss": 0.9042219519615173,
              "accuracy": 0.8666666746139526,
          },
          "primary_metric": {"name": "loss", "goal": "minimize"},
          "step": 7,
      }
  
file_path: keepsake/python/tests/test_checkpoint.py
imports: import datetime
  import time
  import os
  import pytest
  from waiting import wait
  from keepsake.checkpoint import Checkpoint, CheckpointList
  from keepsake.exceptions import DoesNotExist
  from keepsake.project import Project
  from tests.factories import experiment_factory, checkpoint_factory
label_desc: Use image node_id 2 for calling the TestCheckpoint obj's underlying member method code with example usage: obj.test_from_json(temp_workdir) without return types