Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
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)
Beispiel #4
0
    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)
Beispiel #5
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)
Beispiel #6
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)
Beispiel #7
0
    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)
Beispiel #8
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)
Beispiel #9
0
    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)