Skip to content

Commit

Permalink
Use proper fallback for low-level services
Browse files Browse the repository at this point in the history
  • Loading branch information
omus committed Sep 24, 2021
1 parent bfcac5a commit dd90a1c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
10 changes: 5 additions & 5 deletions src/AWS.jl
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export sign!, sign_aws2!, sign_aws4!
export JSONService, RestJSONService, RestXMLService, QueryService

const DEFAULT_REGION = "us-east-1"
const DEFAULT_SERVICE_FEATURES = []
const DEFAULT_SERVICE_FEATURES = NamedTuple()

include(joinpath("utilities", "utilities.jl"))

Expand Down Expand Up @@ -212,7 +212,7 @@ function (service::RestXMLService)(
request_uri::String,
args::AbstractDict{String,<:Any}=Dict{String,Any}();
aws_config::AbstractAWSConfig=global_aws_config(),
features::NamedTuple=NamedTuple(),
features::NamedTuple=DEFAULT_SERVICE_FEATURES,
)
return_headers = _pop!(args, "return_headers", false)

Expand Down Expand Up @@ -265,7 +265,7 @@ function (service::QueryService)(
operation::String,
args::AbstractDict{String,<:Any}=Dict{String,Any}();
aws_config::AbstractAWSConfig=global_aws_config(),
features::NamedTuple=NamedTuple(),
features::NamedTuple=DEFAULT_SERVICE_FEATURES,
)
POST_RESOURCE = "/"
return_headers = _pop!(args, "return_headers", false)
Expand Down Expand Up @@ -308,7 +308,7 @@ function (service::JSONService)(
operation::String,
args::AbstractDict{String,<:Any}=Dict{String,Any}();
aws_config::AbstractAWSConfig=global_aws_config(),
features::NamedTuple=NamedTuple(),
features::NamedTuple=DEFAULT_SERVICE_FEATURES,
)
POST_RESOURCE = "/"
return_headers = _pop!(args, "return_headers", false)
Expand Down Expand Up @@ -351,7 +351,7 @@ function (service::RestJSONService)(
request_uri::String,
args::AbstractDict{String,<:Any}=Dict{String,String}();
aws_config::AbstractAWSConfig=global_aws_config(),
features::NamedTuple=NamedTuple(),
features::NamedTuple=DEFAULT_SERVICE_FEATURES,
)
return_headers = _pop!(args, "return_headers", false)

Expand Down
2 changes: 1 addition & 1 deletion src/utilities/utilities.jl
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ end
# the keys are defined within `defaults`. If any key is not defined by the user then the
# value from `defaults` will be used. Returns a `NamedTuple` expression.
function _process_service_features(args, defaults)
feature_dict = Dict{Symbol,Any}(defaults)
feature_dict = Dict{Symbol,Any}(pairs(defaults))
for ex in args
if ex isa Expr && ex.head === :(=)
k, v = ex.args[1:2]
Expand Down
10 changes: 5 additions & 5 deletions test/utilities.jl
Original file line number Diff line number Diff line change
Expand Up @@ -65,31 +65,31 @@ end
@testset "_process_service_features" begin
@testset "use default" begin
user_feats = []
default_feats = [:a => false]
default_feats = (; a=false)
@test AWS._process_service_features(user_feats, default_feats) == :((; a=false))
end

@testset "user set" begin
user_feats = [:(a = true)]
default_feats = [:a => false]
default_feats = (; a=false)
@test AWS._process_service_features(user_feats, default_feats) == :((; a=true))
end

@testset "unknown feature" begin
user_feats = [:(b = true)]
default_feats = [:a => false]
default_feats = (; a=false)
@test_throws ArgumentError AWS._process_service_features(user_feats, default_feats)
end

@testset "unknown expression" begin
user_feats = [:(true)]
default_feats = [:a => false]
default_feats = (; a=false)
@test_throws ArgumentError AWS._process_service_features(user_feats, default_feats)
end

@testset "no defaults" begin
user_feats = []
default_feats = []
default_feats = NamedTuple()
@test AWS._process_service_features(user_feats, default_feats) == :(NamedTuple())
end
end

0 comments on commit dd90a1c

Please sign in to comment.