def test_creates_file_on_save(self): self.assertFalse(os.path.exists(self.env_file), msg='sanity check') e = env.Environment(filename=self.env_file, name='simple') e.save() self.assertTrue(os.path.exists(self.env_file))
def _test_saves_yaml_representation_of_file(self): e = env.Environment(filename=self.env_file, name='simple') e.save() with open(self.env_file, "rb") as fp: actual = fp.read() self.assert_(len(actual) > 0, msg='sanity check') self.assertEqual(e.to_yaml(), actual)
def test_other_tips_of_dependencies_are_supported(self): e = env.Environment( dependencies=['nltk', {'pip': ['foo', 'bar']}] ) expected = OrderedDict([ ('conda', ['nltk', 'pip']), ('pip', ['foo', 'bar']) ]) self.assertEqual(e.dependencies, expected)
def test_to_dict_returns_dictionary_of_data(self): random_name = 'random{}'.format(random.randint(100, 200)) e = env.Environment(name=random_name, channels=['javascript'], dependencies=['nodejs']) expected = { 'name': random_name, 'channels': ['javascript'], 'dependencies': ['nodejs'] } self.assertEqual(e.to_dict(), expected)
def test_to_yaml_returns_proper_yaml(self): random_name = 'random{}'.format(random.randint(100, 200)) e = env.Environment(name=random_name, channels=['javascript'], dependencies=['nodejs']) expected = '\n'.join([ "name: %s" % random_name, "channels:", " - javascript", "dependencies:", " - nodejs", "" ]) actual = e.to_yaml() self.assertEqual(expected, actual)
def test_to_yaml_returns_yaml_parseable_string(self): random_name = 'random{}'.format(random.randint(100, 200)) e = env.Environment(name=random_name, channels=['javascript'], dependencies=['nodejs']) expected = { 'name': random_name, 'channels': ['javascript'], 'dependencies': ['nodejs'] } actual = yaml_round_trip_load(StringIO(e.to_yaml())) self.assertEqual(expected, actual)
def test_to_yaml_takes_stream(self): random_name = 'random{}'.format(random.randint(100, 200)) e = env.Environment(name=random_name, channels=['javascript'], dependencies=['nodejs']) s = FakeStream() e.to_yaml(stream=s) expected = "\n".join([ 'name: %s' % random_name, 'channels:', ' - javascript', 'dependencies:', ' - nodejs', '', ]) assert expected == s.output
def test_to_dict_returns_just_name_if_only_thing_present(self): e = env.Environment(name='simple') expected = {'name': 'simple'} self.assertEqual(e.to_dict(), expected)
def test_has_filename_if_provided(self): r = random.randint(100, 200) random_filename = '/path/to/random/environment-{}.yml'.format(r) e = env.Environment(filename=random_filename) self.assertEqual(e.filename, random_filename)
def test_remove_channels(self): e = env.Environment(channels=['channel']) e.remove_channels() self.assertEqual(e.channels, [])
def test_add_channels(self): e = env.Environment() e.add_channels(['dup', 'dup', 'unique']) self.assertEqual(e.channels, ['dup', 'unique'])
def test_channels_default_to_empty_list(self): e = env.Environment() self.assertIsInstance(e.channels, list) self.assertEqual(e.channels, [])
def test_args_are_wildcarded(self): e = env.Environment(dependencies=['python=2.7']) expected = OrderedDict([('conda', ['python=2.7'])]) self.assertEqual(e.dependencies, expected)
def test_builds_spec_from_line_raw_dependency(self): # TODO Refactor this inside conda to not be a raw string e = env.Environment(dependencies=['nltk=3.0.0=np18py27_0']) expected = OrderedDict([('conda', ['nltk==3.0.0=np18py27_0'])]) self.assertEqual(e.dependencies, expected)
def test_dependencies_are_empty_by_default(self): e = env.Environment() self.assertEqual(0, len(e.dependencies))
def test_has_name_if_provided(self): random_name = 'random-{}'.format(random.randint(100, 200)) e = env.Environment(name=random_name) self.assertEqual(e.name, random_name)
def test_has_empty_filename_by_default(self): e = env.Environment() self.assertEqual(e.filename, None)
def test_channels_are_provided_by_kwarg(self): random_channels = (random.randint(100, 200), random) e = env.Environment(channels=random_channels) self.assertEqual(e.channels, random_channels)