Commit 724c6872 authored by Léo-Paul Géneau's avatar Léo-Paul Géneau 👾

Fix url and version mutually exclusive options

Check url and version options are not both in options
parent 80d56118
......@@ -39,7 +39,7 @@ url
version
rubygems version, if not specified, recipe will try to find most recent
version.
version. Mutually exclusive with url option.
ruby-executable
A path to a Ruby executable. Gems will be installed using this executable.
......
......@@ -46,6 +46,10 @@ class Recipe(object):
"Configuration error, 'gems' option is missing")
self.url = options.get('url')
if(self.url and options.get('version')):
raise zc.buildout.UserError(
"Configuration error, 'url' and 'version' options are mutually exclusive")
# Allow to define specific ruby executable. If not, take just 'ruby'
self.ruby_executable = options.get('ruby-executable', 'ruby')
......
......@@ -259,6 +259,20 @@ class RubyGemsDefaultTestCase(RubyGemsTestCase):
recipe = rubygems.Recipe(buildout, name, options)
recipe.install()
@fixture({'recipe': {
'gems': 'sass',
'url': 'https://rubygems.org/rubygems/rubygems-%s.zip'
% RUBYGEMS_DEFAULT_VERSION,
'version': RUBYGEMS_DEFAULT_VERSION,
}})
def test_version_and_url(self, path, patches, buildout, name, options, version):
self.assertRaisesRegexp(
zc.buildout.UserError,
"Configuration error, 'url' and 'version' options are mutually exclusive",
rubygems.Recipe, buildout, name, options
)
class deployment_fixture(fixture):
def mocked_check_output_for_dependencies(self, cmd, **kwargs):
if len(cmd) > 3 and cmd[2] == 'dependency':
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment