|
1 <?xml version="1.0" encoding="UTF-8"?> |
|
2 <ruleml xmlns="http://www.s60.com/xml/ruleml/3"> |
|
3 <!-- This RuleML is used when running the integration test, it is not used in unit tests --> |
|
4 <phase name="post"/> |
|
5 <rule>{% check_uses_layer() %} configures "foo" = "baar" |
|
6 </rule> |
|
7 <eval_globals> |
|
8 import os |
|
9 |
|
10 from ruleplugin.evals import layer_utils |
|
11 |
|
12 def check_uses_layer(): |
|
13 results = [('Layer', 'Tag', 'Expected', 'Actual', 'Outcome')] |
|
14 |
|
15 def check(layer_index, tag, expected): |
|
16 layer = ruleml.configuration.get_configuration_by_index(layer_index) |
|
17 result = layer_utils.layers_used(ruleml.configuration, [layer], {'target' : [tag]}) |
|
18 |
|
19 if result == expected: outcome = "OK" |
|
20 else: outcome = "FAIL" |
|
21 |
|
22 results.append((layer.get_path(), tag, expected, result, outcome)) |
|
23 |
|
24 # BASE |
|
25 check(layer_index = 0, tag = 'uda', expected = True) |
|
26 check(layer_index = 0, tag = 'rofs3', expected = True) |
|
27 check(layer_index = 0, tag = 'rofs2', expected = True) |
|
28 |
|
29 # LAYER 1 |
|
30 check(layer_index = 1, tag = 'uda', expected = True) |
|
31 check(layer_index = 1, tag = 'rofs3', expected = False) |
|
32 check(layer_index = 1, tag = 'rofs2', expected = False) |
|
33 |
|
34 # LAYER 2 |
|
35 check(layer_index = 2, tag = 'uda', expected = False) |
|
36 check(layer_index = 2, tag = 'rofs3', expected = False) |
|
37 check(layer_index = 2, tag = 'rofs2', expected = True) |
|
38 |
|
39 # LAYER 3 |
|
40 check(layer_index = 3, tag = 'uda', expected = False) |
|
41 check(layer_index = 3, tag = 'rofs3', expected = False) |
|
42 check(layer_index = 3, tag = 'rofs2', expected = False) |
|
43 |
|
44 # LAYER 4 |
|
45 check(layer_index = 4, tag = 'uda', expected = True) |
|
46 check(layer_index = 4, tag = 'rofs3', expected = False) |
|
47 check(layer_index = 4, tag = 'rofs2', expected = False) |
|
48 |
|
49 # LAYER 5 |
|
50 check(layer_index = 5, tag = 'uda', expected = False) |
|
51 check(layer_index = 5, tag = 'rofs3', expected = True) |
|
52 check(layer_index = 5, tag = 'rofs2', expected = False) |
|
53 |
|
54 # LAYER 6 |
|
55 check(layer_index = 6, tag = 'uda', expected = True) |
|
56 check(layer_index = 6, tag = 'rofs3', expected = True) |
|
57 check(layer_index = 6, tag = 'rofs2', expected = False) |
|
58 |
|
59 # LAYER 7 |
|
60 check(layer_index = 7, tag = 'uda', expected = True) |
|
61 check(layer_index = 7, tag = 'rofs3', expected = False) |
|
62 check(layer_index = 7, tag = 'rofs2', expected = False) |
|
63 |
|
64 # LAYER 8 |
|
65 check(layer_index = 8, tag = 'uda', expected = False) |
|
66 check(layer_index = 8, tag = 'rofs3', expected = False) |
|
67 check(layer_index = 8, tag = 'rofs2', expected = False) |
|
68 |
|
69 # LAYER 9 |
|
70 check(layer_index = 9, tag = 'uda', expected = True) |
|
71 check(layer_index = 9, tag = 'rofs3', expected = False) |
|
72 check(layer_index = 9, tag = 'rofs2', expected = False) |
|
73 |
|
74 # LAYER 10 |
|
75 check(layer_index = 10, tag = 'uda', expected = True) |
|
76 check(layer_index = 10, tag = 'rofs3', expected = False) |
|
77 check(layer_index = 10, tag = 'rofs2', expected = False) |
|
78 |
|
79 # LAYER 11 |
|
80 check(layer_index = 11, tag = 'uda', expected = True) |
|
81 check(layer_index = 11, tag = 'rofs3', expected = False) |
|
82 check(layer_index = 11, tag = 'rofs2', expected = False) |
|
83 |
|
84 # Write the results to output |
|
85 f = open(os.path.join(ruleml.context.output, 'uses_layers_test.txt'),'w') |
|
86 try: |
|
87 # Column widths |
|
88 layer_cw = max([len(str(r[0])) for r in results]) + 2 |
|
89 tag_cw = max([len(str(r[1])) for r in results]) + 2 |
|
90 expected_cw = max([len(str(r[2])) for r in results]) |
|
91 actual_cw = max([len(str(r[3])) for r in results]) + 2 |
|
92 |
|
93 format = "%%-%ss %%-%ss %%-%ss %%-%ss %%s\n" % (layer_cw, tag_cw, expected_cw, actual_cw) |
|
94 for r in results: |
|
95 f.write(format % r) |
|
96 finally: |
|
97 f.close() |
|
98 |
|
99 </eval_globals> |
|
100 </ruleml> |