code: def test_fill_from_lock_with_missing_sections(dvc, lock_data):
      stage = create_stage(
          PipelineStage, dvc, PROJECT_FILE, deps=["foo"], outs=["bar"]
      )
      lock = deepcopy(lock_data)
      del lock["deps"]
      StageLoader.fill_from_lock(stage, lock)
      assert not stage.deps[0].hash_info
      assert stage.outs[0].hash_info == HashInfo("md5", "bar_checksum")
  
      lock = deepcopy(lock_data)
      del lock["outs"]
      StageLoader.fill_from_lock(stage, lock)
      assert stage.deps[0].hash_info == HashInfo("md5", "foo_checksum")
      assert not stage.outs[0].hash_info
  
imports: import os
  from copy import deepcopy
  from itertools import chain
  import pytest
  from dvc.dvcfile import PROJECT_FILE, load_file
  from dvc.stage import PipelineStage, create_stage
  from dvc.stage.loader import StageLoader
  from dvc.stage.serialize import split_params_deps
  from dvc_data.hashfile.hash_info import HashInfo
label_desc: Use image node_id 9 for calling a global function with example usage: test_fill_from_lock_with_missing_sections(dvc, lock_data) without return types