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 0.663 second using v1.01-cache-2.11-cpan-49f99fa48dc )