class_docstr: Tests the server's response to experiments/:name
class_docstr_tok: ["Tests","the","server","'s","response","to","experiments\/",":","name"]
docstr: Tests that the experiment returned is following the specification
docstr_tok: ["Tests","that","the","experiment","returned","is","following","the","specification"]
code: def test_experiment_specification(self, client, ephemeral_storage):
      """Tests that the experiment returned is following the specification"""
  
      storage = ephemeral_storage.storage
  
      _add_experiment(storage, name="a", version=1, _id=1)
      _add_trial(
          storage, experiment=1, id_override="ae8", status="completed"
      )
  
      response = client.simulate_get("/experiments/a")
  
      assert response.status == "200 OK"
  
      assert response.json["name"] == "a"
      assert response.json["version"] == 1
      assert response.json["status"] == "not done"
      assert response.json["trialsCompleted"] == 1
      assert response.json["startTime"] == "0001-01-01 00:00:00"  # TODO
      assert response.json["endTime"] == "0001-01-02 00:00:00"  # TODO
      assert len(response.json["user"])
      assert response.json["orionVersion"] == "x.y.z"
  
      _assert_config(response.json["config"])
      _assert_best_trial(response.json["bestTrial"])
  
imports: import copy
  import datetime
  from orion.core.worker.trial import Trial
label_desc: Use image node_id 2 for calling the TestItem obj's underlying member method code with example usage: obj.test_experiment_specification(client, ephemeral_storage) without return types