nova_spec.rb 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. require 'puppet'
  2. require 'puppet/provider/nova_security_rule/nova'
  3. require 'tempfile'
  4. provider_class = Puppet::Type.type(:nova_security_rule).provider(:nova)
  5. describe provider_class do
  6. let :secrule_attrs do
  7. {
  8. :name => "scr0",
  9. :ip_protocol => "tcp",
  10. :from_port => '22',
  11. :to_port => '23',
  12. :ip_range => '0.0.0.0/0',
  13. :security_group => 'scg0'
  14. }
  15. end
  16. let :resource do
  17. Puppet::Type::Nova_security_rule.new(secrule_attrs)
  18. end
  19. let :provider do
  20. provider_class.new(resource)
  21. end
  22. shared_examples "nova_security_rule" do
  23. describe "#create" do
  24. it 'should create security rule' do
  25. provider.expects(:auth_nova).with('secgroup-add-rule', ['scg0', 'tcp', '22', '23', '0.0.0.0/0']).returns('+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n| tcp | 22 | 23 | 0.0.0.0/0 | |\n+-------------+-----------+---------+-----------+--------------+')
  26. provider.create
  27. end
  28. end
  29. describe "#destroy" do
  30. it 'should destroy security rule' do
  31. provider.expects(:auth_nova).with('secgroup-delete-rule', ['scg0', 'tcp', '22', '23', '0.0.0.0/0']).returns('+-------------+-----------+---------+-----------+--------------+\n| IP Protocol | From Port | To Port | IP Range | Source Group |\n+-------------+-----------+---------+-----------+--------------+\n| tcp | 22 | 23 | 0.0.0.0/0 | |\n+-------------+-----------+---------+-----------+--------------+')
  32. provider.destroy
  33. end
  34. end
  35. end
  36. it_behaves_like('nova_security_rule')
  37. end