def mock_group(monkeypatch): gid = 1000 if is_windows() else 5566 if not is_windows(): monkeypatch.setattr(os, 'getgid', lambda: gid) import grp class MockGroup: gr_name = 'test_group' monkeypatch.setattr(grp, 'getgrgid', lambda x: MockGroup())
def mock_env_user(monkeypatch, home_temp_dir): if is_windows(): monkeypatch.setenv('USERNAME', 'dog_test_user') else: monkeypatch.setenv('USER', 'dog_test_user') monkeypatch.setenv('P4USER', 'dog_test_user') monkeypatch.setenv('P4PORT', 'my_perforce_server:5000')
def test_auto_mount( basic_dog_config, call_main, tmp_path, mock_execvp, home_temp_dir, extra_dog_conf: str, default_mount_point: bool, ): append_to_dog_config(tmp_path, ['image=my_image', extra_dog_conf]) call_main('my_inside_cmd') args_left = assert_docker_std_cmdline(mock_execvp) args_left = assert_docker_image_and_cmd_inside_docker( args_left, 'my_image', ['my_inside_cmd'] ) args_left = assert_workdir_param(args_left, get_workdir(tmp_path)) args_left = std_assert_hostname_param(args_left) if default_mount_point: if is_windows(): args_left = assert_volume_params(args_left, [('/C', 'C:\\')]) else: mount_point = str(find_mount_point(tmp_path)) args_left = assert_volume_params(args_left, [(mount_point, mount_point)]) else: args_left = assert_volume_params(args_left, []) args_left = std_assert_interactive(args_left) args_left = std_assert_env_params(home_temp_dir, args_left) assert args_left == []
def std_assert_env_params(home_temp_dir, args_left): if is_windows(): return assert_env_params( args_left, [ 'DOG_UID=1000', 'DOG_GID=1000', 'DOG_USER=dog_test_user', 'DOG_GROUP=nodoggroup', 'DOG_HOME=/home/dog_test_user', 'DOG_AS_ROOT=False', f'DOG_VERSION={ACTUAL_DOG_VERSION}', ], ) else: return assert_env_params( args_left, [ 'DOG_UID=1122', 'DOG_GID=5566', 'DOG_USER=dog_test_user', 'DOG_GROUP=test_group', f'DOG_HOME={home_temp_dir}', 'DOG_AS_ROOT=False', f'DOG_VERSION={ACTUAL_DOG_VERSION}', ], )
def mock_getuid(monkeypatch, tmp_path): uid = 1000 if is_windows() else 1122 if not is_windows(): monkeypatch.setattr(os, 'getuid', lambda: uid)
def get_workdir(pth: Path) -> str: if is_windows(): return win32_to_dog_unix(pth) else: return str(pth)
def std_assert_volume_params(tmp_path, args_left): if is_windows(): return assert_volume_params(args_left, [('/C', 'C:\\')]) else: mount_point = str(find_mount_point(tmp_path)) return assert_volume_params(args_left, [(mount_point, mount_point)])