|
1
|
1 |
|
import json |
|
2
|
1 |
|
import datetime |
|
3
|
|
|
|
|
4
|
1 |
|
from ppp_datamodel import AbstractNode, Triple, Resource, Missing |
|
5
|
1 |
|
from ppp_datamodel import List, Union, Intersection |
|
6
|
1 |
|
from ppp_datamodel import exceptions |
|
7
|
|
|
|
|
8
|
1 |
|
from unittest import TestCase |
|
9
|
|
|
|
|
10
|
1 |
|
T = Triple |
|
11
|
1 |
|
R = Resource |
|
12
|
1 |
|
M = Missing |
|
13
|
|
|
|
|
14
|
1 |
|
class BaseAbstractNodeTests(TestCase): |
|
15
|
1 |
|
def testPredicateSet(self): |
|
16
|
1 |
|
self.assertEqual(T(M(), R('foo'), M()).predicate_set, |
|
17
|
|
|
{R('foo')}) |
|
18
|
1 |
|
self.assertEqual(T(M(), List([R('foo'), R('bar')]), M()).predicate_set, |
|
19
|
|
|
{R('foo'), R('bar')}) |
|
20
|
|
|
|
|
21
|
1 |
|
def testInversePredicateEmpty(self): |
|
22
|
1 |
|
self.assertEqual(T(M(), M(), M()).inverse_predicate, List([])) |
|
23
|
1 |
|
self.assertEqual(T(M(), M(), M(), M()).inverse_predicate, M()) |
|
24
|
1 |
|
self.assertEqual(T(M(), M(), M()), |
|
25
|
|
|
{'type': 'triple', 'object': {'type': 'missing'}, |
|
26
|
|
|
'subject': {'type': 'missing'}, |
|
27
|
|
|
'predicate': {'type': 'missing'}}) |
|
28
|
1 |
|
self.assertEqual(T(M(), M(), M(), M()), |
|
29
|
|
|
{'type': 'triple', 'object': {'type': 'missing'}, |
|
30
|
|
|
'subject': {'type': 'missing'}, |
|
31
|
|
|
'predicate': {'type': 'missing'}, |
|
32
|
|
|
'inverse-predicate': {'type': 'missing'}}) |
|
33
|
|
|
|
|
34
|
1 |
|
def testInverse(self): |
|
35
|
1 |
|
self.assertEqual(T(R('foo'), R('bar'), R('baz'), R('qux')).inverse(), |
|
36
|
|
|
T(R('baz'), R('qux'), R('foo'), R('bar'))) |
|
37
|
1 |
|
self.assertEqual(T(R('foo'), R('bar'), R('baz')).inverse(), |
|
38
|
|
|
T(R('baz'), List([]), R('foo'), R('bar'))) |
|
39
|
|
|
|