18 import unittest |
18 import unittest |
19 import os, shutil |
19 import os, shutil |
20 import sys |
20 import sys |
21 import re |
21 import re |
22 |
22 |
23 import __init__ |
|
24 |
|
25 from ruleplugin import ruleml, relations |
23 from ruleplugin import ruleml, relations |
26 from cone.public import api, exceptions |
24 from cone.public import api, exceptions |
27 ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) |
25 ROOT_PATH = os.path.dirname(os.path.abspath(__file__)) |
28 |
26 |
29 class MockObject(object): |
27 class MockObject(object): |
40 def set_value(self, value): |
38 def set_value(self, value): |
41 self.feature_values[self.ref] = value |
39 self.feature_values[self.ref] = value |
42 |
40 |
43 class MockConfigurationContext(object): |
41 class MockConfigurationContext(object): |
44 def __init__(self, feature_values): |
42 def __init__(self, feature_values): |
45 self.data = MockObject() |
43 self.configuration = MockObject() |
46 default_view = MockObject() |
44 default_view = MockObject() |
47 default_view.get_feature = lambda ref: MockFeature(ref, feature_values) |
45 default_view.get_feature = lambda ref: MockFeature(ref, feature_values) |
48 self.data.get_default_view = lambda: default_view |
46 self.configuration.get_default_view = lambda: default_view |
49 self.ref_eval_callback = None |
47 self.ref_eval_callback = None |
50 |
48 |
51 class MockExpression(object): |
49 class MockExpression(object): |
52 def __init__(self, expression): |
50 def __init__(self, expression): |
53 self.expression = repr(expression) |
51 self.expression = repr(expression) |
83 ee = relations.EvalExpression(None, MockExpression(u"'%d' % @{ударения.ελληνικά}.get_value()")) |
81 ee = relations.EvalExpression(None, MockExpression(u"'%d' % @{ударения.ελληνικά}.get_value()")) |
84 self.assertEquals(ee.eval(context), "100") |
82 self.assertEquals(ee.eval(context), "100") |
85 |
83 |
86 class TestReplaceEvalBlocks(unittest.TestCase): |
84 class TestReplaceEvalBlocks(unittest.TestCase): |
87 def test_replace_eval_blocks(self): |
85 def test_replace_eval_blocks(self): |
88 replace = ruleml.RuleImplReader2._replace_eval_blocks |
86 replace = ruleml.RuleImplReader._replace_eval_blocks |
89 |
87 |
90 orig = """some.setting configures x = y""" |
88 orig = """some.setting configures x = y""" |
91 self.assertEquals(replace(orig), orig) |
89 self.assertEquals(replace(orig), orig) |
92 |
90 |
93 orig = """some.setting configures x = {% do_something(@{Fea.Set}) %}""" |
91 orig = """some.setting configures x = {% do_something(@{Fea.Set}) %}""" |