diff env/lib/python3.7/site-packages/prov/tests/test_rdf.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/prov/tests/test_rdf.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-from __future__ import (absolute_import, division, print_function,
-                        unicode_literals)
-
-import unittest
-from prov.model import ProvDocument
-from prov.tests.utility import RoundTripTestCase
-from prov.tests.test_model import (TestStatementsBase,
-                                   TestAttributesBase, TestQualifiedNamesBase)
-import os
-from glob import glob
-import logging
-logger = logging.getLogger(__name__)
-
-from prov.tests import examples
-import prov.model as pm
-
-import rdflib as rl
-from rdflib.compare import graph_diff
-from io import BytesIO, StringIO
-
-
-def find_diff(g_rdf, g0_rdf):
-    graphs_equal = True
-    in_both, in_first, in_second = graph_diff(g_rdf, g0_rdf)
-    g1 = sorted(in_first.serialize(format='nt').splitlines())[1:]
-    g2 = sorted(in_second.serialize(format='nt').splitlines())[1:]
-    # Compare literals
-    if len(g1) != len(g2):
-        graphs_equal = False
-    matching_indices = [[], []]
-    for idx in range(len(g1)):
-        g1_stmt = list(rl.ConjunctiveGraph().parse(BytesIO(g1[idx]),
-                                                   format='nt'))[0]
-        match_found = False
-        for idx2 in range(len(g2)):
-            if idx2 in matching_indices[1]:
-                continue
-            g2_stmt = list(rl.ConjunctiveGraph().parse(BytesIO(g2[idx2]),
-                                                       format='nt'))[0]
-            try:
-                all_match = all([g1_stmt[i].eq(g2_stmt[i]) for i in range(3)])
-            except TypeError as e:
-                #logger.info(e, g1_stmt, g2_stmt)
-                all_match = False
-            if all_match:
-                matching_indices[0].append(idx)
-                matching_indices[1].append(idx2)
-                match_found = True
-                break
-        if not match_found:
-            graphs_equal = False
-    in_first2 = rl.ConjunctiveGraph()
-    for idx in range(len(g1)):
-        if idx in matching_indices[0]:
-            in_both.parse(BytesIO(g1[idx]), format='nt')
-        else:
-            in_first2.parse(BytesIO(g1[idx]), format='nt')
-    in_second2 = rl.ConjunctiveGraph()
-    for idx in range(len(g2)):
-        if not idx in matching_indices[1]:
-            in_second2.parse(BytesIO(g2[idx]), format='nt')
-    #logger.info(in_first2)
-    #logger.info(in_second2)
-    return graphs_equal, in_both, in_first2, in_second2
-
-
-class TestExamplesBase(object):
-    """This is the base class for testing support for all the examples provided
-    in prov.tests.examples.
-    It is not runnable and needs to be included in a subclass of
-    RoundTripTestCase.
-    """
-    def test_all_examples(self):
-        counter = 0
-        for name, graph in examples.tests:
-            if name in ['datatypes']:
-                logger.info('%d. Skipping the %s example', counter, name)
-                continue
-            counter += 1
-            logger.info('%d. Testing the %s example', counter, name)
-            g = graph()
-            self.do_tests(g)
-
-
-class TestJSONExamplesBase(object):
-    """This is the base class for testing support for all the examples provided
-    in prov.tests.examples.
-    It is not runnable and needs to be included in a subclass of
-    RoundTripTestCase.
-    """
-    def test_all_examples(self):
-        counter = 0
-        for name, graph in examples.tests:
-            if name in ['datatypes']:
-                logger.info('%d. Skipping the %s example', counter, name)
-                continue
-            counter += 1
-            logger.info('%d. Testing the %s example', counter, name)
-            g = graph()
-            self.do_tests(g)
-
-
-class TestStatementsBase2(TestStatementsBase):
-    @unittest.expectedFailure
-    def test_scruffy_end_1(self):
-        TestStatementsBase.test_scruffy_end_1()
-    @unittest.expectedFailure
-    def test_scruffy_end_2(self):
-        TestStatementsBase.test_scruffy_end_2()
-    @unittest.expectedFailure
-    def test_scruffy_end_3(self):
-        TestStatementsBase.test_scruffy_end_3()
-    @unittest.expectedFailure
-    def test_scruffy_end_4(self):
-        TestStatementsBase.test_scruffy_end_4()
-    @unittest.expectedFailure
-    def test_scruffy_generation_1(self):
-        TestStatementsBase.test_scruffy_generation_1()
-    @unittest.expectedFailure
-    def test_scruffy_generation_2(self):
-        TestStatementsBase.test_scruffy_generation_2()
-    @unittest.expectedFailure
-    def test_scruffy_invalidation_1(self):
-        TestStatementsBase.test_scruffy_invalidation_1()
-    @unittest.expectedFailure
-    def test_scruffy_invalidation_2(self):
-        TestStatementsBase.test_scruffy_invalidation_2()
-    @unittest.expectedFailure
-    def test_scruffy_start_1(self):
-        TestStatementsBase.test_scruffy_start_1()
-    @unittest.expectedFailure
-    def test_scruffy_start_2(self):
-        TestStatementsBase.test_scruffy_start_2()
-    @unittest.expectedFailure
-    def test_scruffy_start_3(self):
-        TestStatementsBase.test_scruffy_start_3()
-    @unittest.expectedFailure
-    def test_scruffy_start_4(self):
-        TestStatementsBase.test_scruffy_start_4()
-    @unittest.expectedFailure
-    def test_scruffy_usage_1(self):
-        TestStatementsBase.test_scruffy_usage_1()
-    @unittest.expectedFailure
-    def test_scruffy_usage_2(self):
-        TestStatementsBase.test_scruffy_usage_2()
-
-
-class TestAttributesBase2(TestAttributesBase):
-    @unittest.expectedFailure
-    def test_entity_with_multiple_attribute(self):
-        TestAttributesBase.test_entity_with_multiple_attribute()
-    @unittest.expectedFailure
-    def test_entity_with_multiple_value_attribute(self):
-        TestAttributesBase.test_entity_with_multiple_value_attribute()
-    @unittest.expectedFailure
-    def test_entity_with_one_type_attribute_8(self):
-        TestAttributesBase.test_entity_with_one_type_attribute_8()
-
-
-class AllTestsBase(TestExamplesBase,
-                   TestStatementsBase2,
-                   TestQualifiedNamesBase,
-                   TestAttributesBase2
-                   ):
-    """This is a test to include all available tests.
-    """
-    pass
-
-
-class TestRDFSerializer(unittest.TestCase):
-    def test_decoding_unicode_value(self):
-        unicode_char = u'\u2019'
-        rdf_content = u'''
-@prefix ex: <http://www.example.org/> .
-@prefix prov: <http://www.w3.org/ns/prov#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xml: <http://www.w3.org/XML/1998/namespace> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-
-    ex:unicode_char a prov:Entity ;
-        rdfs:label "%s"^^xsd:string .
-''' % unicode_char
-        prov_doc = ProvDocument.deserialize(content=rdf_content,
-                                            format='rdf', rdf_format='turtle')
-        e1 = prov_doc.get_record('ex:unicode_char')[0]
-        self.assertIn(unicode_char, e1.get_attribute('prov:label'))
-
-    def test_json_to_ttl_match(self):
-        json_files = sorted(
-            glob(os.path.join(os.path.dirname(__file__), 'json', '*.json')))
-
-        # invalid round trip files
-        skip = list(range(352, 380))
-
-        # invalid literal set representation e.g., set((1, True))
-        skip_match = [5, 6, 7, 8, 15, 27, 28, 29, 75, 76, 77, 78, 79, 80, 260,
-                      261, 262, 263, 264,
-                      306, 313, 315, 317, 322, 323, 324, 325, 330, 332, 344,
-                      346, 382, 389, 395, 397,
-                      ]
-        errors = []
-        for idx, fname in enumerate(json_files):
-            _, ttl_file = os.path.split(fname)
-            ttl_file = os.path.join(os.path.dirname(__file__), 'rdf',
-                                    ttl_file.replace('json', 'ttl'))
-            try:
-                g = pm.ProvDocument.deserialize(fname)
-                if len(g.bundles) == 0:
-                    format = 'turtle'
-                else:
-                    format = 'trig'
-                if format == 'trig':
-                    ttl_file = ttl_file.replace('ttl', 'trig')
-
-                with open(ttl_file, 'rb') as fp:
-                    g_rdf = rl.ConjunctiveGraph().parse(fp, format=format)
-                g0_rdf = rl.ConjunctiveGraph().parse(
-                    StringIO(g.serialize(format='rdf', rdf_format=format)),
-                    format=format)
-                if idx not in skip_match:
-                    match, _, in_first, in_second = find_diff(g_rdf, g0_rdf)
-                    self.assertTrue(match)
-                else:
-                    logger.info('Skipping match: %s' % fname)
-                if idx in skip:
-                    logger.info('Skipping deserialization: %s' % fname)
-                    continue
-                g1 = pm.ProvDocument.deserialize(
-                    content=g.serialize(format='rdf', rdf_format=format),
-                    format='rdf', rdf_format=format)
-            except Exception as e:
-                #logger.info(e)
-                errors.append((e, idx, fname, in_first, in_second))
-        self.assertFalse(errors)
-
-
-class RoundTripRDFTests(RoundTripTestCase, AllTestsBase):
-    FORMAT = 'rdf'
-
-if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    for method in dir(TestRDFSerializer):
-       if method.startswith("test"):
-          suite.addTest(TestRDFSerializer(method))
-    unittest.TextTestRunner().run(suite)
\ No newline at end of file