|
| 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 @@ def test_logger_logs_error_inline(self): |
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 @@ def test_logger_handles_bad_level(self): |
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 | | - |
|
0 commit comments