def test_queryprocessor_2(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store) self.assertEqual(comm.rpc_server_channels[0]['name'], minemeld.traced.queryprocessor.QUERY_QUEUE) self.assertEqual(comm.rpc_server_channels[0]['allowed_methods'], ['query', 'kill_query']) qp.query('uuid-test-1', "test query") self.assertEqual(len(traced_mock.MOCK_QUERIES), 1) qp.query('uuid-test-2', "bad") self.assertEqual(len(traced_mock.MOCK_QUERIES), 2) gevent.sleep(0) traced_mock.MOCK_QUERIES[0].finish_event.set() traced_mock.MOCK_QUERIES[1].finish_event.set() gevent.sleep(0) qp.stop() gevent.sleep(0) gevent.sleep(0) self.assertEqual(traced_mock.MOCK_QUERIES[0].get(), None) self.assertRaises(RuntimeError, traced_mock.MOCK_QUERIES[1].get) self.assertNotIn('uuid-test-1', store.release_alls) self.assertIn('uuid-test-2', store.release_alls)
def test_queryprocessor_5(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor( comm, store, {'max_concurrency': 2}) qp.query('uuid-test-1', "test query") gevent.sleep(0) qp.query('uuid-test-2', "test query") gevent.sleep(0) self.assertRaises(RuntimeError, qp.query, 'uuid-test-3', "test query") gevent.sleep(0) traced_mock.MOCK_QUERIES[0].finish_event.set() gevent.sleep(0.2) self.assertEqual(len(qp.queries), 1) self.assertEqual(qp.query('uuid-test-4', "test query"), 'OK') gevent.sleep(0) qp.stop() gevent.sleep(0)
def test_queryprocessor_5(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store, {'max_concurrency': 2}) qp.query('uuid-test-1', "test query") gevent.sleep(0) qp.query('uuid-test-2', "test query") gevent.sleep(0) self.assertRaises( RuntimeError, qp.query, 'uuid-test-3', "test query" ) gevent.sleep(0) traced_mock.MOCK_QUERIES[0].finish_event.set() gevent.sleep(0.2) self.assertEqual(len(qp.queries), 1) self.assertEqual( qp.query('uuid-test-4', "test query"), 'OK' ) gevent.sleep(0) qp.stop() gevent.sleep(0)
def test_queryprocessor_4(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store) self.assertEqual( comm.rpc_server_channels[0]['name'], minemeld.traced.queryprocessor.QUERY_QUEUE ) self.assertEqual( comm.rpc_server_channels[0]['allowed_methods'], ['query', 'kill_query'] ) qp.stop() gevent.sleep(0) self.assertRaises( RuntimeError, qp.query, 'test-uuid-1', "test" ) self.assertRaises( RuntimeError, qp.kill_query, 'test-uuid-1' )
def test_queryprocessor_3(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store) self.assertEqual( comm.rpc_server_channels[0]['name'], minemeld.traced.queryprocessor.QUERY_QUEUE ) self.assertEqual( comm.rpc_server_channels[0]['allowed_methods'], ['query', 'kill_query'] ) qp.query('uuid-test-1', "test query") gevent.sleep(0) qp.kill_query('uuid-test-1') gevent.sleep(0) self.assertIsInstance( traced_mock.MOCK_QUERIES[0].get(), greenlet.GreenletExit ) self.assertEqual( len(qp.queries), 0 ) self.assertIn('uuid-test-1', store.release_alls) qp.stop() gevent.sleep(0)
def test_queryprocessor_4(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store) self.assertEqual(comm.rpc_server_channels[0]['name'], minemeld.traced.queryprocessor.QUERY_QUEUE) self.assertEqual(comm.rpc_server_channels[0]['allowed_methods'], ['query', 'kill_query']) qp.stop() gevent.sleep(0) self.assertRaises(RuntimeError, qp.query, 'test-uuid-1', "test") self.assertRaises(RuntimeError, qp.kill_query, 'test-uuid-1')
def test_writer(self): config = {} comm = comm_mock.comm_factory(config) store = traced_mock.store_factory() writer = minemeld.traced.writer.Writer(comm, store, 'TESTTOPIC') self.assertEqual(comm.sub_channels[0]['topic'], 'TESTTOPIC') self.assertEqual(comm.sub_channels[0]['allowed_methods'], ['log']) writer.log(0, log='testlog') self.assertEqual(store.writes[0]['timestamp'], 0) self.assertEqual(store.writes[0]['log'], ujson.dumps({'log': 'testlog'})) writer.stop() writer.log(0, log='testlog') self.assertEqual(len(store.writes), 1) writer.stop() # just for coverage
def test_queryprocessor_2(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store) self.assertEqual( comm.rpc_server_channels[0]['name'], minemeld.traced.queryprocessor.QUERY_QUEUE ) self.assertEqual( comm.rpc_server_channels[0]['allowed_methods'], ['query', 'kill_query'] ) qp.query('uuid-test-1', "test query") self.assertEqual(len(traced_mock.MOCK_QUERIES), 1) qp.query('uuid-test-2', "bad") self.assertEqual(len(traced_mock.MOCK_QUERIES), 2) gevent.sleep(0) traced_mock.MOCK_QUERIES[0].finish_event.set() traced_mock.MOCK_QUERIES[1].finish_event.set() gevent.sleep(0) qp.stop() gevent.sleep(0) gevent.sleep(0) self.assertEqual(traced_mock.MOCK_QUERIES[0].get(), None) self.assertRaises( RuntimeError, traced_mock.MOCK_QUERIES[1].get ) self.assertNotIn('uuid-test-1', store.release_alls) self.assertIn('uuid-test-2', store.release_alls)
def test_queryprocessor_3(self, query_mock): comm = comm_mock.comm_factory({}) store = traced_mock.store_factory() qp = minemeld.traced.queryprocessor.QueryProcessor(comm, store) self.assertEqual(comm.rpc_server_channels[0]['name'], minemeld.traced.queryprocessor.QUERY_QUEUE) self.assertEqual(comm.rpc_server_channels[0]['allowed_methods'], ['query', 'kill_query']) qp.query('uuid-test-1', "test query") gevent.sleep(0) qp.kill_query('uuid-test-1') gevent.sleep(0) self.assertIsInstance(traced_mock.MOCK_QUERIES[0].get(), greenlet.GreenletExit) self.assertEqual(len(qp.queries), 0) self.assertIn('uuid-test-1', store.release_alls) qp.stop() gevent.sleep(0)