summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Car <nicholas.car@surroundaustralia.com>2021-08-28 18:23:23 +1000
committerGitHub <noreply@github.com>2021-08-28 18:23:23 +1000
commit78c313719c69a0684fc19b3b42eef02a7dad3b8b (patch)
treec5b9de4163c49393f5096dfd13eabfa482b7c9f6
parent9c457acada0ea6756e1e050beed053fb3297acc3 (diff)
downloadrdflib-78c313719c69a0684fc19b3b42eef02a7dad3b8b.tar.gz
test for Dataset __iter__
-rw-r--r--test/test_dataset.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/test/test_dataset.py b/test/test_dataset.py
index 734b58cd..4860b9c3 100644
--- a/test/test_dataset.py
+++ b/test/test_dataset.py
@@ -167,7 +167,36 @@ class DatasetTestCase(unittest.TestCase):
self.assertEqual(list(self.graph.objects(self.tarek, None)), [])
self.assertEqual(list(g1.objects(self.tarek, None)), [self.pizza])
-
+ def testIter(self):
+ """PR 1382: adds __iter__ to Dataset"""
+ d = Dataset()
+ uri_a = URIRef("https://example.com/a")
+ uri_b = URIRef("https://example.com/b")
+ uri_c = URIRef("https://example.com/c")
+ uri_d = URIRef("https://example.com/d")
+
+ d.add_graph(URIRef("https://example.com/g1"))
+ d.add((uri_a, uri_b, uri_c, URIRef("https://example.com/g1")))
+ d.add((uri_a, uri_b, uri_c, URIRef(
+ "https://example.com/g1"))) # pointless addition: duplicates above
+
+ d.add_graph(URIRef("https://example.com/g2"))
+ d.add((uri_a, uri_b, uri_c, URIRef("https://example.com/g2")))
+ d.add((uri_a, uri_b, uri_d, URIRef("https://example.com/g1"))) # new, uri_d
+
+ # traditional iterator
+ i_trad = 0
+ for t in d.quads((None, None, None)):
+ i_trad += 1
+
+ # new Dataset.__iter__ iterator
+ i_new = 0
+ for t in d:
+ i_new += 1
+
+ self.assertEqual(i_new, i_trad) # both should be 3
+
+
# dynamically create classes for each registered Store
pluginname = None