code: def assert_key_has_value(self, key, caller):
          
          assert key, ("key parameter must be specified.")
          self.assert_key_exists(key, caller)
  
          if self[key] is None:
              raise KeyInContextHasNoValueError(
                  f"context['{key}'] must have a value for {caller}.")
docs: Assert that context contains key which also has a value.
  
          Args:
              key: validate this key exists in context AND has a value that isn't
                   None.
              caller: string. calling function name - this used to construct
                      error messages
  
          Raises:
              KeyNotInContextError: Key doesn't exist
              KeyInContextHasNoValueError: context[key] is None
              AssertionError: if key is None