Package oort :: Package test :: Module test_display
[hide private]
[frames] | no frames]

Source Code for Module oort.test.test_display

 1  #======================================================================= 
 2  from rdflib import ConjunctiveGraph, Namespace, URIRef, RDF, RDFS 
 3  from oort.display import AspectBase, TemplateAspectBase 
 4  from oort.display import SubTypeAwareDisplay 
 5  #======================================================================= 
 6   
 7   
8 -def test_AspectBase(cfg={}, maker=None):
9 dummyType = object() 10 queries = {'a': 0} 11 if maker: 12 aspect = maker(dummyType, queries) 13 else: 14 class TestAspect(AspectBase): 15 def post_init_configure(self, cfg): 16 self.cfg = cfg
17 aspect = TestAspect(dummyType, queries) 18 globalQueries = {'a': 1, 'b': 2} 19 assert aspect.forType == dummyType 20 assert aspect.queries == queries 21 22 aspect.post_init_setup(globalQueries, cfg) 23 if not maker: 24 assert aspect.cfg == cfg 25 26 assert aspect.queries == {'a': 0, 'b': 2} 27 return aspect 28
29 -def test_TemplateAspectBase():
30 tbase = "TEMPLATE_BASE" 31 tname = "TEMPLATE" 32 cfg = {'templateBase': tbase} 33 def maker(forType, queries): 34 return TemplateAspectBase(forType, tname, queries)
35 aspect = test_AspectBase(cfg, maker) 36 assert aspect.templateBase == tbase 37 assert aspect.templateName == tname 38 39 40 ont = Namespace("urn:ont#") 41
42 -class TestSubTypeAwareDisplay:
43
44 - def setup(self):
45 typeAspects = {ont.T1: "T1 handler", ont.T5: "T5 handler"} 46 #typeAspects = {ont.T2: "handler for T2", ont.T3: "handler for T3"} 47 self.display = SubTypeAwareDisplay() 48 self.display.typeAspects = typeAspects
49
50 - def test_create_match_graph(self):
51 # TODO: verify test accuracy; then remake into test generator (see nose) 52 53 graph = ConjunctiveGraph() 54 55 def classAndSubClass(C1, C2): 56 graph.add( (C1, RDF.type, RDFS.Class) ) 57 graph.add( (C2, RDF.type, RDFS.Class) ) 58 graph.add( (C2, RDFS.subClassOf, C1) )
59 60 classAndSubClass(ont.T1, ont.T2) 61 classAndSubClass(ont.T2, ont.T3) 62 classAndSubClass(ont.T3, ont.T4) 63 classAndSubClass(ont.T4, ont.T5) 64 65 item1 = URIRef("urn:item1") 66 item2 = URIRef("urn:item2") 67 item3 = URIRef("urn:item3") 68 item4 = URIRef("urn:item4") 69 item5 = URIRef("urn:item5") 70 71 graph.add( (item1, RDF.type, ont.T1) ) 72 graph.add( (item2, RDF.type, ont.T2) ) 73 graph.add( (item3, RDF.type, ont.T3) ) 74 graph.add( (item4, RDF.type, ont.T4) ) 75 graph.add( (item5, RDF.type, ont.T5) ) 76 77 matchGraph = self.display.create_match_graph(graph) 78 79 def get_aspect(resource): 80 for rdfType in matchGraph.objects(resource, RDF.type): 81 return self.display.typeAspects.get(rdfType)
82 83 assert get_aspect(item1) == "T1 handler" 84 assert get_aspect(item2) == "T1 handler" 85 assert get_aspect(item3) == "T1 handler" 86 assert get_aspect(item4) == "T1 handler" 87 assert get_aspect(item5) == "T5 handler" 88