AWS-CLI-Config
view release on metacpan or search on metacpan
lib/AWS/CLI/Config.pm view on Meta::CPAN
$profile = $1 if $line =~ /^\[(?:profile )?([\w]+)\]/;
my ($indent, $key, $value) = $line =~ /^(\s*)([\w]+)\s*=\s*(.*)/;
next if !defined $key or $key eq q{};
if (length $indent) {
$nested->{$key} = $value;
}
else {
# Reset nested hash
$nested = {} if keys %{$nested};
$hash->{$profile}{$key} = ($key and $value) ? $value : $nested;
}
}
return $hash;
}
PROFILE: {
package AWS::CLI::Config::Profile;
t/01__base_dir.t view on Meta::CPAN
subtest 'Other OS' => sub {
local $^O = 'Other';
local $ENV{HOME} = '/home/foo';
is(AWS::CLI::Config::_base_dir, $ENV{HOME}, 'same as HOME');
};
done_testing;
__END__
# vi: set ts=4 sw=4 sts=0 et ft=perl fenc=utf-8 ff=unix :
t/02_access_key_id.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use AWS::CLI::Config;
subtest 'Environment Variable' => sub {
local $ENV{AWS_ACCESS_KEY_ID} = '__dummy__';
is(AWS::CLI::Config::access_key_id, $ENV{AWS_ACCESS_KEY_ID}, 'set by env');
};
subtest 'From credentials file' => sub {
my $access_key_id = q[It's me.];
undef local $ENV{AWS_ACCESS_KEY_ID};
no strict 'refs';
no warnings 'redefine';
*AWS::CLI::Config::credentials = sub {
return AWS::CLI::Config::Profile->new({
aws_access_key_id => $access_key_id,
});
};
is(AWS::CLI::Config::access_key_id, $access_key_id, 'set by credentials');
};
subtest 'From config file' => sub {
my $access_key_id = q[It's me.];
undef local $ENV{AWS_ACCESS_KEY_ID};
no strict 'refs';
no warnings 'redefine';
*AWS::CLI::Config::credentials = sub {
return undef;
};
*AWS::CLI::Config::config = sub {
return AWS::CLI::Config::Profile->new({
aws_access_key_id => $access_key_id,
});
};
is(AWS::CLI::Config::access_key_id, $access_key_id, 'set by config');
};
done_testing;
__END__
# vi: set ts=4 sw=4 sts=0 et ft=perl fenc=utf-8 ff=unix :
t/03_output.t view on Meta::CPAN
subtest 'From credentials file' => sub {
my $output = '__format__';
no strict 'refs';
no warnings 'redefine';
*AWS::CLI::Config::credentials = sub {
return AWS::CLI::Config::Profile->new({
output => $output,
});
};
is(AWS::CLI::Config::output, $output, 'set by credentials');
};
subtest 'From config file' => sub {
my $output = '__format__';
no strict 'refs';
no warnings 'redefine';
*AWS::CLI::Config::credentials = sub {
return undef;
};
*AWS::CLI::Config::config = sub {
return AWS::CLI::Config::Profile->new({
output => $output,
});
};
is(AWS::CLI::Config::output, $output, 'set by config');
};
done_testing;
__END__
# vi: set ts=4 sw=4 sts=0 et ft=perl fenc=utf-8 ff=unix :
t/04_config.t view on Meta::CPAN
};
subtest 'Undefined profile' => sub {
my $config = AWS::CLI::Config::config('no-such-profile');
ok(!$config, 'undefined');
};
done_testing;
__END__
# vi: set ts=4 sw=4 sts=0 et ft=perl fenc=utf-8 ff=unix :
( run in 1.806 second using v1.01-cache-2.11-cpan-49f99fa48dc )