Beispiel #1
0
def test_get_config_dir_when_path_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    expected_result = "/test/dir"
    # pylint: disable=protected-access
    resources.__CONFIG_DIR = expected_result
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", True)

    # run
    actual_result = resources.get_config_dir()

    # assert
    mocked_exists.assert_called_once_with(expected_result)
    assert actual_result == expected_result
Beispiel #2
0
def test_get_scripts_file_when_path_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    mocked_scripts_dir = _mock_get_scripts_dir(mocker, "/test/dir")
    expected_result = "/test/dir/openvpn_up_down.bash"
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", True)

    # run
    actual_result = resources.get_scripts_file()

    # assert
    mocked_scripts_dir.assert_called_once()
    mocked_exists.assert_called_once_with(expected_result)
    assert actual_result == expected_result
Beispiel #3
0
def test_get_config_file_when_path_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    test_dir = "/test/dir"
    mocked_config_dir = _mock_get_config_dir(mocker, test_dir)
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", True)
    expected_result = test_dir + "/config.yml"

    # run
    actual_result = resources.get_config_file()

    # assert
    mocked_config_dir.assert_called_once()
    mocked_exists.assert_called_once_with(expected_result)
    assert actual_result == expected_result
Beispiel #4
0
def test_list_config_dir_when_filetype_is_set_and_list_has_no_files(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    test_dir = "/test/dir"
    mocked_config_dir = _mock_get_config_dir(mocker, test_dir)
    dir_list = list()
    mocked_listdir = mockbase.mock_os_any(mocker, "listdir", dir_list)

    # run
    actual_list = resources.list_config_dir(filetype=".txt")

    # assert
    mocked_config_dir.assert_called_once()
    mocked_listdir.assert_called_once_with("/test/dir")
    assert not actual_list
Beispiel #5
0
def test_write_config_when_config_is_list_should_raise_type_error(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)

    config_file = mockbase.get_tmpdir() + "/config.yml"
    config = ["test"]
    mocked_config_file = _mock_get_config_file(mocker, config_file)

    # run and assert
    try:
        resources.write_config(config)
        assert False
    except TypeError:
        assert True

    mocked_config_file.assert_called_once()
Beispiel #6
0
def test_get_config_dir_when_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    expected_result = "/test/other/dir/config"
    # pylint: disable=protected-access
    resources.__CONFIG_DIR = "/test/dir"
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)
    mocked_filename = mockbase.mock_resource_filename(mocker, expected_result)

    # run
    actual_result = resources.get_config_dir()

    # assert
    mocked_exists.assert_called_once_with("/test/dir")
    mocked_filename.assert_called_once()
    assert actual_result == expected_result
Beispiel #7
0
def test_get_config_file_when_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    test_dir = "/test/dir"
    mocked_config_dir = _mock_get_config_dir(mocker, test_dir)
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)
    expected_result = test_dir + "/config.yml"

    # run and assert
    try:
        resources.get_config_file()
        assert False
    except resources.ResourceNotFoundError as error:
        assert error.resource_file == expected_result

    mocked_config_dir.assert_called_once()
    mocked_exists.assert_called_once_with(expected_result)
Beispiel #8
0
def test_get_scripts_file_when_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    mocked_scripts_dir = _mock_get_scripts_dir(mocker, "/test/dir")
    expected_result = "/test/dir/openvpn_up_down.bash"
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)

    # run
    try:
        resources.get_scripts_file()
        assert False
    except resources.ResourceNotFoundError as error:
        assert error.resource_file == expected_result

    # assert
    mocked_scripts_dir.assert_called_once()
    mocked_exists.assert_called_once_with(expected_result)
