|  | 
|  | 1 | +from chaos_lib import get_config | 
|  | 2 | +from ssm_cache import InvalidParameterError | 
|  | 3 | +import unittest | 
|  | 4 | +import os | 
|  | 5 | +import warnings | 
|  | 6 | +import boto3 | 
|  | 7 | + | 
|  | 8 | +client = boto3.client('ssm', region_name='eu-north-1') | 
|  | 9 | + | 
|  | 10 | + | 
|  | 11 | +def ignore_warnings(test_func): | 
|  | 12 | + def do_test(self, *args, **kwargs): | 
|  | 13 | + with warnings.catch_warnings(): | 
|  | 14 | + warnings.simplefilter("ignore", ResourceWarning) | 
|  | 15 | + warnings.simplefilter("ignore", DeprecationWarning) | 
|  | 16 | + test_func(self, *args, **kwargs) | 
|  | 17 | + return do_test | 
|  | 18 | + | 
|  | 19 | + | 
|  | 20 | +class TestStringMethods(unittest.TestCase): | 
|  | 21 | + | 
|  | 22 | + @ignore_warnings | 
|  | 23 | + def setUp(self): | 
|  | 24 | + os.environ['FAILURE_INJECTION_PARAM'] = 'test.config' | 
|  | 25 | + client.put_parameter( | 
|  | 26 | + Value="{ \"delay\": 200, \"isEnabled\": true, \"error_code\": 404, \"exception_msg\": \"I FAILED\"}", | 
|  | 27 | + Name='test.config', | 
|  | 28 | + Type='String', | 
|  | 29 | + Overwrite=True | 
|  | 30 | + ) | 
|  | 31 | + | 
|  | 32 | + @ignore_warnings | 
|  | 33 | + def tearDown(self): | 
|  | 34 | + client.delete_parameters(Names=['test.config']) | 
|  | 35 | + | 
|  | 36 | + @ignore_warnings | 
|  | 37 | + def test_get_config(self): | 
|  | 38 | + isEnabled = get_config('isEnabled') | 
|  | 39 | + self.assertEqual(isEnabled, True or False) | 
|  | 40 | + | 
|  | 41 | + @ignore_warnings | 
|  | 42 | + def test_get_config_delay(self): | 
|  | 43 | + delay = get_config('delay') | 
|  | 44 | + self.assertEqual(delay, 200) | 
|  | 45 | + | 
|  | 46 | + @ignore_warnings | 
|  | 47 | + def test_get_config_error_code(self): | 
|  | 48 | + delay = get_config('error_code') | 
|  | 49 | + self.assertEqual(delay, 404) | 
|  | 50 | + | 
|  | 51 | + @ignore_warnings | 
|  | 52 | + def test_get_config_bad_key(self): | 
|  | 53 | + with self.assertRaises(KeyError): | 
|  | 54 | + get_config('dela') | 
|  | 55 | + | 
|  | 56 | + @ignore_warnings | 
|  | 57 | + def test_get_config_bad_config(self): | 
|  | 58 | + os.environ['FAILURE_INJECTION_PARAM'] = 'test.conf' | 
|  | 59 | + with self.assertRaises(InvalidParameterError): | 
|  | 60 | + get_config('delay') | 
|  | 61 | + | 
|  | 62 | + | 
|  | 63 | + | 
|  | 64 | + | 
|  | 65 | +if __name__ == '__main__': | 
|  | 66 | + unittest.main() | 
0 commit comments