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
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
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
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
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()
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
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)
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)
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
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
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
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
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()
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()
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()
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()
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
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
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()
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()
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()
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()