예제 #1
0
파일: test_data.py 프로젝트: sjp38/ash
    def test_add_callback(self):
        data.clear()
        data.add_callback("abc", "def", "VALUE",
                ["weird", "list", "grrr"])
        self.assertEqual(data.get_callback("abc", "def", "VALUE"),
                ["weird", "list", "grrr"])
        data.add_callback("abc", "def", "VALUE",
                ["normal", "new list", "varrr"])
        self.assertEqual(data.get_callback("abc", "def", "VALUE"),
                ["normal", "new list", "varrr"])

        # Add None is equal to remove.
        data.add_callback("abc", "def", "VALUE", None)
        self.assertEqual(data.get_callback("abc", "def", "VALUE"),
                data.NO_CALLBACK)

        data.add_callback("", "abc", "def", [["code1", "arg1"],["code2"]])
        self.assertEqual(data.get_callback(
                data.DEFAULT_EVENT_MODE, "abc", "def"),
                [["code1", "arg1"], ["code2"]])
        data.add_callback("default", "abc", "def",
                [["code1", "arg1"],["code2"]])
        self.assertEqual(data.get_callback(
                data.DEFAULT_EVENT_MODE, "abc", "def"),
                [["code1", "arg1"], ["code2"]])
예제 #2
0
파일: test_data.py 프로젝트: sjp38/ash
 def test_clear(self):
     data.clear()
     data.add_callback("foo", "bar", "bzrrr", ["a", "b", "c"])
     self.assertEqual(data.get_callback("foo", "bar", "bzrrr"),
             ["a", "b", "c"])
     data.clear()
     self.assertEqual(data.get_callback("foo", "bar", "bzrrr"),
             data.NO_CALLBACK)
예제 #3
0
파일: test_data.py 프로젝트: sjp38/ash
 def test_load_from_file(self):
     data.load_from_file("data_2.0.xml")
     self.assertEqual(
             data.get_callback("googleKeyboard", "keyboard", "A_DOWN"),
             ["touch", "DOWN_AND_UP", "300", "680"])
     self.assertEqual(
             data.get_callback("default", "alias", "click"),
             [["touch", "DOWN", ["arg", "1"], ["arg", "2"]],
                 ["sleep", "0.1"],
                 ["touch", "UP", ["arg", "1"], ["arg", "2"]]
                 ])
예제 #4
0
파일: ashval.py 프로젝트: sjp38/ash
def event(mode, type_, value, *arg):
    code = data.get_callback(mode, type_, value)
    _argstack[-1] = _argstack[-1][3:]
    result = None
    for expr in code:
        result = ashval(expr, False)
    return result
예제 #5
0
파일: ashval.py 프로젝트: sjp38/ash
def _get_code(expr):
    if not isinstance(expr, list) or not isinstance(expr[0], str):
        return False
# For test, manually switch commenting...
    for module in [ash, ashmon, data, sys.modules[__name__], devmgr]:
#    for module in [ash, ashmon, data, sys.modules[__name__]]:
        if hasattr(module, expr[0]):
            f = getattr(module, expr[0])
            if hasattr(f, '__call__'):
                return f
    return data.get_callback("", "alias", expr[0])
예제 #6
0
파일: test_data.py 프로젝트: sjp38/ash
    def test_get_callback(self):
        data.clear()
        data.add_callback("googleKeyboard", "keyboard", "A_DOWN",
                ["touch", "DOWN_AND_UP", "200", "400"])
        self.assertEqual(
                data.get_callback("googleKeyboard", "keyboard", "A_DOWN"),
                ["touch", "DOWN_AND_UP", "200", "400"])

        self.assertEqual(
                data.get_callback("googleKeyboard", "keyboard", "no_key"),
                data.NO_CALLBACK)
        self.assertEqual(
                data.get_callback("googleKeyboard", "no_type", "A_DOWN"),
                data.NO_CALLBACK)
        self.assertEqual(
                data.get_callback("no_mode", "keyboard", "A_DOWN"),
                data.NO_CALLBACK)

        data.add_callback(data.DEFAULT_EVENT_MODE, "keyboard",
                          "B_DOWN", ["a", ["c", "d"]])
        self.assertEqual(
                data.get_callback("", "keyboard", "B_DOWN"),
                ["a", ["c", "d"]])
        self.assertEqual(
                data.get_callback("default", "keyboard", "B_DOWN"),
                ["a", ["c", "d"]])