@@ -1177,4 +1177,91 @@ def test_input_validation_factory(self, mocker):
11771177 except :
11781178 pass
11791179 assert logger .error .mock_calls == []
1180- f .destroy ()
1180+ f .destroy ()
1181+
1182+ class PluggableInputValidationTests (object ): #pylint: disable=too-few-public-methods
1183+ """Pluggable adapter instance validation test cases."""
1184+
1185+ class mock_adapter0 ():
1186+ def set (self , key , value ):
1187+ print (key )
1188+
1189+ class mock_adapter1 (object ):
1190+ def set (self , key , value ):
1191+ print (key )
1192+
1193+ class mock_adapter2 (mock_adapter1 ):
1194+ def get (self , key ):
1195+ print (key )
1196+
1197+ def get_items (self , key ):
1198+ print (key )
1199+
1200+ def get_many (self , keys ):
1201+ print (keys )
1202+
1203+ def push_items (self , key , * value ):
1204+ print (key )
1205+
1206+ def delete (self , key ):
1207+ print (key )
1208+
1209+ def increment (self , key , value ):
1210+ print (key )
1211+
1212+ def decrement (self , key , value ):
1213+ print (key )
1214+
1215+ def get_keys_by_prefix (self , prefix ):
1216+ print (prefix )
1217+
1218+ def get_many (self , keys ):
1219+ print (keys )
1220+
1221+ def add_items (self , key , added_items ):
1222+ print (key )
1223+
1224+ def remove_items (self , key , removed_items ):
1225+ print (key )
1226+
1227+ def item_contains (self , key , item ):
1228+ print (key )
1229+
1230+ def get_items_count (self , key ):
1231+ print (key )
1232+
1233+ class mock_adapter3 (mock_adapter2 ):
1234+ def expire (self , key ):
1235+ print (key )
1236+
1237+ class mock_adapter4 (mock_adapter2 ):
1238+ def expire (self , key , value , till ):
1239+ print (key )
1240+
1241+ def test_validate_pluggable_adapter (self ):
1242+ # missing storageWrapper config parameter
1243+ assert (not input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' }))
1244+
1245+ # ignore if storage type is not pluggable
1246+ assert (input_validator .validate_pluggable_adapter ({'storageType' : 'memory' }))
1247+
1248+ # mock adapter is not derived from object class
1249+ assert (not input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storageWrapper' : self .mock_adapter0 ()}))
1250+
1251+ # mock adapter missing many functions
1252+ assert (not input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storageWrapper' : self .mock_adapter1 ()}))
1253+
1254+ # mock adapter missing expire function
1255+ assert (not input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storageWrapper' : self .mock_adapter2 ()}))
1256+
1257+ # mock adapter expire function has incrrect args count
1258+ assert (not input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storageWrapper' : self .mock_adapter3 ()}))
1259+
1260+ # expected mock adapter should pass
1261+ assert (input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storageWrapper' : self .mock_adapter4 ()}))
1262+
1263+ # using string type prefix should pass
1264+ assert (input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storagePrefix' : 'myprefix' , 'storageWrapper' : self .mock_adapter4 ()}))
1265+
1266+ # using non-string type prefix should not pass
1267+ assert (not input_validator .validate_pluggable_adapter ({'storageType' : 'PLUGGABLE' , 'storagePrefix' : 'myprefix' , 123 : self .mock_adapter4 ()}))
0 commit comments