Add common function to parse python dict
Add the common function to parse python dict representation to a puppet hash value, to replace the same implementation maintained in a few modules. Change-Id: I95040c07bb4ed0daee5a97e4e1108d6b24ed0ef6
This commit is contained in:
parent
e317e6a53e
commit
93d082e579
@ -159,4 +159,8 @@ class Puppet::Provider::Openstack < Puppet::Provider
|
||||
text = text.split("\n").drop_while { |line| line !~ /^\".*\"/ }.join("\n")
|
||||
return CSV.parse(text + "\n")
|
||||
end
|
||||
|
||||
def self.parse_python_dict(text)
|
||||
return JSON.parse(text.gsub(/'/, '"').gsub(/: False([,}])/,': false\1').gsub(/: True([,}])/,': true\1'))
|
||||
end
|
||||
end
|
||||
|
@ -210,4 +210,23 @@ name="test"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#parse_python_dict' do
|
||||
it 'should return a hash when provided with a python dict' do
|
||||
s = "{'key': 'value', 'key2': 'value2'}"
|
||||
expect(Puppet::Provider::Openstack.parse_python_dict(s)).to eq({'key'=>'value', 'key2'=>'value2'})
|
||||
|
||||
s = "{'key': True, 'key2': 'value2'}"
|
||||
expect(Puppet::Provider::Openstack.parse_python_dict(s)).to eq({'key'=>true, 'key2'=>'value2'})
|
||||
|
||||
s = "{'key': 'value', 'key2': True}"
|
||||
expect(Puppet::Provider::Openstack.parse_python_dict(s)).to eq({'key'=>'value', 'key2'=>true})
|
||||
|
||||
s = "{'key': False, 'key2': 'value2'}"
|
||||
expect(Puppet::Provider::Openstack.parse_python_dict(s)).to eq({'key'=>false, 'key2'=>'value2'})
|
||||
|
||||
s = "{'key': 'value', 'key2': False}"
|
||||
expect(Puppet::Provider::Openstack.parse_python_dict(s)).to eq({'key'=>'value', 'key2'=>false})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user