# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the 'License'). You # may not use this file except in compliance with the License. A copy of # the License is located at # # http://aws.amazon.com/apache2.0/ # # or in the 'license' file accompanying this file. This file is # distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. from awscli.testutils import BaseAWSCommandParamsTest class TestGetLoginCommand(BaseAWSCommandParamsTest): def setUp(self): super(TestGetLoginCommand, self).setUp() self.parsed_responses = [ { 'authorizationData': [ { "authorizationToken": "Zm9vOmJhcg==", "proxyEndpoint": "1235.ecr.us-east-1.io", "expiresAt": "2015-10-16T00:00:00Z" } ] }, ] def test_prints_get_login_command(self): stdout = self.run_cmd("ecr get-login")[0] self.assertIn( 'docker login -u foo -p bar -e none 1235.ecr.us-east-1.io', stdout) self.assertEqual(1, len(self.operations_called)) self.assertNotIn('registryIds', self.operations_called[0][1]) def test_prints_login_command_with_no_email(self): stdout = self.run_cmd("ecr get-login --no-include-email")[0] self.assertNotIn('-e none', stdout) def test_prints_login_with_email_flag(self): stdout = self.run_cmd("ecr get-login --include-email")[0] self.assertIn('-e none', stdout) def test_prints_multiple_get_login_commands(self): self.parsed_responses = [ { 'authorizationData': [ { "authorizationToken": "Zm9vOmJhcg==", "proxyEndpoint": "1235.ecr.us-east-1.io", "expiresAt": "2015-10-16T00:00:00Z" }, { "authorizationToken": "YWJjOjEyMw==", "proxyEndpoint": "4567.ecr.us-east-1.io", "expiresAt": "2015-10-16T00:00:00Z" } ] }, ] stdout = self.run_cmd("ecr get-login --registry-ids 1234 5678")[0] self.assertIn( 'docker login -u foo -p bar -e none 1235.ecr.us-east-1.io\n', stdout) self.assertIn( 'docker login -u abc -p 123 -e none 4567.ecr.us-east-1.io\n', stdout) self.assertEqual(1, len(self.operations_called)) self.assertEqual([u'1234', u'5678'], self.operations_called[0][1]['registryIds'])