1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
require 'spec_helper'
require 'puppet/network/http'
require 'puppet/network/http/api/indirected_routes'
require 'puppet/indirector_testing'
module PuppetSpec::Network
def not_found_error
Puppet::Network::HTTP::Error::HTTPNotFoundError
end
def not_acceptable_error
Puppet::Network::HTTP::Error::HTTPNotAcceptableError
end
def bad_request_error
Puppet::Network::HTTP::Error::HTTPBadRequestError
end
def not_authorized_error
Puppet::Network::HTTP::Error::HTTPNotAuthorizedError
end
def method_not_allowed_error
Puppet::Network::HTTP::Error::HTTPMethodNotAllowedError
end
def unsupported_media_type_error
Puppet::Network::HTTP::Error::HTTPUnsupportedMediaTypeError
end
def params
{ :environment => "production" }
end
def acceptable_content_types
types = ['application/json']
types << 'application/x-msgpack' if Puppet.features.msgpack?
types << 'text/pson' if Puppet.features.pson?
types
end
def acceptable_content_types_string
acceptable_content_types.join(', ')
end
def acceptable_catalog_content_types
types = %w[application/vnd.puppet.rich+json application/json]
types.concat(%w[application/vnd.puppet.rich+msgpack application/x-msgpack]) if Puppet.features.msgpack?
types << 'text/pson' if Puppet.features.pson?
types
end
def master_url_prefix
"#{Puppet::Network::HTTP::MASTER_URL_PREFIX}/v3"
end
def ca_url_prefix
"#{Puppet::Network::HTTP::CA_URL_PREFIX}/v1"
end
def a_request_that_heads(data, request = {}, params = params())
Puppet::Network::HTTP::Request.from_hash({
:headers => {
'accept' => request[:accept_header],
'content-type' => "application/json"
},
:method => "HEAD",
:path => "#{master_url_prefix}/#{data.class.indirection.name}/#{data.value}",
:params => params,
})
end
def a_request_that_submits(data, request = {}, params = params())
Puppet::Network::HTTP::Request.from_hash({
:headers => {
'accept' => request[:accept_header],
'content-type' => request[:content_type_header] || "application/json"
},
:method => "PUT",
:path => "#{master_url_prefix}/#{data.class.indirection.name}/#{data.value}",
:params => params,
:body => request[:body].nil? ? data.render("json") : request[:body]
})
end
def a_request_that_destroys(data, request = {}, params = params())
Puppet::Network::HTTP::Request.from_hash({
:headers => {
'accept' => request[:accept_header],
'content-type' => "application/json"
},
:method => "DELETE",
:path => "#{master_url_prefix}/#{data.class.indirection.name}/#{data.value}",
:params => params,
:body => ''
})
end
def a_request_that_finds(data, request = {}, params = params())
Puppet::Network::HTTP::Request.from_hash({
:headers => {
'accept' => request[:accept_header],
'content-type' => "application/json"
},
:method => "GET",
:path => "#{master_url_prefix}/#{data.class.indirection.name}/#{data.value}",
:params => params,
:body => ''
})
end
def a_request_that_searches(data, request = {}, params = params())
Puppet::Network::HTTP::Request.from_hash({
:headers => {
'accept' => request[:accept_header],
'content-type' => "application/json"
},
:method => "GET",
:path => "#{master_url_prefix}/#{data.class.indirection.name}s/#{data.name}",
:params => params,
:body => ''
})
end
end
|