code: def test_get_pred_lock(self):
      cache = caching.PredsCache("test")
      cache_key = [("a", "1"), ("a", "2")]
  
      lock = cache.get_pred_lock(cache_key)
      self.assertIsNotNone(lock)
  
      sub_cache_key = [("a", "2")]
      self.assertEqual(lock, cache.get_pred_lock(sub_cache_key))
  
      mismatch_cache_key = [("b", "2")]
      self.assertNotEqual(lock, cache.get_pred_lock(mismatch_cache_key))
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  from lit_nlp.api import dataset
  from lit_nlp.lib import caching
  from lit_nlp.lib import testing_utils
label_desc: Use image node_id 5 for calling the PredsCacheTest obj's underlying member method code with example usage: obj.test_get_pred_lock() without return types