From 98811a3358a8c48fe88c6ac97a43fdb01490aefa Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Sat, 28 Nov 2020 18:52:19 +0100 Subject: [PATCH] random w, improved parsing debug output --- keymapper/dev/macros.py | 10 +++++++--- tests/testcases/macros.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/keymapper/dev/macros.py b/keymapper/dev/macros.py index ea838852..fc37e916 100644 --- a/keymapper/dev/macros.py +++ b/keymapper/dev/macros.py @@ -103,8 +103,12 @@ class _Macro: def wait(self, min, max=None): """Wait a random time in milliseconds""" - # TODO random - self.tasks.append(lambda: time.sleep(min / 1000)) + if max is None: + sleeptime = min + else: + sleeptime = random.random() * (max - min) + min + + self.tasks.append(lambda: time.sleep(sleeptime / 1000)) return self @@ -169,7 +173,6 @@ def _parse_recurse(macro, handler, macro_instance=None, depth=0): assert isinstance(macro_instance, _Macro) macro = macro.strip() - logger.spam('%sinput %s', ' ' * depth, macro) space = ' ' * depth # is it another macro? @@ -254,6 +257,7 @@ def parse(macro, handler): macro will write to this function once executed with `.run()`. """ try: + logger.spam('input %s', macro) return _parse_recurse(macro, handler) except Exception as e: logger.error('Failed to parse macro "%s": %s', macro, e) diff --git a/tests/testcases/macros.py b/tests/testcases/macros.py index 5f0c15a2..db1bd2cc 100644 --- a/tests/testcases/macros.py +++ b/tests/testcases/macros.py @@ -51,7 +51,7 @@ class TestMacros(unittest.TestCase): ]) def test_3(self): - parse('r(3, k(m).w(200))', self.handler).run() + parse('r(3, k(m).w(200, 400))', self.handler).run() # TODO test passed time self.assertListEqual(self.result, [ ('m', 1), ('m', 0),