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