From 604abbaf510731ba964a09a7449e5d870abb3dd9 Mon Sep 17 00:00:00 2001 From: Iwan Aucamp Date: Mon, 18 Apr 2022 15:41:20 +0200 Subject: [PATCH] Remove testing and debug code from rdflib This patch removes code from `rdflib/` that does not seem like it belongs in `rdflib/`, most of it is related to doctest, some of it belongs in `test/` and was moved to `test/test_misc/test_collection.py`, and yet more of it seems to just be there for debugging purposes, though it would possibly be better to put that in a separate place if it is needed again or to debug using tests if possible. Other changes: - Removed an invocation of `rdflib.util.test` from `test_util.py`. This seems like an attempt to invoke doctest however pytest takes care of that so this is not needed. --- rdflib/collection.py | 46 --------------------- rdflib/events.py | 10 ----- rdflib/extras/infixowl.py | 10 ----- rdflib/graph.py | 10 ----- rdflib/paths.py | 5 +-- rdflib/plugins/parsers/notation3.py | 31 -------------- rdflib/plugins/sparql/algebra.py | 18 -------- rdflib/plugins/sparql/parser.py | 14 ------- rdflib/plugins/sparql/parserutils.py | 14 ------- rdflib/plugins/sparql/results/tsvresults.py | 9 ---- rdflib/term.py | 6 --- rdflib/util.py | 20 --------- test/test_misc/test_collection.py | 41 ++++++++++++++++++ test/test_util.py | 3 -- 14 files changed, 42 insertions(+), 195 deletions(-) create mode 100644 test/test_misc/test_collection.py diff --git a/rdflib/collection.py b/rdflib/collection.py index 6c4e655f7..1286a948f 100644 --- a/rdflib/collection.py +++ b/rdflib/collection.py @@ -256,49 +256,3 @@ def clear(self): graph.remove((container, RDF.rest, None)) container = rest return self - - -def test(): - import doctest - - doctest.testmod() - - -if __name__ == "__main__": - test() - - from rdflib import Graph - - g = Graph() - - c = Collection(g, BNode()) - - assert len(c) == 0 - - c = Collection(g, BNode(), [Literal("1"), Literal("2"), Literal("3"), Literal("4")]) - - assert len(c) == 4 - - assert c[1] == Literal("2"), c[1] - - del c[1] - - assert list(c) == [Literal("1"), Literal("3"), Literal("4")], list(c) - - try: - del c[500] - except IndexError: - pass - - c.append(Literal("5")) - - print(list(c)) - - for i in c: - print(i) - - del c[3] - - c.clear() - - assert len(c) == 0 diff --git a/rdflib/events.py b/rdflib/events.py index 73afb7868..e973c3082 100644 --- a/rdflib/events.py +++ b/rdflib/events.py @@ -85,13 +85,3 @@ def dispatch(self, event): raise ValueError("unknown event type: %s" % type(event)) for l_ in lst: l_(event) - - -def test(): - import doctest - - doctest.testmod() - - -if __name__ == "__main__": - test() diff --git a/rdflib/extras/infixowl.py b/rdflib/extras/infixowl.py index 43e6f25bc..eeb0e1c10 100644 --- a/rdflib/extras/infixowl.py +++ b/rdflib/extras/infixowl.py @@ -2183,13 +2183,3 @@ def CommonNSBindings(graph, additionalNS={}): for prefix, uri in list(additionalNS.items()): namespace_manager.bind(prefix, uri, override=False) graph.namespace_manager = namespace_manager - - -def test(): - import doctest - - doctest.testmod() - - -if __name__ == "__main__": - test() diff --git a/rdflib/graph.py b/rdflib/graph.py index 2ae9a062e..82ec8323a 100644 --- a/rdflib/graph.py +++ b/rdflib/graph.py @@ -2470,13 +2470,3 @@ def __enter__(self): def __exit__(self, *exc): if exc[0] is None: self.graph.addN(self.batch) - - -def test(): - import doctest - - doctest.testmod() - - -if __name__ == "__main__": - test() diff --git a/rdflib/paths.py b/rdflib/paths.py index 2efe3f858..8e2c60f19 100644 --- a/rdflib/paths.py +++ b/rdflib/paths.py @@ -487,10 +487,7 @@ def neg_path(p): if __name__ == "__main__": - - import doctest - - doctest.testmod() + pass else: # monkey patch # (these cannot be directly in terms.py diff --git a/rdflib/plugins/parsers/notation3.py b/rdflib/plugins/parsers/notation3.py index 0b74186ad..8b6a43dd5 100755 --- a/rdflib/plugins/parsers/notation3.py +++ b/rdflib/plugins/parsers/notation3.py @@ -1975,34 +1975,3 @@ def parse(self, source, graph, encoding="utf-8"): conj_graph.namespace_manager = graph.namespace_manager TurtleParser.parse(self, source, conj_graph, encoding, turtle=False) - - -def _test(): # pragma: no cover - import doctest - - doctest.testmod() - - -def main(): # pragma: no cover - g = ConjunctiveGraph() - - sink = RDFSink(g) - base_uri = "file://" + os.path.join(os.getcwd(), sys.argv[1]) - - p = SinkParser(sink, baseURI=base_uri) - p._bindings[""] = p._baseURI + "#" - p.startDoc() - - f = open(sys.argv[1], "rb") - rdbytes = f.read() - f.close() - - p.feed(rdbytes) - p.endDoc() - for t in g.quads((None, None, None)): - - print(t) - - -if __name__ == "__main__": - main() diff --git a/rdflib/plugins/sparql/algebra.py b/rdflib/plugins/sparql/algebra.py index 91c4a9e84..5d7dac330 100644 --- a/rdflib/plugins/sparql/algebra.py +++ b/rdflib/plugins/sparql/algebra.py @@ -1464,21 +1464,3 @@ def pp(p, ind=" "): # it's update, just a list for x in q: pp(x) - - -if __name__ == "__main__": - import os.path - import sys - - from rdflib.plugins.sparql import parser - - if os.path.exists(sys.argv[1]): - q = open(sys.argv[1]).read() - else: - q = sys.argv[1] - - pq = parser.parseQuery(q) - print(pq) - print("--------") - tq = translateQuery(pq) - pprintAlgebra(tq) diff --git a/rdflib/plugins/sparql/parser.py b/rdflib/plugins/sparql/parser.py index 08c3483e9..f413dd92c 100644 --- a/rdflib/plugins/sparql/parser.py +++ b/rdflib/plugins/sparql/parser.py @@ -1553,17 +1553,3 @@ def parseUpdate(q): q = expandUnicodeEscapes(q) return UpdateUnit.parseString(q, parseAll=True)[0] - - -if __name__ == "__main__": - import sys - - DEBUG = True - try: - q = Query.parseString(sys.argv[1]) - print("\nSyntax Tree:\n") - print(q) - except ParseException as err: - print(err.line) - print(" " * (err.column - 1) + "^") - print(err) diff --git a/rdflib/plugins/sparql/parserutils.py b/rdflib/plugins/sparql/parserutils.py index 3c75e3245..5753d6fd6 100644 --- a/rdflib/plugins/sparql/parserutils.py +++ b/rdflib/plugins/sparql/parserutils.py @@ -269,19 +269,5 @@ def prettify_parsetree(t, indent="", depth=0): return "".join(out) -if __name__ == "__main__": - import sys - - from pyparsing import Word, nums - - Number = Word(nums) - Number.setParseAction(lambda x: int(x[0])) - Plus = Comp("plus", Param("a", Number) + "+" + Param("b", Number)) - Plus.setEvalFn(lambda self, ctx: self.a + self.b) - - r = Plus.parseString(sys.argv[1]) - print(r) - print(r[0].eval({})) - # hurrah for circular imports from rdflib.plugins.sparql.sparql import NotBoundError, SPARQLError diff --git a/rdflib/plugins/sparql/results/tsvresults.py b/rdflib/plugins/sparql/results/tsvresults.py index 02b872e4a..c6a186baa 100644 --- a/rdflib/plugins/sparql/results/tsvresults.py +++ b/rdflib/plugins/sparql/results/tsvresults.py @@ -95,12 +95,3 @@ def convertTerm(self, t): raise Exception("I dont know how to handle this: %s" % (t,)) else: return t - - -if __name__ == "__main__": - import sys - - r = Result.parse(source=sys.argv[1], format="tsv") - print(r.vars) - print(r.bindings) - # print r.serialize(format='json') diff --git a/rdflib/term.py b/rdflib/term.py index bd08a670b..c0ea4a286 100644 --- a/rdflib/term.py +++ b/rdflib/term.py @@ -2133,9 +2133,3 @@ def recurse(): else: # should not happen, in fact raise Exception("I dont know how to compare XML Node type: %s" % node.nodeType) - - -if __name__ == "__main__": - import doctest - - doctest.testmod() diff --git a/rdflib/util.py b/rdflib/util.py index f05b2b736..7be1674ff 100644 --- a/rdflib/util.py +++ b/rdflib/util.py @@ -452,23 +452,3 @@ def _coalesce(*args: Optional[_AnyT]) -> Optional[_AnyT]: if arg is not None: return arg return None - - -def test(): - import doctest - - doctest.testmod() - - -if __name__ == "__main__": - # try to make the tests work outside of the time zone they were written in - # import os, time - # os.environ['TZ'] = 'US/Pacific' - # try: - # time.tzset() - # except AttributeError, e: - # print e - # pass - # tzset missing! see - # http://mail.python.org/pipermail/python-dev/2003-April/034480.html - test() # pragma: no cover diff --git a/test/test_misc/test_collection.py b/test/test_misc/test_collection.py new file mode 100644 index 000000000..5e19719d6 --- /dev/null +++ b/test/test_misc/test_collection.py @@ -0,0 +1,41 @@ +import logging + +import pytest + +from rdflib import BNode, Graph, Literal +from rdflib.collection import Collection + + +def test_scenario() -> None: + # Taken from https://github.com/RDFLib/rdflib/blob/8a92d3565bf2e502a7c4cadb34b29db72c89d623/rdflib/collection.py#L272-L304 + g = Graph() + + c = Collection(g, BNode()) + + assert len(c) == 0 + + c = Collection(g, BNode(), [Literal("1"), Literal("2"), Literal("3"), Literal("4")]) + + assert len(c) == 4 + + assert c[1] == Literal("2"), c[1] + + del c[1] + + assert list(c) == [Literal("1"), Literal("3"), Literal("4")], list(c) + + with pytest.raises(IndexError): + del c[500] + + c.append(Literal("5")) + + logging.debug("list(c) = %s", list(c)) + + for i in c: + logging.debug("i = %s", i) + + del c[3] + + c.clear() + + assert len(c) == 0 diff --git a/test/test_util.py b/test/test_util.py index 40ebbb674..b9937ca81 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -68,9 +68,6 @@ def test_util_uniq(self): r = util.uniq(base + base, strip=True) assert sorted(r) == sorted(base) - def test_coverage_dodge(self): - util.test() - class TestUtilDateTime: def setup_method(self):