summaryrefslogtreecommitdiff
path: root/tests/functional-tests/02-sparql-bugs.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional-tests/02-sparql-bugs.py')
-rwxr-xr-xtests/functional-tests/02-sparql-bugs.py215
1 files changed, 106 insertions, 109 deletions
diff --git a/tests/functional-tests/02-sparql-bugs.py b/tests/functional-tests/02-sparql-bugs.py
index c0e4928cc..dc6ba1812 100755
--- a/tests/functional-tests/02-sparql-bugs.py
+++ b/tests/functional-tests/02-sparql-bugs.py
@@ -21,7 +21,9 @@
"""
Peculiar Sparql behavour reported in bugs
"""
-import sys,os,dbus
+import sys
+import os
+import dbus
import unittest
import time
import random
@@ -37,11 +39,11 @@ from common.utils.expectedFailure import expectedFailureBug
class TrackerStoreSparqlBugsTests (CommonTrackerStoreTest):
- def test_01_NB217566_union_exists_filter (self):
- """
- NB217566: Use of UNION in EXISTS in a FILTER breaks filtering
- """
- content = """
+ def test_01_NB217566_union_exists_filter(self):
+ """
+ NB217566: Use of UNION in EXISTS in a FILTER breaks filtering
+ """
+ content = """
INSERT {
<contact:affiliation> a nco:Affiliation ;
nco:hasPhoneNumber
@@ -50,10 +52,10 @@ class TrackerStoreSparqlBugsTests (CommonTrackerStoreTest):
nco:hasAffiliation <contact:affiliation> .
}
"""
- self.tracker.update (content)
+ self.tracker.update(content)
- """ Check that these 3 queries return the same results """
- query1 = """
+ """ Check that these 3 queries return the same results """
+ query1 = """
SELECT ?_contact ?n WHERE {
?_contact a nco:PersonContact .
{
@@ -80,7 +82,7 @@ class TrackerStoreSparqlBugsTests (CommonTrackerStoreTest):
}
"""
- query2 = """
+ query2 = """
SELECT ?_contact ?n WHERE {
?_contact a nco:PersonContact .
{
@@ -95,7 +97,7 @@ class TrackerStoreSparqlBugsTests (CommonTrackerStoreTest):
}
"""
- query3 = """
+ query3 = """
SELECT ?_contact ?n WHERE {
?_contact a nco:PersonContact .
{
@@ -117,142 +119,137 @@ class TrackerStoreSparqlBugsTests (CommonTrackerStoreTest):
}
"""
- results1 = self.tracker.query (query1)
- print "1", results1
- self.assertEquals (len (results1), 1)
- self.assertEquals (len (results1[0]), 2)
- self.assertEquals (results1[0][0], "contact:test")
- self.assertEquals (results1[0][1], "98653")
-
- results2 = self.tracker.query (query2)
- print "2", results2
- self.assertEquals (len (results2), 1)
- self.assertEquals (len (results2[0]), 2)
- self.assertEquals (results2[0][0], "contact:test")
- self.assertEquals (results2[0][1], "98653")
-
-
- results3 = self.tracker.query (query3)
- print "3", results3
- self.assertEquals (len (results3), 1)
- self.assertEquals (len (results3[0]), 2)
- self.assertEquals (results3[0][0], "contact:test")
- self.assertEquals (results3[0][1], "98653")
-
- """ Clean the DB """
- delete = """
+ results1 = self.tracker.query(query1)
+ print "1", results1
+ self.assertEquals(len(results1), 1)
+ self.assertEquals(len(results1[0]), 2)
+ self.assertEquals(results1[0][0], "contact:test")
+ self.assertEquals(results1[0][1], "98653")
+
+ results2 = self.tracker.query(query2)
+ print "2", results2
+ self.assertEquals(len(results2), 1)
+ self.assertEquals(len(results2[0]), 2)
+ self.assertEquals(results2[0][0], "contact:test")
+ self.assertEquals(results2[0][1], "98653")
+
+ results3 = self.tracker.query(query3)
+ print "3", results3
+ self.assertEquals(len(results3), 1)
+ self.assertEquals(len(results3[0]), 2)
+ self.assertEquals(results3[0][0], "contact:test")
+ self.assertEquals(results3[0][1], "98653")
+
+ """ Clean the DB """
+ delete = """
DELETE { <contact:affiliation> a rdfs:Resource .
<contact:test> a rdfs:Resource .
}
- """
-
- def test_02_NB217636_delete_statements (self):
- """
- Bug 217636 - Not able to delete contact using
- DELETE {<contact:556> ?p ?v} WHERE {<contact:556> ?p ?v}.
"""
- data = """ INSERT {
+
+ def test_02_NB217636_delete_statements(self):
+ """
+ Bug 217636 - Not able to delete contact using
+ DELETE {<contact:556> ?p ?v} WHERE {<contact:556> ?p ?v}.
+ """
+ data = """ INSERT {
<contact:test-nb217636> a nco:PersonContact ;
nco:fullname 'Testing bug 217636'
}
"""
- self.tracker.update (data)
+ self.tracker.update(data)
- results = self.tracker.query ("""
+ results = self.tracker.query ("""
SELECT ?u WHERE {
?u a nco:PersonContact ;
nco:fullname 'Testing bug 217636' .
}
""")
- self.assertEquals (len (results), 1)
- self.assertEquals (len (results[0]), 1)
- self.assertEquals (results[0][0], "contact:test-nb217636")
+ self.assertEquals(len(results), 1)
+ self.assertEquals(len(results[0]), 1)
+ self.assertEquals(results[0][0], "contact:test-nb217636")
- problematic_delete = """
+ problematic_delete = """
DELETE { <contact:test-nb217636> ?p ?v }
WHERE { <contact:test-nb217636> ?p ?v }
"""
- self.tracker.update (problematic_delete)
+ self.tracker.update(problematic_delete)
- results_after = self.tracker.query ("""
+ results_after = self.tracker.query ("""
SELECT ?u WHERE {
?u a nco:PersonContact ;
nco:fullname 'Testing bug 217636' .
}
""")
- self.assertEquals (len (results_after), 0)
+ self.assertEquals(len(results_after), 0)
- # Safe deletion
- delete = """
+ # Safe deletion
+ delete = """
DELETE { <contact:test-nb217636> a rdfs:Resource. }
"""
- self.tracker.update (delete)
-
-
- def test_03_NB222645_non_existing_class_resource (self):
- """
- NB222645 - Inserting a resource using an non-existing class, doesn't rollback completely
- """
- query = "SELECT tracker:modified (?u) ?u WHERE { ?u a nco:Contact }"
- original_data = self.tracker.query (query)
-
- wrong_insert = "INSERT { <test://nb222645-wrong-class-contact> a nco:IMContact. } "
- self.assertRaises (dbus.DBusException,
- self.tracker.update,
- wrong_insert)
-
- new_data = self.tracker.query (query)
- self.assertEquals (len (original_data), len (new_data))
- # We could be more picky, but checking there are the same number of results
- # is enough to verify the problem described in the bug.
-
-
- def test_04_NB224760_too_long_filter (self):
- """
- NB#224760 - 'too many sql variables' when filter ?sth in (long list)
- """
- query = "SELECT tracker:id (?m) ?m WHERE { ?m a rdfs:Resource. FILTER (tracker:id (?m) in (%s)) }"
- numbers = ",".join ([str (i) for i in range (1000, 2000)])
-
- results = self.tracker.query (query % (numbers))
-
- # The query will raise an exception is the bug is there
- # If we are here, everything is fine.
- self.assertIsNotNone (results)
-
- def test_05_NB281201_insert_replace_and_superproperties (self):
- """
- Bug 281201 - INSERT OR REPLACE does not delete previous values for superproperties
- """
- content = """INSERT { <test:resource:nb281201> a nie:InformationElement;
+ self.tracker.update(delete)
+
+ def test_03_NB222645_non_existing_class_resource(self):
+ """
+ NB222645 - Inserting a resource using an non-existing class, doesn't rollback completely
+ """
+ query = "SELECT tracker:modified (?u) ?u WHERE { ?u a nco:Contact }"
+ original_data = self.tracker.query(query)
+
+ wrong_insert = "INSERT { <test://nb222645-wrong-class-contact> a nco:IMContact. } "
+ self.assertRaises(dbus.DBusException,
+ self.tracker.update,
+ wrong_insert)
+
+ new_data = self.tracker.query(query)
+ self.assertEquals(len(original_data), len(new_data))
+ # We could be more picky, but checking there are the same number of results
+ # is enough to verify the problem described in the bug.
+
+ def test_04_NB224760_too_long_filter(self):
+ """
+ NB#224760 - 'too many sql variables' when filter ?sth in (long list)
+ """
+ query = "SELECT tracker:id (?m) ?m WHERE { ?m a rdfs:Resource. FILTER (tracker:id (?m) in (%s)) }"
+ numbers = ",".join([str(i) for i in range(1000, 2000)])
+
+ results = self.tracker.query(query % (numbers))
+
+ # The query will raise an exception is the bug is there
+ # If we are here, everything is fine.
+ self.assertIsNotNone(results)
+
+ def test_05_NB281201_insert_replace_and_superproperties(self):
+ """
+ Bug 281201 - INSERT OR REPLACE does not delete previous values for superproperties
+ """
+ content = """INSERT { <test:resource:nb281201> a nie:InformationElement;
nie:contentLastModified '2011-09-27T11:11:11Z'. }"""
- self.tracker.update (content)
+ self.tracker.update(content)
- query = """SELECT ?contentLM ?nieIEDate ?dcDate {
+ query = """SELECT ?contentLM ?nieIEDate ?dcDate {
<test:resource:nb281201> dc:date ?dcDate ;
nie:informationElementDate ?nieIEDate ;
nie:contentLastModified ?contentLM .
}"""
- result = self.tracker.query (query)
- # Only one row of results, and the 3 colums have the same value
- self.assertEquals (len (result), 1)
- self.assertEquals (result[0][0], result[0][1])
- self.assertEquals (result[0][1], result[0][2])
+ result = self.tracker.query(query)
+ # Only one row of results, and the 3 colums have the same value
+ self.assertEquals(len(result), 1)
+ self.assertEquals(result[0][0], result[0][1])
+ self.assertEquals(result[0][1], result[0][2])
- problematic = """INSERT OR REPLACE {
+ problematic = """INSERT OR REPLACE {
<test:resource:nb281201> nie:contentLastModified '2012-10-28T12:12:12'
}"""
-
- self.tracker.update (problematic)
- result = self.tracker.query (query)
- # Only one row of results, and the 3 colums have the same value
- self.assertEquals (len (result), 1)
- self.assertEquals (result[0][0], result[0][1])
- self.assertEquals (result[0][1], result[0][2])
-
+ self.tracker.update(problematic)
+ result = self.tracker.query(query)
+ # Only one row of results, and the 3 colums have the same value
+ self.assertEquals(len(result), 1)
+ self.assertEquals(result[0][0], result[0][1])
+ self.assertEquals(result[0][1], result[0][2])
if __name__ == "__main__":
- ut.main()
+ ut.main()