Beispiel #1
0
    def test_source_files(self):
        datadir = join_path(spack_root, 'lib', 'spack', 'spack', 'test',
                            'data')
        files = [
            join_path(datadir, 'sourceme_first.sh'),
            join_path(datadir, 'sourceme_second.sh')
        ]
        env = EnvironmentModifications.from_sourcing_files(*files)
        modifications = env.group_by_name()

        self.assertEqual(len(modifications), 4)
        # Set new variables
        self.assertEqual(len(modifications['NEW_VAR']), 1)
        self.assertTrue(isinstance(modifications['NEW_VAR'][0], SetEnv))
        self.assertEqual(modifications['NEW_VAR'][0].value, 'new')
        # Unset variables
        self.assertEqual(len(modifications['EMPTY_PATH_LIST']), 1)
        self.assertTrue(
            isinstance(modifications['EMPTY_PATH_LIST'][0], UnsetEnv))
        # Modified variables
        self.assertEqual(len(modifications['UNSET_ME']), 1)
        self.assertTrue(isinstance(modifications['UNSET_ME'][0], SetEnv))
        self.assertEqual(modifications['UNSET_ME'][0].value, 'overridden')

        self.assertEqual(len(modifications['PATH_LIST']), 3)
        self.assertTrue(isinstance(modifications['PATH_LIST'][0], RemovePath))
        self.assertEqual(modifications['PATH_LIST'][0].value, '/path/third')
        self.assertTrue(isinstance(modifications['PATH_LIST'][1], AppendPath))
        self.assertEqual(modifications['PATH_LIST'][1].value, '/path/fourth')
        self.assertTrue(isinstance(modifications['PATH_LIST'][2], PrependPath))
        self.assertEqual(modifications['PATH_LIST'][2].value, '/path/first')
Beispiel #2
0
    def test_source_files(self):
        datadir = join_path(spack_root, 'lib', 'spack',
                            'spack', 'test', 'data')
        files = [
            join_path(datadir, 'sourceme_first.sh'),
            join_path(datadir, 'sourceme_second.sh'),
            join_path(datadir, 'sourceme_parameters.sh intel64')
        ]
        env = EnvironmentModifications.from_sourcing_files(*files)
        modifications = env.group_by_name()

        # This is sensitive to the user's environment; can include
        # spurious entries for things like PS1
        #
        # TODO: figure out how to make a bit more robust.
        self.assertTrue(len(modifications) >= 4)

        # Set new variables
        self.assertEqual(len(modifications['NEW_VAR']), 1)
        self.assertTrue(isinstance(modifications['NEW_VAR'][0], SetEnv))
        self.assertEqual(modifications['NEW_VAR'][0].value, 'new')

        self.assertEqual(len(modifications['FOO']), 1)
        self.assertTrue(isinstance(modifications['FOO'][0], SetEnv))
        self.assertEqual(modifications['FOO'][0].value, 'intel64')

        # Unset variables
        self.assertEqual(len(modifications['EMPTY_PATH_LIST']), 1)
        self.assertTrue(isinstance(
            modifications['EMPTY_PATH_LIST'][0], UnsetEnv))
        # Modified variables
        self.assertEqual(len(modifications['UNSET_ME']), 1)
        self.assertTrue(isinstance(modifications['UNSET_ME'][0], SetEnv))
        self.assertEqual(modifications['UNSET_ME'][0].value, 'overridden')

        self.assertEqual(len(modifications['PATH_LIST']), 3)
        self.assertTrue(
            isinstance(modifications['PATH_LIST'][0], RemovePath)
        )
        self.assertEqual(modifications['PATH_LIST'][0].value, '/path/third')
        self.assertTrue(
            isinstance(modifications['PATH_LIST'][1], AppendPath)
        )
        self.assertEqual(modifications['PATH_LIST'][1].value, '/path/fourth')
        self.assertTrue(
            isinstance(modifications['PATH_LIST'][2], PrependPath)
        )
        self.assertEqual(modifications['PATH_LIST'][2].value, '/path/first')
