Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aws
GitHub Repository: aws/aws-cli
Path: blob/develop/tests/integration/customizations/test_codecommit.py
1567 views
1
# Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License"). You
4
# may not use this file except in compliance with the License. A copy of
5
# the License is located at
6
#
7
# http://aws.amazon.com/apache2.0/
8
#
9
# or in the "license" file accompanying this file. This file is
10
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
# ANY KIND, either express or implied. See the License for the specific
12
# language governing permissions and limitations under the License.
13
14
import awscli
15
import os
16
17
from datetime import datetime
18
19
import awscli.compat
20
from awscli.compat import StringIO
21
from botocore.session import Session
22
from botocore.credentials import Credentials
23
from awscli.customizations.codecommit import CodeCommitGetCommand
24
from awscli.testutils import mock, unittest, StringIOWithFileNo
25
from botocore.awsrequest import AWSRequest
26
from awscli.clidriver import create_clidriver
27
28
29
class TestCodeCommitCredentialHelper(unittest.TestCase):
30
31
PROTOCOL_HOST_PATH = ('protocol=https\n'
32
'host=git-codecommit.us-east-1.amazonaws.com\n'
33
'path=/v1/repos/myrepo')
34
35
FIPS_PROTOCOL_HOST_PATH = ('protocol=https\n'
36
'host=git-codecommit-fips.us-east-1.amazonaws.com\n'
37
'path=/v1/repos/myrepo')
38
39
VPC_PROTOCOL_HOST_PATH = ('protocol=https\n'
40
'host=vpce-0b47ea360adebf88a-jkl88hez.git-codecommit.us-east-1.vpce.amazonaws.com\n'
41
'path=/v1/repos/myrepo')
42
43
def setUp(self):
44
self.orig_id = os.environ.get('AWS_ACCESS_KEY_ID')
45
self.orig_key = os.environ.get('AWS_SECRET_ACCESS_KEY')
46
os.environ['AWS_ACCESS_KEY_ID'] = 'foo'
47
os.environ['AWS_SECRET_ACCESS_KEY'] = 'bar'
48
49
def tearDown(self):
50
if self.orig_id:
51
os.environ['AWS_ACCESS_KEY_ID'] = self.orig_id
52
else:
53
del os.environ['AWS_ACCESS_KEY_ID']
54
if self.orig_key:
55
os.environ['AWS_SECRET_ACCESS_KEY'] = self.orig_key
56
else:
57
del os.environ['AWS_SECRET_ACCESS_KEY']
58
59
@mock.patch('sys.stdin', StringIO(PROTOCOL_HOST_PATH))
60
@mock.patch('sys.stdout', new_callable=StringIOWithFileNo)
61
@mock.patch.object(awscli.compat.datetime, 'datetime', wraps=datetime)
62
def test_integration_using_cli_driver(self, dt_mock, stdout_mock):
63
dt_mock.now.return_value = datetime(2010, 10, 8)
64
driver = create_clidriver()
65
rc = driver.main('codecommit credential-helper get'.split())
66
output = stdout_mock.getvalue().strip()
67
self.assertEqual(
68
('username=foo\n'
69
'password=20101008T000000Z'
70
'7dc259e2d505af354a1219b9bcd784bd384dc706efa0d9aefc571f214be4c89c'),
71
output)
72
self.assertEqual(0, rc)
73
74
@mock.patch('sys.stdin', StringIO(FIPS_PROTOCOL_HOST_PATH))
75
@mock.patch('sys.stdout', new_callable=StringIOWithFileNo)
76
@mock.patch.object(awscli.compat.datetime, 'datetime', wraps=datetime)
77
def test_integration_fips_using_cli_driver(self, dt_mock, stdout_mock):
78
dt_mock.now.return_value = datetime(2010, 10, 8)
79
driver = create_clidriver()
80
rc = driver.main('codecommit credential-helper get'.split())
81
output = stdout_mock.getvalue().strip()
82
self.assertEqual(
83
('username=foo\n'
84
'password=20101008T000000Z'
85
'500037cb3514b3fe01ebcda7c80973f5b4c0d8199a7a6563b85fd6edf272d460'),
86
output)
87
self.assertEqual(0, rc)
88
89
@mock.patch('sys.stdin', StringIO(VPC_PROTOCOL_HOST_PATH))
90
@mock.patch('sys.stdout', new_callable=StringIOWithFileNo)
91
@mock.patch.object(awscli.compat.datetime, 'datetime', wraps=datetime)
92
def test_integration_vpc_using_cli_driver(self, dt_mock, stdout_mock):
93
dt_mock.now.return_value = datetime(2010, 10, 8)
94
driver = create_clidriver()
95
rc = driver.main('codecommit credential-helper get'.split())
96
output = stdout_mock.getvalue().strip()
97
self.assertEqual(
98
('username=foo\n'
99
'password=20101008T000000Z'
100
'9ed987cc6336c3de2d9f06b9236c7a9fd76b660b080db15983290e636dbfbd6b'),
101
output)
102
self.assertEqual(0, rc)
103
104
105
if __name__ == "__main__":
106
unittest.main()
107
108