clear-skies-aws 1.9.18__py3-none-any.whl → 1.10.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {clear_skies_aws-1.9.18.dist-info → clear_skies_aws-1.10.0.dist-info}/METADATA +5 -1
- {clear_skies_aws-1.9.18.dist-info → clear_skies_aws-1.10.0.dist-info}/RECORD +17 -13
- clearskies_aws/actions/assume_role_test.py +5 -2
- clearskies_aws/backends/__init__.py +10 -0
- clearskies_aws/backends/dynamo_db_backend.py +10 -7
- clearskies_aws/backends/dynamo_db_backend_test.py +71 -65
- clearskies_aws/backends/dynamo_db_condition_parser.py +365 -0
- clearskies_aws/backends/dynamo_db_condition_parser_test.py +266 -0
- clearskies_aws/backends/dynamo_db_parti_ql_backend.py +1000 -0
- clearskies_aws/backends/dynamo_db_parti_ql_backend_test.py +540 -0
- clearskies_aws/contexts/lambda_sqs_standard_partial_batch_test.py +11 -16
- clearskies_aws/di/standard_dependencies.py +47 -5
- clearskies_aws/input_outputs/lambda_api_gateway_test.py +27 -19
- clearskies_aws/secrets/parameter_store_test.py +5 -2
- clearskies_aws/secrets/secrets_manager_test.py +5 -2
- {clear_skies_aws-1.9.18.dist-info → clear_skies_aws-1.10.0.dist-info}/LICENSE +0 -0
- {clear_skies_aws-1.9.18.dist-info → clear_skies_aws-1.10.0.dist-info}/WHEEL +0 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import unittest
|
|
2
|
-
from .lambda_api_gateway import LambdaAPIGateway
|
|
3
2
|
from collections import OrderedDict
|
|
3
|
+
|
|
4
|
+
from .lambda_api_gateway import LambdaAPIGateway
|
|
5
|
+
|
|
6
|
+
|
|
4
7
|
class LambdaAPIGatewayTest(unittest.TestCase):
|
|
5
8
|
dummy_event = {
|
|
6
9
|
'httpMethod': 'GET',
|
|
@@ -22,16 +25,21 @@ class LambdaAPIGatewayTest(unittest.TestCase):
|
|
|
22
25
|
aws_lambda.set_header('hey', 'sup')
|
|
23
26
|
aws_lambda.clear_header('bob')
|
|
24
27
|
response = aws_lambda.respond({'some': 'data'}, 200)
|
|
25
|
-
self.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
self.assertEqual(
|
|
29
|
+
{
|
|
30
|
+
"isBase64Encoded": False,
|
|
31
|
+
"statusCode": 200,
|
|
32
|
+
"headers": OrderedDict(
|
|
33
|
+
[
|
|
34
|
+
("JANE", "kay"),
|
|
35
|
+
("HEY", "sup"),
|
|
36
|
+
("CONTENT-TYPE", "application/json; charset=UTF-8"),
|
|
37
|
+
]
|
|
38
|
+
),
|
|
39
|
+
"body": '{"some": "data"}',
|
|
40
|
+
},
|
|
41
|
+
response,
|
|
42
|
+
)
|
|
35
43
|
|
|
36
44
|
def test_headers(self):
|
|
37
45
|
aws_lambda = LambdaAPIGateway({
|
|
@@ -44,8 +52,8 @@ class LambdaAPIGatewayTest(unittest.TestCase):
|
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
}, {})
|
|
47
|
-
self.
|
|
48
|
-
self.
|
|
55
|
+
self.assertEqual("hey", aws_lambda.get_request_header("authorizatiON"))
|
|
56
|
+
self.assertEqual("asdf", aws_lambda.get_request_header("x-auth"))
|
|
49
57
|
self.assertTrue(aws_lambda.has_request_header('authorization'))
|
|
50
58
|
self.assertTrue(aws_lambda.has_request_header('x-auth'))
|
|
51
59
|
self.assertFalse(aws_lambda.has_request_header('bearer'))
|
|
@@ -53,8 +61,8 @@ class LambdaAPIGatewayTest(unittest.TestCase):
|
|
|
53
61
|
def test_body_plain(self):
|
|
54
62
|
aws_lambda = LambdaAPIGateway({**self.dummy_event, **{'body': '{"hey": "sup"}', 'isBase64Encoded': False}}, {})
|
|
55
63
|
|
|
56
|
-
self.
|
|
57
|
-
self.
|
|
64
|
+
self.assertEqual({"hey": "sup"}, aws_lambda.json_body())
|
|
65
|
+
self.assertEqual('{"hey": "sup"}', aws_lambda.get_body())
|
|
58
66
|
self.assertTrue(aws_lambda.has_body())
|
|
59
67
|
|
|
60
68
|
def test_body_base64(self):
|
|
@@ -66,14 +74,14 @@ class LambdaAPIGatewayTest(unittest.TestCase):
|
|
|
66
74
|
}
|
|
67
75
|
}, {})
|
|
68
76
|
|
|
69
|
-
self.
|
|
70
|
-
self.
|
|
77
|
+
self.assertEqual({"hey": "sup"}, aws_lambda.json_body())
|
|
78
|
+
self.assertEqual('{"hey": "sup"}', aws_lambda.get_body())
|
|
71
79
|
self.assertTrue(aws_lambda.has_body())
|
|
72
80
|
|
|
73
81
|
def test_path(self):
|
|
74
82
|
aws_lambda = LambdaAPIGateway(self.dummy_event, {})
|
|
75
|
-
self.
|
|
83
|
+
self.assertEqual("/test", aws_lambda.get_path_info())
|
|
76
84
|
|
|
77
85
|
def test_query_string(self):
|
|
78
86
|
aws_lambda = LambdaAPIGateway(self.dummy_event, {})
|
|
79
|
-
self.
|
|
87
|
+
self.assertEqual("q=hey&bob=sup", aws_lambda.get_query_string())
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import unittest
|
|
2
|
+
from types import SimpleNamespace
|
|
2
3
|
from unittest.mock import MagicMock
|
|
4
|
+
|
|
3
5
|
from .parameter_store import ParameterStore
|
|
4
|
-
|
|
6
|
+
|
|
7
|
+
|
|
5
8
|
class ParameterStoreTest(unittest.TestCase):
|
|
6
9
|
def setUp(self):
|
|
7
10
|
self.environment = SimpleNamespace(get=MagicMock(return_value='us-east-1'))
|
|
@@ -10,6 +13,6 @@ class ParameterStoreTest(unittest.TestCase):
|
|
|
10
13
|
ssm = SimpleNamespace(get_parameter=MagicMock(return_value={'Parameter': {'Value': 'sup'}}))
|
|
11
14
|
boto3 = SimpleNamespace(client=MagicMock(return_value=ssm))
|
|
12
15
|
parameter_store = ParameterStore(boto3, self.environment)
|
|
13
|
-
self.
|
|
16
|
+
self.assertEqual("sup", parameter_store.get("/my/item"))
|
|
14
17
|
ssm.get_parameter.assert_called_with(Name='/my/item', WithDecryption=True)
|
|
15
18
|
boto3.client.assert_called_with('ssm', region_name='us-east-1')
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import unittest
|
|
2
|
+
from types import SimpleNamespace
|
|
2
3
|
from unittest.mock import MagicMock
|
|
4
|
+
|
|
3
5
|
from .secrets_manager import SecretsManager
|
|
4
|
-
|
|
6
|
+
|
|
7
|
+
|
|
5
8
|
class SecretsManagerTest(unittest.TestCase):
|
|
6
9
|
def setUp(self):
|
|
7
10
|
self.environment = SimpleNamespace(get=MagicMock(return_value='us-east-1'))
|
|
@@ -10,6 +13,6 @@ class SecretsManagerTest(unittest.TestCase):
|
|
|
10
13
|
secretsmanager = SimpleNamespace(get_secret_value=MagicMock(return_value={'SecretString': 'sup'}))
|
|
11
14
|
boto3 = SimpleNamespace(client=MagicMock(return_value=secretsmanager))
|
|
12
15
|
secrets_manager = SecretsManager(boto3, self.environment)
|
|
13
|
-
self.
|
|
16
|
+
self.assertEqual("sup", secrets_manager.get("/my/item"))
|
|
14
17
|
secretsmanager.get_secret_value.assert_called_with(SecretId='/my/item')
|
|
15
18
|
boto3.client.assert_called_with('secretsmanager', region_name='us-east-1')
|
|
File without changes
|
|
File without changes
|