Beispiel #3
0
    def test_source_files(self):
        datadir = join_path(spack_root, 'lib', 'spack',
                            'spack', 'test', 'data')
        files = [
            join_path(datadir, 'sourceme_first.sh'),
            join_path(datadir, 'sourceme_second.sh'),
            join_path(datadir, 'sourceme_parameters.sh intel64')
        ]
        env = EnvironmentModifications.from_sourcing_files(*files)
        modifications = env.group_by_name()

        # This is sensitive to the user's environment; can include
        # spurious entries for things like PS1
        #
        # TODO: figure out how to make a bit more robust.
        self.assertTrue(len(modifications) >= 4)

        # Set new variables
        self.assertEqual(len(modifications['NEW_VAR']), 1)
        self.assertTrue(isinstance(modifications['NEW_VAR'][0], SetEnv))
        self.assertEqual(modifications['NEW_VAR'][0].value, 'new')

        self.assertEqual(len(modifications['FOO']), 1)
        self.assertTrue(isinstance(modifications['FOO'][0], SetEnv))
        self.assertEqual(modifications['FOO'][0].value, 'intel64')

        # Unset variables
        self.assertEqual(len(modifications['EMPTY_PATH_LIST']), 1)
        self.assertTrue(isinstance(
            modifications['EMPTY_PATH_LIST'][0], UnsetEnv))
        # Modified variables
        self.assertEqual(len(modifications['UNSET_ME']), 1)
        self.assertTrue(isinstance(modifications['UNSET_ME'][0], SetEnv))
        self.assertEqual(modifications['UNSET_ME'][0].value, 'overridden')

        self.assertEqual(len(modifications['PATH_LIST']), 3)
        self.assertTrue(
            isinstance(modifications['PATH_LIST'][0], RemovePath)
        )
        self.assertEqual(modifications['PATH_LIST'][0].value, '/path/third')
        self.assertTrue(
            isinstance(modifications['PATH_LIST'][1], AppendPath)
        )
        self.assertEqual(modifications['PATH_LIST'][1].value, '/path/fourth')
        self.assertTrue(
            isinstance(modifications['PATH_LIST'][2], PrependPath)
        )
        self.assertEqual(modifications['PATH_LIST'][2].value, '/path/first')
Beispiel #4
0
def test_source_files(files_to_be_sourced):
    """Tests the construction of a list of environment modifications that are
    the result of sourcing a file.
    """
    env = EnvironmentModifications.from_sourcing_files(*files_to_be_sourced)
    modifications = env.group_by_name()

    # This is sensitive to the user's environment; can include
    # spurious entries for things like PS1
    #
    # TODO: figure out how to make a bit more robust.
    assert len(modifications) >= 5

    # Set new variables
    assert len(modifications['NEW_VAR']) == 1
    assert isinstance(modifications['NEW_VAR'][0], SetEnv)
    assert modifications['NEW_VAR'][0].value == 'new'

    assert len(modifications['FOO']) == 1
    assert isinstance(modifications['FOO'][0], SetEnv)
    assert modifications['FOO'][0].value == 'intel64'

    # Unset variables
    assert len(modifications['EMPTY_PATH_LIST']) == 1
    assert isinstance(modifications['EMPTY_PATH_LIST'][0], UnsetEnv)

    # Modified variables
    assert len(modifications['UNSET_ME']) == 1
    assert isinstance(modifications['UNSET_ME'][0], SetEnv)
    assert modifications['UNSET_ME'][0].value == 'overridden'

    assert len(modifications['PATH_LIST']) == 3
    assert isinstance(modifications['PATH_LIST'][0], RemovePath)
    assert modifications['PATH_LIST'][0].value == '/path/third'
    assert isinstance(modifications['PATH_LIST'][1], AppendPath)
    assert modifications['PATH_LIST'][1].value == '/path/fourth'
    assert isinstance(modifications['PATH_LIST'][2], PrependPath)
    assert modifications['PATH_LIST'][2].value == '/path/first'
Beispiel #5
0
def test_source_files(files_to_be_sourced):
    """Tests the construction of a list of environment modifications that are
    the result of sourcing a file.
    """
    env = EnvironmentModifications.from_sourcing_files(*files_to_be_sourced)
    modifications = env.group_by_name()

    # This is sensitive to the user's environment; can include
    # spurious entries for things like PS1
    #
    # TODO: figure out how to make a bit more robust.
    assert len(modifications) >= 5

    # Set new variables
    assert len(modifications['NEW_VAR']) == 1
    assert isinstance(modifications['NEW_VAR'][0], SetEnv)
    assert modifications['NEW_VAR'][0].value == 'new'

    assert len(modifications['FOO']) == 1
    assert isinstance(modifications['FOO'][0], SetEnv)
    assert modifications['FOO'][0].value == 'intel64'

    # Unset variables
    assert len(modifications['EMPTY_PATH_LIST']) == 1
    assert isinstance(modifications['EMPTY_PATH_LIST'][0], UnsetEnv)

    # Modified variables
    assert len(modifications['UNSET_ME']) == 1
    assert isinstance(modifications['UNSET_ME'][0], SetEnv)
    assert modifications['UNSET_ME'][0].value == 'overridden'

    assert len(modifications['PATH_LIST']) == 3
    assert isinstance(modifications['PATH_LIST'][0], RemovePath)
    assert modifications['PATH_LIST'][0].value == '/path/third'
    assert isinstance(modifications['PATH_LIST'][1], AppendPath)
    assert modifications['PATH_LIST'][1].value == '/path/fourth'
    assert isinstance(modifications['PATH_LIST'][2], PrependPath)
    assert modifications['PATH_LIST'][2].value == '/path/first'