@@ -957,6 +957,48 @@ def test_secrets_provider_get_sdk_options_overwrite(mock_name, mock_value, confi
957
957
stubber .deactivate ()
958
958
959
959
960
+ def test_base_provider_get_exception (mock_name ):
961
+ """
962
+ Test BaseProvider.get() that raises an exception
963
+ """
964
+
965
+ class TestProvider (BaseProvider ):
966
+ def _get (self , name : str , ** kwargs ) -> str :
967
+ assert name == mock_name
968
+ raise Exception ("test exception raised" )
969
+
970
+ def _get_multiple (self , path : str , ** kwargs ) -> Dict [str , str ]:
971
+ raise NotImplementedError ()
972
+
973
+ provider = TestProvider ()
974
+
975
+ with pytest .raises (parameters .GetParameterError ) as excinfo :
976
+ provider .get (mock_name )
977
+
978
+ assert "test exception raised" in str (excinfo )
979
+
980
+
981
+ def test_base_provider_get_multiple_exception (mock_name ):
982
+ """
983
+ Test BaseProvider.get_multiple() that raises an exception
984
+ """
985
+
986
+ class TestProvider (BaseProvider ):
987
+ def _get (self , name : str , ** kwargs ) -> str :
988
+ raise NotImplementedError ()
989
+
990
+ def _get_multiple (self , path : str , ** kwargs ) -> Dict [str , str ]:
991
+ assert path == mock_name
992
+ raise Exception ("test exception raised" )
993
+
994
+ provider = TestProvider ()
995
+
996
+ with pytest .raises (parameters .GetParameterError ) as excinfo :
997
+ provider .get_multiple (mock_name )
998
+
999
+ assert "test exception raised" in str (excinfo )
1000
+
1001
+
960
1002
def test_base_provider_get_transform_json (mock_name , mock_value ):
961
1003
"""
962
1004
Test BaseProvider.get() with a json transform
@@ -981,55 +1023,60 @@ def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
981
1023
assert value [mock_name ] == mock_value
982
1024
983
1025
984
- def test_base_provider_get_exception (mock_name ):
1026
+ def test_base_provider_get_transform_json_exception (mock_name , mock_value ):
985
1027
"""
986
- Test BaseProvider.get() that raises an exception
1028
+ Test BaseProvider.get() with a json transform that raises an exception
987
1029
"""
988
1030
1031
+ mock_data = json .dumps ({mock_name : mock_value }) + "{"
1032
+
989
1033
class TestProvider (BaseProvider ):
990
1034
def _get (self , name : str , ** kwargs ) -> str :
991
1035
assert name == mock_name
992
- raise Exception ( "test exception raised" )
1036
+ return mock_data
993
1037
994
1038
def _get_multiple (self , path : str , ** kwargs ) -> Dict [str , str ]:
995
1039
raise NotImplementedError ()
996
1040
997
1041
provider = TestProvider ()
998
1042
999
- with pytest .raises (parameters .GetParameterError ) as excinfo :
1000
- provider .get (mock_name )
1043
+ with pytest .raises (parameters .TransformParameterError ) as excinfo :
1044
+ provider .get (mock_name , transform = "json" )
1001
1045
1002
- assert "test exception raised " in str (excinfo )
1046
+ assert "Extra data " in str (excinfo )
1003
1047
1004
1048
1005
- def test_base_provider_get_multiple_exception (mock_name ):
1049
+ def test_base_provider_get_transform_binary (mock_name , mock_value ):
1006
1050
"""
1007
- Test BaseProvider.get_multiple () that raises an exception
1051
+ Test BaseProvider.get () with a binary transform
1008
1052
"""
1009
1053
1054
+ mock_binary = mock_value .encode ()
1055
+ mock_data = base64 .b64encode (mock_binary ).decode ()
1056
+
1010
1057
class TestProvider (BaseProvider ):
1011
1058
def _get (self , name : str , ** kwargs ) -> str :
1012
- raise NotImplementedError ()
1059
+ assert name == mock_name
1060
+ return mock_data
1013
1061
1014
1062
def _get_multiple (self , path : str , ** kwargs ) -> Dict [str , str ]:
1015
- assert path == mock_name
1016
- raise Exception ("test exception raised" )
1063
+ raise NotImplementedError ()
1017
1064
1018
1065
provider = TestProvider ()
1019
1066
1020
- with pytest .raises (parameters .GetParameterError ) as excinfo :
1021
- provider .get_multiple (mock_name )
1067
+ value = provider .get (mock_name , transform = "binary" )
1022
1068
1023
- assert "test exception raised" in str (excinfo )
1069
+ assert isinstance (value , bytes )
1070
+ assert value == mock_binary
1024
1071
1025
1072
1026
- def test_base_provider_get_transform_binary (mock_name , mock_value ):
1073
+ def test_base_provider_get_transform_binary_exception (mock_name ):
1027
1074
"""
1028
- Test BaseProvider.get() with a binary transform
1075
+ Test BaseProvider.get() with a binary transform that raises an exception
1029
1076
"""
1030
1077
1031
- mock_binary = mock_value . encode ()
1032
- mock_data = base64 . b64encode ( mock_binary ). decode ( )
1078
+ mock_data = "qw"
1079
+ print ( mock_data )
1033
1080
1034
1081
class TestProvider (BaseProvider ):
1035
1082
def _get (self , name : str , ** kwargs ) -> str :
@@ -1041,10 +1088,10 @@ def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1041
1088
1042
1089
provider = TestProvider ()
1043
1090
1044
- value = provider .get (mock_name , transform = "binary" )
1091
+ with pytest .raises (parameters .TransformParameterError ) as excinfo :
1092
+ provider .get (mock_name , transform = "binary" )
1045
1093
1046
- assert isinstance (value , bytes )
1047
- assert value == mock_binary
1094
+ assert "Incorrect padding" in str (excinfo )
1048
1095
1049
1096
1050
1097
def test_base_provider_get_multiple_transform_json (mock_name , mock_value ):
@@ -1070,6 +1117,29 @@ def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1070
1117
assert value ["A" ][mock_name ] == mock_value
1071
1118
1072
1119
1120
+ def test_base_provider_get_multiple_transform_json_exception (mock_name , mock_value ):
1121
+ """
1122
+ Test BaseProvider.get_multiple() with a json transform that raises an exception
1123
+ """
1124
+
1125
+ mock_data = json .dumps ({mock_name : mock_value }) + "{"
1126
+
1127
+ class TestProvider (BaseProvider ):
1128
+ def _get (self , name : str , ** kwargs ) -> str :
1129
+ raise NotImplementedError ()
1130
+
1131
+ def _get_multiple (self , path : str , ** kwargs ) -> Dict [str , str ]:
1132
+ assert path == mock_name
1133
+ return {"A" : mock_data }
1134
+
1135
+ provider = TestProvider ()
1136
+
1137
+ with pytest .raises (parameters .TransformParameterError ) as excinfo :
1138
+ provider .get_multiple (mock_name , transform = "json" )
1139
+
1140
+ assert "Extra data" in str (excinfo )
1141
+
1142
+
1073
1143
def test_base_provider_get_multiple_transform_binary (mock_name , mock_value ):
1074
1144
"""
1075
1145
Test BaseProvider.get_multiple() with a binary transform
@@ -1094,6 +1164,29 @@ def _get_multiple(self, path: str, **kwargs) -> Dict[str, str]:
1094
1164
assert value ["A" ] == mock_binary
1095
1165
1096
1166
1167
+ def test_base_provider_get_multiple_transform_binary_exception (mock_name ):
1168
+ """
1169
+ Test BaseProvider.get_multiple() with a binary transform that raises an exception
1170
+ """
1171
+
1172
+ mock_data = "qw"
1173
+
1174
+ class TestProvider (BaseProvider ):
1175
+ def _get (self , name : str , ** kwargs ) -> str :
1176
+ raise NotImplementedError ()
1177
+
1178
+ def _get_multiple (self , path : str , ** kwargs ) -> Dict [str , str ]:
1179
+ assert path == mock_name
1180
+ return {"A" : mock_data }
1181
+
1182
+ provider = TestProvider ()
1183
+
1184
+ with pytest .raises (parameters .TransformParameterError ) as excinfo :
1185
+ provider .get_multiple (mock_name , transform = "binary" )
1186
+
1187
+ assert "Incorrect padding" in str (excinfo )
1188
+
1189
+
1097
1190
def test_base_provider_get_multiple_cached (mock_name , mock_value ):
1098
1191
"""
1099
1192
Test BaseProvider.get_multiple() with cached values
0 commit comments