old_contents: import pytest
  
  from moulinette.actionsmap import (
      CommentParameter,
      AskParameter,
      PatternParameter,
      RequiredParameter,
      ActionsMap
  )
  from moulinette.interfaces import BaseActionsMapParser
  from moulinette.core import MoulinetteError
  
  
  @pytest.fixture
  def iface():
      return 'iface'
  
  
  def test_comment_parameter_bad_bool_value(iface, caplog):
      comment = CommentParameter(iface)
      assert comment.validate(True, 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_comment_parameter_bad_empty_string(iface, caplog):
      comment = CommentParameter(iface)
      assert comment.validate('', 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_comment_parameter_bad_type(iface):
      comment = CommentParameter(iface)
      with pytest.raises(TypeError):
          comment.validate({}, 'b')
  
  
  def test_ask_parameter_bad_bool_value(iface, caplog):
      ask = AskParameter(iface)
      assert ask.validate(True, 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_ask_parameter_bad_empty_string(iface, caplog):
      ask = AskParameter(iface)
      assert ask.validate('', 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_ask_parameter_bad_type(iface):
      ask = AskParameter(iface)
      with pytest.raises(TypeError):
          ask.validate({}, 'b')
  
  
  def test_pattern_parameter_bad_str_value(iface, caplog):
      pattern = PatternParameter(iface)
      assert pattern.validate('', 'a') == ['', 'pattern_not_match']
      assert any('expecting a list' in message for message in caplog.messages)
  
  
  @pytest.mark.parametrize('iface', [
      [],
      ['pattern_alone'],
      ['pattern', 'message', 'extra stuff']
  ])
  def test_pattern_parameter_bad_list_len(iface):
      pattern = PatternParameter(iface)
      with pytest.raises(TypeError):
          pattern.validate(iface, 'a')
  
  
  def test_required_paremeter_missing_value(iface):
      required = RequiredParameter(iface)
      with pytest.raises(MoulinetteError) as exception:
          required(True, 'a', '')
      assert 'is required' in str(exception)
  
  
  def test_actions_map_unknown_authenticator(monkeypatch, tmp_path):
      monkeypatch.setenv('MOULINETTE_DATA_DIR', str(tmp_path))
      actionsmap_dir = actionsmap_dir = tmp_path / 'actionsmap'
      actionsmap_dir.mkdir()
  
      amap = ActionsMap(BaseActionsMapParser)
      with pytest.raises(ValueError) as exception:
          amap.get_authenticator(profile='unknown')
      assert 'Unknown authenticator' in str(exception)
  
new_contents: import pytest
  
  from moulinette.actionsmap import (
      CommentParameter,
      AskParameter,
      PatternParameter,
      RequiredParameter,
      ActionsMap
  )
  from moulinette.interfaces import BaseActionsMapParser
  from moulinette.core import MoulinetteError
  
  
  @pytest.fixture
  def iface():
      return 'iface'
  
  
  def test_comment_parameter_bad_bool_value(iface, caplog):
      comment = CommentParameter(iface)
      assert comment.validate(True, 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_comment_parameter_bad_empty_string(iface, caplog):
      comment = CommentParameter(iface)
      assert comment.validate('', 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_comment_parameter_bad_type(iface):
      comment = CommentParameter(iface)
      with pytest.raises(TypeError):
          comment.validate({}, 'b')
  
  
  def test_ask_parameter_bad_bool_value(iface, caplog):
      ask = AskParameter(iface)
      assert ask.validate(True, 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_ask_parameter_bad_empty_string(iface, caplog):
      ask = AskParameter(iface)
      assert ask.validate('', 'a') == 'a'
      assert any('expecting a non-empty string' in message for message in caplog.messages)
  
  
  def test_ask_parameter_bad_type(iface):
      ask = AskParameter(iface)
      with pytest.raises(TypeError):
          ask.validate({}, 'b')
  
  
  def test_pattern_parameter_bad_str_value(iface, caplog):
      pattern = PatternParameter(iface)
      assert pattern.validate('', 'a') == ['', 'pattern_not_match']
      assert any('expecting a list' in message for message in caplog.messages)
  
  
  @pytest.mark.parametrize('iface', [
      [],
      ['pattern_alone'],
      ['pattern', 'message', 'extra stuff']
  ])
  def test_pattern_parameter_bad_list_len(iface):
      pattern = PatternParameter(iface)
      with pytest.raises(TypeError):
          pattern.validate(iface, 'a')
  
  
  def test_required_paremeter_missing_value(iface):
      required = RequiredParameter(iface)
      with pytest.raises(MoulinetteError) as exception:
          required(True, 'a', '')
      assert 'is required' in str(exception)
  
  
  def test_actions_map_unknown_authenticator(monkeypatch, tmp_path):
      monkeypatch.setenv('MOULINETTE_DATA_DIR', str(tmp_path))
      actionsmap_dir = actionsmap_dir = tmp_path / 'actionsmap'
      actionsmap_dir.mkdir()
  
      amap = ActionsMap(BaseActionsMapParser)
      with pytest.raises(ValueError) as exception:
          amap.get_authenticator_for_profile('unknown')
      assert 'Unknown authenticator' in str(exception)
  
subject: Fix broken test due to change in function name