def test_sqlalchemy_write_twice_nourl_events_count(self): """Writes with no url then reads all.""" test_graph_input = rdflib.Graph().parse( "tests/input_test_data/test_events_tcp_sockets.xml") count_events = lib_kbase.write_graph_to_events(None, test_graph_input) self.assertEqual(count_events, 43) actual_events_count = lib_kbase.events_count() self.assertEqual(count_events, actual_events_count) count_events = lib_kbase.write_graph_to_events(None, test_graph_input) self.assertEqual(count_events, 43) actual_events_count = lib_kbase.events_count() # TODO: BEWARE, WHY 63 WITH IN-MEMORY SQLITE ?? self.assertEqual(63, actual_events_count) graph_from_sql_alchemy_again = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear( graph_from_sql_alchemy_again) read_events_count = len(graph_from_sql_alchemy_again) print("read_events_count=", read_events_count) self.assertEqual(read_events_count, 43) actual_events_count_again = lib_kbase.events_count() self.assertEqual(0, actual_events_count_again)
def test_sqlalchemy_sqlite_write_two_urls(self): graph_cleanup = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear(graph_cleanup) triples_count_a = 1000 test_graph_input_a = _create_dummy_graph(triples_count_a) test_url_a = "http://dummy.xyz/url_a" count_events_url_a = lib_kbase.write_graph_to_events( test_url_a, test_graph_input_a) actual_events_count_1 = lib_kbase.events_count() self.assertEqual(actual_events_count_1, triples_count_a) triples_count_b = 2000 test_graph_input_b = _create_dummy_graph(triples_count_b) test_url_b = "http://dummy.xyz/url_b" count_events_url_b = lib_kbase.write_graph_to_events( test_url_b, test_graph_input_b) actual_events_count_2 = lib_kbase.events_count() self.assertEqual(actual_events_count_2, triples_count_a + triples_count_b) test_graph_output_a = rdflib.Graph() count_events_output_a = lib_kbase.read_events_to_graph( test_url_a, test_graph_output_a) self.assertEqual(count_events_url_a, count_events_output_a) actual_events_count_3 = lib_kbase.events_count() self.assertEqual(actual_events_count_3, triples_count_b) test_graph_output_b = rdflib.Graph() count_events_output_b = lib_kbase.read_events_to_graph( test_url_b, test_graph_output_b) self.assertEqual(count_events_url_b, count_events_output_b) actual_events_count_4 = lib_kbase.events_count() self.assertEqual(actual_events_count_4, 0)
def test_sqlalchemy_write_nourl_read_all_thread(self): """Writes into a RDF graph, then reads from a Python thread.""" triples_count = 1000 test_graph_input = _create_dummy_graph(triples_count) count_events = lib_kbase.write_graph_to_events(None, test_graph_input) sys.stderr.write( "test_sqlalchemy_write_nourl_read_all_thread count_events=%d\n" % count_events) self.assertEqual(count_events, triples_count) actual_events_count = lib_kbase.events_count() self.assertEqual(count_events, actual_events_count) # This shared queue is used by a thread reading the events, to send them back to this process. shared_queue = queue.Queue() created_thread = _create_thread(count_events, shared_queue) # Reads the triples sent by the thread. output_list = _read_triples_from_queue(count_events, shared_queue) # The thread is not needed any longer. created_thread.join() input_triples = _graph_to_triples_set(test_graph_input) output_triples = _graph_to_triples_set(output_list) # The two lists of triples must be identical: Comparison of the string representations. self.assertEqual(input_triples, output_triples)
def test_sqlalchemy_read_all_twice(self): """Just writes.""" actual_events_count = lib_kbase.events_count() graph_from_sql_alchemy = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear( graph_from_sql_alchemy) read_events_count = len(graph_from_sql_alchemy) self.assertEqual(read_events_count, actual_events_count) events_count_after_read = lib_kbase.events_count() self.assertEqual(events_count_after_read, 0) # Second read empties all. graph_from_sql_alchemy = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear( graph_from_sql_alchemy) self.assertEqual(len(graph_from_sql_alchemy), 0)
def test_pure_memory_read_by_entity(self): triples_count = 10 triples_graph = _create_dummy_graph(triples_count) returned_number = lib_kbase.write_graph_to_events(None, triples_graph) self.assertEqual(returned_number, triples_count) for triple_counter, one_triple in enumerate(triples_graph): actual_events_count = lib_kbase.events_count() self.assertEqual(actual_events_count, returned_number - triple_counter) test_graph_output = rdflib.Graph() entity_node = one_triple[0] lib_kbase.retrieve_events_to_graph(test_graph_output, entity_node) self.assertEqual(len(test_graph_output), 1) for returned_triple in test_graph_output: break self.assertEqual(returned_triple, one_triple) actual_events_count = lib_kbase.events_count() self.assertEqual(actual_events_count, 0)
def test_sqlalchemy_write_url_read_all_thread(self): """Writes a RDF graph, then reads from a Python thread.""" test_graph_input = rdflib.Graph().parse( "tests/input_test_data/test_events_tcp_sockets.xml") # The URL is not important because it is not accessed. # However, it must be correctly handled by rdflib when it creates a UriRef test_url = "http://vps516494.ovh.net/Survol/survol/sources_types/Linux/tcp_sockets.py?xid=." count_events = lib_kbase.write_graph_to_events(test_url, test_graph_input) self.assertEqual(count_events, 43) actual_events_count = lib_kbase.events_count() self.assertEqual(count_events, actual_events_count) sys.stderr.write("WRITE lib_kbase.events_count()=%s\n" % lib_kbase.events_count()) # This shared queue is used by a thread reading the events, to send them back to this process. shared_queue = queue.Queue() created_thread = _create_thread(count_events, shared_queue) # Reads the triples sent by the thread. output_list = _read_triples_from_queue(count_events, shared_queue) # The thread is not needed any longer. created_thread.join() input_triples = _graph_to_triples_set(test_graph_input) output_triples = _graph_to_triples_set(output_list) # The two lists of triples must be identical: Comparison of the string representations. self.assertEqual(input_triples, output_triples)
def test_pure_memory_write_two_urls_plus_none(self): graph_cleanup = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear(graph_cleanup) triples_count_a = 10 test_graph_input_a = _create_dummy_graph(triples_count_a) test_url_a = "http://dummy.xyz/url_a" count_events_url_a = lib_kbase.write_graph_to_events( test_url_a, test_graph_input_a) self.assertEqual(count_events_url_a, triples_count_a) actual_events_count_1 = lib_kbase.events_count() self.assertEqual(actual_events_count_1, triples_count_a) triples_count_b = 20 test_graph_input_b = _create_dummy_graph(triples_count_b) test_url_b = "http://dummy.xyz/url_b" count_events_url_b = lib_kbase.write_graph_to_events( test_url_b, test_graph_input_b) self.assertEqual(count_events_url_b, max(triples_count_a, triples_count_b)) actual_events_count_2 = lib_kbase.events_count() self.assertEqual(actual_events_count_2, count_events_url_b) triples_count_z = 100 test_graph_input_z = _create_dummy_graph(triples_count_z) count_events_url_z = lib_kbase.write_graph_to_events( None, test_graph_input_z) self.assertEqual( count_events_url_z, max(triples_count_a, triples_count_b, triples_count_z)) actual_events_count_3 = lib_kbase.events_count() self.assertEqual(count_events_url_z, count_events_url_z) test_graph_output_a = rdflib.Graph() count_events_output_a = lib_kbase.read_events_to_graph( test_url_a, test_graph_output_a) self.assertEqual(count_events_url_a, count_events_output_a) actual_events_count_3 = lib_kbase.events_count() self.assertEqual(actual_events_count_3, max(triples_count_b, triples_count_z)) test_graph_output_b = rdflib.Graph() count_events_output_b = lib_kbase.read_events_to_graph( test_url_b, test_graph_output_b) self.assertEqual(count_events_url_b, count_events_output_b) actual_events_count_4 = lib_kbase.events_count() self.assertEqual(actual_events_count_4, triples_count_z) test_graph_output_z = rdflib.Graph() count_events_output_z = lib_kbase.retrieve_all_events_to_graph_then_clear( test_graph_output_z) self.assertEqual(count_events_url_z, count_events_output_z) actual_events_count_5 = lib_kbase.events_count() self.assertEqual(actual_events_count_5, 0)
def test_sqlalchemy_nourl_events_count(self): """Just writes.""" graph_cleanup = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear(graph_cleanup) test_graph_input = rdflib.Graph().parse( "tests/input_test_data/test_events_tcp_sockets.xml") count_events = lib_kbase.write_graph_to_events(None, test_graph_input) self.assertEqual(count_events, 43) actual_events_count = lib_kbase.events_count() self.assertEqual(count_events, actual_events_count) graph_from_sql_alchemy = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear( graph_from_sql_alchemy) read_events_count = len(graph_from_sql_alchemy) self.assertEqual(read_events_count, actual_events_count)
def test_sqlalchemy_url_events_count(self): graph_cleanup = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear(graph_cleanup) test_graph_input = rdflib.Graph().parse( "tests/input_test_data/test_events_tcp_sockets.xml") test_url = "http://vps516494.ovh.net/Survol/survol/sources_types/Linux/tcp_sockets.py?xid=." count_events = lib_kbase.write_graph_to_events(test_url, test_graph_input) self.assertEqual(count_events, 43) actual_events_count = lib_kbase.events_count() self.assertEqual(count_events, actual_events_count) graph_from_sql_alchemy = rdflib.Graph() lib_kbase.retrieve_all_events_to_graph_then_clear( graph_from_sql_alchemy) read_events_count = len(graph_from_sql_alchemy) self.assertEqual(read_events_count, actual_events_count)