def check_file(dirname):
        filename = os.path.join(dirname, DEFAULT_PROJECT_LOCK_FILENAME)
        assert os.path.exists(filename)
        lock_file = ProjectLockFile.load_for_directory(dirname)

        all_names = ['foo', 'bar']

        lock_set = CondaLockSet(
            {'all': ['something=3.0=0']},
            platforms=['linux-32', 'linux-64', 'osx-64', 'win-32', 'win-64'])

        # so the point of this test is that we need to create env_specs
        # dict and the 'foo' entry as a side effect of setting 'bar',
        # in order to mark 'foo' disabled.
        lock_file._set_lock_set('bar', lock_set, all_names=all_names)

        # "foo" should have been DISABLED since we had to
        # enable the global flag in order to enable "bar"
        foo_lock_set = _get_lock_set(lock_file, 'foo')
        assert lock_file.get_value(['env_specs', 'foo', 'locked']) is False
        assert foo_lock_set.disabled

        bar_lock_set = _get_lock_set(lock_file, 'bar')
        assert bar_lock_set.enabled
        assert ('something=3.0=0',
                ) == bar_lock_set.package_specs_for_current_platform

        # be sure we can save
        lock_file.save()

        reloaded = ProjectLockFile.load_for_directory(dirname)

        assert ('something=3.0=0', ) == _get_lock_set(
            reloaded, 'bar').package_specs_for_current_platform
        assert _get_lock_set(reloaded, 'foo').disabled
    def check_file(dirname):
        filename = os.path.join(dirname, DEFAULT_PROJECT_LOCK_FILENAME)
        assert os.path.exists(filename)
        lock_file = ProjectLockFile.load_for_directory(dirname)

        # we have the global enabled flag off; individual
        # env spec settings override that; foo has no setting.
        foo_lock_set = _get_lock_set(lock_file, 'foo')
        assert lock_file.get_value(['env_specs', 'foo', 'locked'],
                                   None) is None
        assert foo_lock_set.disabled
        bar_lock_set = _get_lock_set(lock_file, 'bar')
        assert bar_lock_set.disabled

        all_names = ['foo', 'bar']

        lock_set = CondaLockSet(
            {'all': ['something=3.0=0']},
            platforms=['linux-32', 'linux-64', 'osx-64', 'win-32', 'win-64'])
        lock_set.env_spec_hash = "hash-hash-hash"

        lock_file._set_lock_set('bar', lock_set, all_names=all_names)

        # "foo" should have been DISABLED since we had to
        # enable the global flag in order to enable "bar"
        foo_lock_set = _get_lock_set(lock_file, 'foo')
        assert lock_file.get_value(['env_specs', 'foo', 'locked']) is False
        assert foo_lock_set.disabled
        assert foo_lock_set.env_spec_hash is None

        bar_lock_set = _get_lock_set(lock_file, 'bar')
        assert bar_lock_set.enabled
        assert ('something=3.0=0',
                ) == bar_lock_set.package_specs_for_current_platform
        assert "hash-hash-hash" == bar_lock_set.env_spec_hash

        # and now we should enable "foo" when we set it to something
        lock_file._set_lock_set('foo', lock_set, all_names=all_names)
        foo_lock_set = _get_lock_set(lock_file, 'foo')
        assert foo_lock_set.enabled
        assert ('something=3.0=0',
                ) == foo_lock_set.package_specs_for_current_platform

        # be sure we can save
        lock_file.save()

        reloaded = ProjectLockFile.load_for_directory(dirname)

        assert ('something=3.0=0', ) == _get_lock_set(
            reloaded, 'bar').package_specs_for_current_platform
        assert ('something=3.0=0', ) == _get_lock_set(
            reloaded, 'foo').package_specs_for_current_platform

        # Check _set_lock_set_hash
        lock_file._set_lock_set_hash('bar', 'hash2.0')
        lock_file.save()

        reloaded = ProjectLockFile.load_for_directory(dirname)
        bar_lock_set = _get_lock_set(reloaded, 'bar')
        assert bar_lock_set.env_spec_hash == 'hash2.0'
Esempio n. 3
0
 def check_file(dirname):
     filename = os.path.join(dirname, relative_name)
     assert os.path.exists(filename)
     subdir = os.path.join(dirname, 'subdir')
     os.makedirs(subdir)
     lock_file = ProjectLockFile.load_for_directory(subdir)
     assert lock_file.get_value(['env_specs', 'foo']) is not None
     assert lock_file.get_value(['locking_enabled']) is True
 def check_file(dirname):
     filename = os.path.join(dirname, DEFAULT_PROJECT_LOCK_FILENAME)
     assert os.path.exists(filename)
     lock_file = ProjectLockFile.load_for_directory(dirname)
     foo_lock_set = _get_lock_set(lock_file, 'foo')
     assert foo_lock_set.enabled
     assert (
         'foo=1.0=1', ) == foo_lock_set.package_specs_for_current_platform
     bar_lock_set = _get_lock_set(lock_file, 'bar')
     assert bar_lock_set.disabled
    def create_file(dirname):
        filename = os.path.join(dirname, DEFAULT_PROJECT_LOCK_FILENAME)
        assert not os.path.exists(filename)
        lock_file = ProjectLockFile.load_for_directory(dirname)
        assert lock_file is not None
        assert not os.path.exists(filename)

        assert _get_lock_set(lock_file, 'foo').disabled
        assert not _get_locking_enabled(lock_file, 'foo')

        lock_file.save()
        # should not have saved an unmodified (default) file)
        assert not os.path.exists(filename)

        # make a change, which should cause us to save
        lock_file.set_value(['something'], 42)

        lock_file.save()
        assert os.path.exists(filename)
        with codecs.open(filename, 'r', 'utf-8') as file:
            contents = file.read()
            expected = expected_default_file + "something: 42\n"
            assert_identical_except_blank_lines(expected, contents)