Beispiel #9
0
def test_list_config_dir_when_filetype_is_none_and_list_has_files(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    test_dir = "/test/dir"
    mocked_config_dir = _mock_get_config_dir(mocker, test_dir)
    # pylint: disable=protected-access
    dir_list = ["some", "other"]
    mocked_listdir = mockbase.mock_os_any(mocker, "listdir", dir_list)
    expected_list = [test_dir + "/" + _file for _file in dir_list]

    # run
    actual_list = resources.list_config_dir()

    # assert
    mocked_config_dir.assert_called_once()
    mocked_listdir.assert_called_once_with("/test/dir")
    assert actual_list == expected_list
Beispiel #10
0
def test_get_config_when_valid_yaml(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    fixture = "tests/fixtures/config_valid_yaml_fixture.yml"
    import yaml

    with open(fixture, "r") as fix_fd:
        expected_result = yaml.safe_load(fix_fd)

    mocked_config_file = _mock_get_config_file(
        mocker, "tests/fixtures/config_valid_yaml_fixture.yml")

    # run
    actual_result = resources.get_config()

    # assert
    mocked_config_file.assert_called_once()
    assert actual_result == expected_result
Beispiel #11
0
def test_get_stats_when_stats_dict_is_none(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_file = "tests/fixtures/config_valid_yaml_fixture.yml"
    mocked_stats_file = _mock_get_stats_file(mocker, stats_file)
    mocked_safe_load = mocker.patch("connord.resources.yaml.safe_load",
                                    return_value=None)
    expected_result = dict()

    # run
    actual_result = resources.get_stats()

    # assert
    mocked_stats_file.assert_called_once()
    mocked_safe_load.assert_called_once()
    assert actual_result == expected_result
Beispiel #12
0
def test_get_stats_when_valid_yaml(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_file = "tests/fixtures/config_valid_yaml_fixture.yml"
    mocked_stats_file = _mock_get_stats_file(mocker, stats_file)
    import yaml

    with open(stats_file) as stats_fd:
        expected_result = yaml.safe_load(stats_fd)

    # run
    actual_result = resources.get_stats()

    # assert
    mocked_stats_file.assert_called_once()
    assert actual_result == expected_result
Beispiel #13
0
def test_write_config_when_valid_config(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources, create_tmpdir=True)

    config_file = mockbase.get_tmpdir() + "/config.yml"
    config = {"connord": ["value", "too", {"test": "value"}]}
    mocked_config_file = _mock_get_config_file(mocker, config_file)

    # run
    resources.write_config(config)

    # assert
    import os

    mocked_config_file.assert_called_once()
    assert os.path.exists(config_file)

    # tear down
    mockbase.tear_down()
Beispiel #14
0
def test_write_stats_when_valid_dict(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources, create_tmpdir=True)

    stats_file = mockbase.get_tmpdir() + "/stats"
    stats = {"connord": ["value", "too", {"test": "value"}]}
    mocked_stats_file = _mock_get_stats_file(mocker, stats_file)

    # run
    resources.write_stats(stats)

    # assert
    import os

    mocked_stats_file.assert_called_once()
    assert os.path.exists(stats_file)

    # tear down
    mockbase.tear_down()
Beispiel #15
0
def test_write_config_when_error_message(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)

    config_file = mockbase.get_tmpdir() + "/config.yml"
    config = ["test"]
    mocked_config_file = _mock_get_config_file(mocker, config_file)

    # run and assert
    try:
        resources.write_config(config)
        assert False
    except TypeError as error:
        assert str(
            error
            # pylint: disable=line-too-long
        ) == "Could not write to {!r}: Invalid type: Found <class 'list'> but expected <class 'dict'>.".format(
            config_file)

    mocked_config_file.assert_called_once()
Beispiel #16
0
def test_write_stats_when_invalid_dict(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources, create_tmpdir=True)

    stats_file = "/test/stats"
    stats = list()
    mocked_stats_file = _mock_get_stats_file(mocker, stats_file)

    # run
    try:
        resources.write_stats(stats)
    except TypeError as error:
        assert str(
            error
            # pylint: disable=line-too-long
        ) == "Could not write to {!r}: Invalid type: Found <class 'list'> but expected <class 'dict'>.".format(
            stats_file)

    # assert
    mocked_stats_file.assert_called_once()
Beispiel #17
0
def test_get_stats_file_when_default_and_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_dir = "/run/dir"

    mocked_stats_dir = _mock_get_stats_dir(mocker, stats_dir)
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)
    mocked_open = mockbase.mock_open(mocker)
    expected_result = stats_dir + "/stats"

    # run
    actual_result = resources.get_stats_file()

    # assert
    mocked_stats_dir.assert_called_once_with(True)
    mocked_exists.assert_called_once_with(expected_result)
    mocked_open.assert_called_once_with(expected_result, "w")

    assert actual_result == expected_result
Beispiel #18
0
def test_get_stats_dir_when_default_and_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_dir = "/run/dir"
    # pylint: disable=protected-access
    resources.__RUN_DIR = stats_dir

    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)
    mocked_makedirs = mockbase.mock_os_any(mocker, "makedirs", stats_dir)
    expected_result = stats_dir

    # run
    actual_result = resources.get_stats_dir()

    # assert
    mocked_exists.assert_called_once_with(stats_dir)
    mocked_makedirs.assert_called_once_with(stats_dir, mode=0o750)

    assert actual_result == expected_result
Beispiel #19
0
def test_get_config_when_invalid_yaml(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.setup(resources)
    yaml_fixture = "tests/fixtures/config_invalid_yaml_fixture.yml"

    mocked_config_file = _mock_get_config_file(mocker, yaml_fixture)

    # run and assert
    try:
        resources.get_config()
        assert False
    except resources.MalformedResourceError as error:
        assert error.resource_file == yaml_fixture
        assert error.problem == "expected <block end>, but found '-'"
        assert (
            error.problem_mark
            # pylint: disable=line-too-long
            ==
            '  in "tests/fixtures/config_invalid_yaml_fixture.yml", line 4, column 3'
        )

    mocked_config_file.assert_called_once()
Beispiel #20
0
def test_get_stats_dir_when_create_is_false_and_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_dir = "/run/dir"
    # pylint: disable=protected-access
    resources.__RUN_DIR = stats_dir

    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)
    mocked_makedirs = mockbase.mock_os_any(mocker, "makedirs", stats_dir)
    expected_result = stats_dir

    # run
    try:
        resources.get_stats_dir(create=False)
        assert False
    except resources.ResourceNotFoundError as error:
        assert error.resource_file == expected_result

    # assert
    mocked_exists.assert_called_once_with(stats_dir)
    mocked_makedirs.assert_not_called()
Beispiel #21
0
def test_get_stats_when_invalid_yaml(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_file = "tests/fixtures/config_invalid_yaml_fixture.yml"
    mocked_stats_file = _mock_get_stats_file(mocker, stats_file)

    # run
    try:
        resources.get_stats()
    except resources.MalformedResourceError as error:
        assert error.resource_file == stats_file
        assert error.problem == "expected <block end>, but found '-'"
        assert (
            error.problem_mark
            # pylint: disable=line-too-long
            ==
            '  in "tests/fixtures/config_invalid_yaml_fixture.yml", line 4, column 3'
        )

    # assert
    mocked_stats_file.assert_called_once()
Beispiel #22
0
def test_get_stats_file_when_create_is_false_and_path_not_exists(mocker):
    # setup
    mockbase = MockBase("resources")
    mockbase.mock_user_is_root(mocker, True)
    mockbase.setup(resources)

    stats_dir = "/run/dir"

    mocked_stats_dir = _mock_get_stats_dir(mocker, stats_dir)
    mocked_exists = mockbase.mock_os_any(mocker, "path.exists", False)
    mocked_open = mockbase.mock_open(mocker)
    expected_result = stats_dir + "/stats"

    # run
    try:
        resources.get_stats_file(create=False)
        assert False
    except resources.ResourceNotFoundError as error:
        assert error.resource_file == expected_result

    # assert
    mocked_stats_dir.assert_called_once_with(False)
    mocked_exists.assert_called_once_with(expected_result)
    mocked_open.assert_not_called()