acai-aws 2.2.8__py3-none-any.whl → 2.2.9__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.
@@ -10,7 +10,8 @@ class CommonLogger:
10
10
 
11
11
  def __init__(self):
12
12
  self.__json = jsonpickle
13
- self.__format = os.getenv('LOG_FORMAT', 'JSON')
13
+ env_format = os.getenv('LOG_FORMAT', 'JSON') or 'JSON'
14
+ self.__format = env_format.strip().upper()
14
15
  self.__log_level = os.getenv('LOG_LEVEL', 'INFO')
15
16
  self.__json.set_encoder_options('simplejson', use_decimal=True)
16
17
  self.__json.set_preferred_backend('simplejson')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acai_aws
3
- Version: 2.2.8
3
+ Version: 2.2.9
4
4
  Summary: DRY, configurable, declarative framework for building AWS Lambda APIs and event processors
5
5
  Home-page: https://github.com/syngenta/acai-python
6
6
  Author: Paul Cruse III
@@ -26,7 +26,7 @@ acai_aws/common/json_helper.py,sha256=HoCaF0fO_EXcVbwanZ9Cg66x9oQUQyXbEdLfResFpq
26
26
  acai_aws/common/schema.py,sha256=mbtD922dsNzZX2uZjJKXFVj9IShpgBRofTVmdNyLGyE,3549
27
27
  acai_aws/common/validator.py,sha256=uYFMPGM5dvsiKxuwFGxetwqGcRNm03BZ3YJ6lNedwck,6575
28
28
  acai_aws/common/logger/__init__.py,sha256=2ItzGhXLdTwt9tKAOa5dzgQlLouJKQbUhV4qjxBLl1g,241
29
- acai_aws/common/logger/common_logger.py,sha256=bcOs1HRhqLHOp5P6tZQ821tqfSa7x_oBHrlY5o0lCWk,1977
29
+ acai_aws/common/logger/common_logger.py,sha256=WxhSvsC2a2DZYuWatpdOPraromrIUItZw1boP10kw5U,2035
30
30
  acai_aws/common/logger/decorator.py,sha256=Nf7S--7mWKVkKiRB2fVNM9B4NBFpJeTGv0FYxK0DEvU,749
31
31
  acai_aws/common/records/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  acai_aws/common/records/event.py,sha256=F6fqxSRWfAbEH8n_Vw9ZQICcNd__rWRGpMv1T0deQ8o,621
@@ -72,7 +72,7 @@ acai_aws/sqs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
72
  acai_aws/sqs/event.py,sha256=u5QYrb-XLy2mhzi3v55je6N6vASS3ywzjIBDjm_n32Q,264
73
73
  acai_aws/sqs/record.py,sha256=b-9gidW2UvuSZU00sgZV90DuUj7r12zTXYbQLNBSYjk,1909
74
74
  acai_aws/sqs/requirements.py,sha256=4QR0LIrDqF1CPSAroscX3EAys-dbqWMFmOhqyILcViw,116
75
- acai_aws-2.2.8.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
75
+ acai_aws-2.2.9.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
76
76
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  tests/acai_aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  tests/acai_aws/apigateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -107,7 +107,7 @@ tests/acai_aws/apigateway/router/test_pattern_router.py,sha256=981DrtlSSfaWSiDMQ
107
107
  tests/acai_aws/apigateway/router/test_timeout.py,sha256=Jv5Bk3s91kL4lBQAxxQ3NzjLnpKbeg845w4GpLwLkZA,2546
108
108
  tests/acai_aws/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  tests/acai_aws/common/test_json_helper.py,sha256=P7kw_KIaVQFr9JQAFHd4jdbvg1uVQ5l5pQmx8HmFg88,1389
110
- tests/acai_aws/common/test_logger.py,sha256=LFpZyDSoibg_rl82PMRn83uf7CvR0slH7g9wK7gaKeQ,4639
110
+ tests/acai_aws/common/test_logger.py,sha256=Aq4o43embLWofq9gG-JCY4nH4ohIqjdkwAU9nsrqkDE,5906
111
111
  tests/acai_aws/common/test_schema.py,sha256=WbSBwYGrdraF3EtuDB9XWYREKk_W14317jrTXEo90xY,5658
112
112
  tests/acai_aws/common/test_validator.py,sha256=9hDpf-UGCrQ1Elx0Th8wezLQ0HkUoKj-UXuLDGT5GJU,5958
