Source code for spack.test.environment

# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

import os
import pickle

import pytest

from spack.environment import Environment
from spack.environment.environment import (
    SpackEnvironmentViewError,
    _error_on_nonempty_view_dir,
)


[docs]def test_environment_pickle(tmpdir): env1 = Environment(str(tmpdir)) obj = pickle.dumps(env1) env2 = pickle.loads(obj) assert isinstance(env2, Environment)
[docs]def test_error_on_nonempty_view_dir(tmpdir): """Error when the target is not an empty dir""" with tmpdir.as_cwd(): os.mkdir("empty_dir") os.mkdir("nonempty_dir") with open(os.path.join("nonempty_dir", "file"), "wb"): pass os.symlink("empty_dir", "symlinked_empty_dir") os.symlink("does_not_exist", "broken_link") os.symlink("broken_link", "file") # This is OK. _error_on_nonempty_view_dir("empty_dir") # This is not OK. with pytest.raises(SpackEnvironmentViewError): _error_on_nonempty_view_dir("nonempty_dir") with pytest.raises(SpackEnvironmentViewError): _error_on_nonempty_view_dir("symlinked_empty_dir") with pytest.raises(SpackEnvironmentViewError): _error_on_nonempty_view_dir("broken_link") with pytest.raises(SpackEnvironmentViewError): _error_on_nonempty_view_dir("file")