def test_cis_to_component_definition_execute(tmp_path: pathlib.Path,
                                             monkeypatch: MonkeyPatch):
    """Test execute call."""
    monkeypatch.setattr(uuid, 'uuid4', monkey_uuid_1)
    monkeypatch.setattr(trestle, '__version__', monkey_trestle_version())
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    d_expected = pathlib.Path(section['output-dir'])
    d_produced = tmp_path
    section['output-dir'] = str(tmp_path)
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    tgt.set_timestamp('2021-07-19T14:03:03.000+00:00')
    retval = tgt.execute()
    assert retval == TaskOutcome.SUCCESS
    list_dir = os.listdir(d_produced)
    assert len(list_dir) == 1
    assert d_expected != d_produced
    for fn in list_dir:
        f_expected = d_expected / fn
        f_produced = d_produced / fn
        result = text_files_equal(f_expected, f_produced)
        assert (result)
def test_cis_to_component_definition_print_info(tmp_path: pathlib.Path):
    """Test print_info call."""
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section['output-dir'] = str(tmp_path)
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.print_info()
    assert retval is None
def test_cis_to_component_definition_bogus_rules_file(tmp_path: pathlib.Path):
    """Test bogus rules."""
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition3.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section['output-dir'] = str(tmp_path)
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.execute()
    assert retval == TaskOutcome.FAILURE
def test_cis_to_component_definition_simulate(tmp_path: pathlib.Path):
    """Test simulate call."""
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section['output-dir'] = str(tmp_path)
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.simulate()
    assert retval == TaskOutcome.SIM_SUCCESS
    assert len(os.listdir(str(tmp_path))) == 0
def test_cis_to_component_definition_missing_output_dir(
        tmp_path: pathlib.Path):
    """Test execute call missing output-dir."""
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section.pop('output-dir')
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.execute()
    assert retval == TaskOutcome.FAILURE
def test_cis_to_component_definition_exception(tmp_path: pathlib.Path,
                                               monkeypatch: MonkeyPatch):
    """Test _get_cis_rules exception."""
    monkeypatch.setattr(cis_to_component_definition.CisToComponentDefinition,
                        '_get_cis_rules', monkey_exception)
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition2.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section['output-dir'] = str(tmp_path)
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.execute()
    assert retval == TaskOutcome.FAILURE
def test_cis_to_component_definition_duplicate_rule(tmp_path: pathlib.Path):
    """Test execute duplicate rule exists."""
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition2.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section['output-dir'] = str(tmp_path)
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.execute()
    assert retval == TaskOutcome.SUCCESS
    section['output-overwrite'] = 'false'
    retval = tgt.execute()
    assert retval == TaskOutcome.FAILURE
def test_cis_to_component_definition_missing_profile_title(
        tmp_path: pathlib.Path):
    """Test execute call missing profile-title."""
    config = configparser.ConfigParser()
    config_path = pathlib.Path(
        'tests/data/tasks/cis-to-component-definition/test-cis-to-component-definition.config'
    )
    config.read(config_path)
    section = config['task.cis-to-component-definition']
    section['output-dir'] = str(tmp_path)
    profile_list = section['profile-list'].split()
    for profile in profile_list:
        section.pop(f'profile-title.{profile}')
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.execute()
    assert retval == TaskOutcome.FAILURE
def test_cis_to_component_definition_bogus_config(tmp_path: pathlib.Path):
    """Test execute call bogus config."""
    section = None
    tgt = cis_to_component_definition.CisToComponentDefinition(section)
    retval = tgt.execute()
    assert retval == TaskOutcome.FAILURE