Fail when accessing registry with invalid key
This commit is contained in:
parent
ff30b7474c
commit
2d4e04b2e5
@ -34,3 +34,15 @@ Feature: key/value registry
|
||||
"""
|
||||
When I successfully execute the recipe
|
||||
Then the output must contain "some_value"
|
||||
|
||||
Scenario: `get' keyword should trigger an error when given invalid key
|
||||
Given a recipe with:
|
||||
"""
|
||||
task :some_task do
|
||||
echo get :no_key
|
||||
echo 'after_fail'
|
||||
end
|
||||
"""
|
||||
When I execute the recipe
|
||||
Then the output must not contain "after_fail"
|
||||
And the output must match /\A\w+Error:\s+:no_key/
|
||||
|
@ -18,7 +18,9 @@ module Producer
|
||||
end
|
||||
|
||||
def [](key)
|
||||
@registry[key]
|
||||
@registry.fetch key
|
||||
rescue KeyError
|
||||
fail RegistryKeyError, key.inspect
|
||||
end
|
||||
alias get []
|
||||
|
||||
|
@ -4,5 +4,6 @@ module Producer
|
||||
RuntimeError = Class.new(RuntimeError)
|
||||
ConditionNotMetError = Class.new(Error)
|
||||
RemoteCommandExecutionError = Class.new(RuntimeError)
|
||||
RegistryKeyError = Class.new(RuntimeError)
|
||||
end
|
||||
end
|
||||
|
@ -107,6 +107,10 @@ module Producer::Core
|
||||
it 'returns the value indexed by given key from the registry' do
|
||||
expect(env[:some_key]).to eq :some_value
|
||||
end
|
||||
|
||||
it 'raises an error when given invalid key' do
|
||||
expect { env[:no_key] }.to raise_error RegistryKeyError
|
||||
end
|
||||
end
|
||||
|
||||
describe '#[]=' do
|
||||
|
Loading…
x
Reference in New Issue
Block a user