113
113
  tests/acai_aws/common/records/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -154,7 +154,7 @@ tests/acai_aws/sqs/test_event.py,sha256=d8JBttuLND_qBVdLAoqtp-_qJ5NXxD6Ai2IFmUqK
154
154
  tests/acai_aws/sqs/test_record.py,sha256=RkWpc24A-f4bw1VyMM5mEp97QCk4i-Weu6CFP0-VlbU,1602
155
155
  tests/acai_aws/sqs/test_requirements.py,sha256=wcV99aXQIL8t6gIeUO0EgX9c_hA0IV3rg2Ar1g1SYjg,904
156
156
  tests/mocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
- acai_aws-2.2.8.dist-info/METADATA,sha256=Cz5u7mer7vBN8vaBGkJTkBZeB_PhvRIl3IDLlIYlZdc,15175
158
- acai_aws-2.2.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
- acai_aws-2.2.8.dist-info/top_level.txt,sha256=A6vdhfU7MqNqO9rGdH1Z2EEqpnbIIyb4PsHJbRktbbI,15
160
- acai_aws-2.2.8.dist-info/RECORD,,
157
+ acai_aws-2.2.9.dist-info/METADATA,sha256=ImieSh-sZSiYEMoNPsc46pDgm85xGuMaGftqgd62OqU,15175
158
+ acai_aws-2.2.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
159
+ acai_aws-2.2.9.dist-info/top_level.txt,sha256=A6vdhfU7MqNqO9rGdH1Z2EEqpnbIIyb4PsHJbRktbbI,15
160
+ acai_aws-2.2.9.dist-info/RECORD,,
@@ -1,4 +1,7 @@
1
+ import io
2
+ import json
1
3
  import os
4
+ from contextlib import redirect_stdout
2
5
  from unittest import TestCase, mock
3
6
 
4
7
  from acai_aws.common import logger
@@ -54,6 +57,29 @@ class LoggerTest(TestCase):
54
57
  except Exception as error:
55
58
  logger.log(level='ERROR', log=error)
56
59
 
60
+ @mock.patch.dict(os.environ, {'RUN_MODE': 'SEE-LOGS', 'LOG_STAGE_VARIABLE': 'STAGE', 'STAGE': 'local', 'LOG_FORMAT': ' inline '})
61
+ def test_logger_logs_error_inline_with_messy_env(self):
62
+ logger.log(level='INFO', log={'message': 'inline-format'})
63
+
64
+ @mock.patch.dict(os.environ, {'RUN_MODE': 'SEE-LOGS', 'LOG_STAGE_VARIABLE': 'STAGE', 'STAGE': 'local', 'LOG_FORMAT': 'JSON'})
65
+ def test_logger_json_output(self):
66
+ buffer = io.StringIO()
67
+ with redirect_stdout(buffer):
68
+ logger.log(level='WARN', log={'json': True})
69
+ log_output = buffer.getvalue().strip()
70
+ parsed = json.loads(log_output)
71
+ self.assertEqual('WARN', parsed['level'])
72
+ self.assertEqual({'json': True}, parsed['log'])
73
+
74
+ @mock.patch.dict(os.environ, {'RUN_MODE': 'SEE-LOGS', 'LOG_STAGE_VARIABLE': 'STAGE', 'STAGE': 'local', 'LOG_FORMAT': 'INLINE'})
75
+ def test_logger_inline_output(self):
76
+ buffer = io.StringIO()
77
+ with redirect_stdout(buffer):
78
+ logger.log(level='INFO', log={'inline': True})
79
+ log_output = buffer.getvalue().strip()
80
+ self.assertTrue(log_output.startswith('INFO|'))
81
+ self.assertIn("inline': True", log_output)
82
+
57
83
  @mock.patch.dict(os.environ, {'RUN_MODE': 'SEE-LOGS', 'LOG_STAGE_VARIABLE': 'STAGE', 'STAGE': 'local'})
58
84
  def test_logger_logs_error_as_object(self):
59
85
  try:
@@ -96,4 +122,3 @@ class LoggerTest(TestCase):
96
122
  @mock.patch.dict(os.environ, {'RUN_MODE': 'SEE-LOGS', 'LOG_STAGE_VARIABLE': 'STAGE', 'STAGE': 'local', 'LOG_LEVEL': 'ERROR', 'LOG_FORMAT': 'BAD'})
97
123
  def test_logger_handles_bad_format(self):
98
124
  logger.log(level='INFO', log={'INFO': 'ignore'})
99
-