def test_00_init(self, mock_SimpleConsumer, mock_KafkaClient, mock_UVEServer): self.test_spec = [ TestStage( i = PartHandlerInput( redis_instances = set([("127.0.0.1",44444,0)]), get_part = ("127.0.0.1:44444", { "gen1" : { "ObjectXX:uve1" : set(["type1"]) }}), get_messages = [OffsetAndMessage(offset=0, message=Message(magic=0, attributes=0, key='', value=('{"message":"UVEUpdate","key":"ObjectYY:uve2",' '"type":"type2","gen":"gen1","coll":' '"127.0.0.1:44444","deleted":false}')))]), o = PartHandlerOutput( callbacks = [ { "ObjectXX:uve1" : None }, { "ObjectYY:uve2" : set(["type2"])}, ], uvedb = None) ), TestStage( i = PartHandlerInput( redis_instances = gevent.GreenletExit(), get_part = None, get_messages = None), o = PartHandlerOutput( callbacks = [ { "ObjectXX:uve1" : None, "ObjectYY:uve2" : None }, ], uvedb = {"127.0.0.1:44444" : { "gen1" : { "ObjectXX:uve1" : set(["type1"]), "ObjectYY:uve2" : set(["type2"])}}}), ) ] mock_UVEServer.return_value.redis_instances.side_effect = \ [x.i.redis_instances for x in self.test_spec] mock_UVEServer.return_value.get_part.side_effect = \ [x.i.get_part for x in self.test_spec if x.i.get_part is not None] mock_SimpleConsumer.return_value.get_messages.side_effect = \ [x.i.get_messages for x in self.test_spec] self.ph = UveStreamProc('no-brokers', 1, "uve-1", logging, self.callback_proc, "127.0.0.1", mock_UVEServer.return_value) self.ph.start() res,db = self.ph.get(timeout = 10) if (isinstance(res,AssertionError)): raise res self.assertEqual(db, self.test_spec[-1].o.uvedb)
def test_00_init(self, mock_SimpleConsumer, mock_KafkaClient, mock_UVEServer): self.test_spec = [ TestStage(i=PartHandlerInput( redis_instances=set([("127.0.0.1", 44444, 0)]), get_part={ "127.0.0.1:44444": { "gen1": { "ObjectXX:uve1": set(["type1"]) } } }, get_messages=[ OffsetAndMessage( offset=0, message=Message( magic=0, attributes=0, key='', value=( '{"message":"UVEUpdate","key":"ObjectYY:uve2",' '"type":"type2","gen":"gen1","coll":' '"127.0.0.1:44444","deleted":false}'))) ]), o=PartHandlerOutput(callbacks=[ { "ObjectXX:uve1": None }, { "ObjectYY:uve2": set(["type2"]) }, ], uvedb=None)), TestStage( i=PartHandlerInput(redis_instances=gevent.GreenletExit(), get_part=None, get_messages=None), o=PartHandlerOutput(callbacks=[ { "ObjectXX:uve1": None, "ObjectYY:uve2": None }, ], uvedb={ "127.0.0.1:44444": { "gen1": { "ObjectXX:uve1": set(["type1"]), "ObjectYY:uve2": set(["type2"]) } } }), ) ] mock_UVEServer.return_value.redis_instances.side_effect = \ [x.i.redis_instances for x in self.test_spec] mock_UVEServer.return_value.get_part.side_effect = \ [x.i.get_part for x in self.test_spec if x.i.get_part is not None] mock_SimpleConsumer.return_value.get_messages.side_effect = \ [x.i.get_messages for x in self.test_spec] self.ph = UveStreamProc('no-brokers', 1, "uve-1", logging, self.callback_proc, "127.0.0.1", mock_UVEServer.return_value) self.ph.start() res, db = self.ph.get(timeout=10) if (isinstance(res, AssertionError)): raise res self.assertEqual(db, self.test_spec[-1].o.uvedb)
class TestPartitionHandler(unittest.TestCase): def setUp(self): self.ph = None self.test_spec = None self.stage = 0 self.step = 0 #self.done = False pass def tearDown(self): pass def callback_proc(self, part, uves): self.assertNotEqual(self.stage, len(self.test_spec)) stage = self.test_spec[self.stage] o = stage.o.callbacks[self.step] self.assertEqual(uves, o, "Error in stage %d step %d\nActual %s\nExpected %s" % \ (self.stage, self.step, str(uves), str(o))) self.step += 1 if len(stage.o.callbacks) == self.step: self.step = 0 self.stage += 1 @mock.patch('opserver.partition_handler.UVEServer', autospec=True) @mock.patch('opserver.partition_handler.KafkaClient', autospec=True) @mock.patch('opserver.partition_handler.SimpleConsumer', autospec=True) # Test intialization and shutdown, along with basic Kafka, partition start # and UVE read operations @unittest.skip('Skipping PartHandler test') # TODO: Needs to be updated or removed def test_00_init(self, mock_SimpleConsumer, mock_KafkaClient, mock_UVEServer): self.test_spec = [ TestStage( i = PartHandlerInput( redis_instances = set([("127.0.0.1",44444,0)]), get_part = ("127.0.0.1:44444", { "gen1" : { "ObjectXX:uve1" : set(["type1"]) }}), get_messages = [OffsetAndMessage(offset=0, message=Message(magic=0, attributes=0, key='', value=('{"message":"UVEUpdate","key":"ObjectYY:uve2",' '"type":"type2","gen":"gen1","coll":' '"127.0.0.1:44444","deleted":false}')))]), o = PartHandlerOutput( callbacks = [ { "ObjectXX:uve1" : None }, { "ObjectYY:uve2" : set(["type2"])}, ], uvedb = None) ), TestStage( i = PartHandlerInput( redis_instances = gevent.GreenletExit(), get_part = None, get_messages = None), o = PartHandlerOutput( callbacks = [ { "ObjectXX:uve1" : None, "ObjectYY:uve2" : None }, ], uvedb = {"127.0.0.1:44444" : { "gen1" : { "ObjectXX:uve1" : set(["type1"]), "ObjectYY:uve2" : set(["type2"])}}}), ) ] mock_UVEServer.return_value.redis_instances.side_effect = \ [x.i.redis_instances for x in self.test_spec] mock_UVEServer.return_value.get_part.side_effect = \ [x.i.get_part for x in self.test_spec if x.i.get_part is not None] mock_SimpleConsumer.return_value.get_messages.side_effect = \ [x.i.get_messages for x in self.test_spec] self.ph = UveStreamProc('no-brokers', 1, "uve-1", logging, self.callback_proc, "127.0.0.1", mock_UVEServer.return_value) self.ph.start() res,db = self.ph.get(timeout = 10) if (isinstance(res,AssertionError)): raise res self.assertEqual(db, self.test_spec[-1].o.uvedb)
class TestPartitionHandler(unittest.TestCase): def setUp(self): self.ph = None self.test_spec = None self.stage = 0 self.step = 0 #self.done = False pass def tearDown(self): pass def callback_proc(self, part, uves): self.assertNotEqual(self.stage, len(self.test_spec)) stage = self.test_spec[self.stage] o = stage.o.callbacks[self.step] self.assertEqual(uves, o, "Error in stage %d step %d\nActual %s\nExpected %s" % \ (self.stage, self.step, str(uves), str(o))) self.step += 1 if len(stage.o.callbacks) == self.step: self.step = 0 self.stage += 1 @mock.patch('opserver.partition_handler.UVEServer', autospec=True) @mock.patch('opserver.partition_handler.KafkaClient', autospec=True) @mock.patch('opserver.partition_handler.SimpleConsumer', autospec=True) # Test intialization and shutdown, along with basic Kafka, partition start # and UVE read operations def test_00_init(self, mock_SimpleConsumer, mock_KafkaClient, mock_UVEServer): self.test_spec = [ TestStage(i=PartHandlerInput( redis_instances=set([("127.0.0.1", 44444, 0)]), get_part={ "127.0.0.1:44444": { "gen1": { "ObjectXX:uve1": set(["type1"]) } } }, get_messages=[ OffsetAndMessage( offset=0, message=Message( magic=0, attributes=0, key='', value=( '{"message":"UVEUpdate","key":"ObjectYY:uve2",' '"type":"type2","gen":"gen1","coll":' '"127.0.0.1:44444","deleted":false}'))) ]), o=PartHandlerOutput(callbacks=[ { "ObjectXX:uve1": None }, { "ObjectYY:uve2": set(["type2"]) }, ], uvedb=None)), TestStage( i=PartHandlerInput(redis_instances=gevent.GreenletExit(), get_part=None, get_messages=None), o=PartHandlerOutput(callbacks=[ { "ObjectXX:uve1": None, "ObjectYY:uve2": None }, ], uvedb={ "127.0.0.1:44444": { "gen1": { "ObjectXX:uve1": set(["type1"]), "ObjectYY:uve2": set(["type2"]) } } }), ) ] mock_UVEServer.return_value.redis_instances.side_effect = \ [x.i.redis_instances for x in self.test_spec] mock_UVEServer.return_value.get_part.side_effect = \ [x.i.get_part for x in self.test_spec if x.i.get_part is not None] mock_SimpleConsumer.return_value.get_messages.side_effect = \ [x.i.get_messages for x in self.test_spec] self.ph = UveStreamProc('no-brokers', 1, "uve-1", logging, self.callback_proc, "127.0.0.1", mock_UVEServer.return_value) self.ph.start() res, db = self.ph.get(timeout=10) if (isinstance(res, AssertionError)): raise res self.assertEqual(db, self.test_spec[-1].o.uvedb)