New question #288480 on Sikuli:
https://answers.launchpad.net/sikuli/+question/288480
Hi,
I get some weird behavior when using observe() functionality for region defined
via default argument
So I prepared code sample below
import unittest
def wait_load(observe_region=Region(399,25,1040,406)):
observe_region.onChange(100, observe_region.stopObserver())
observe_region.observe(20)
class SampleTest(unittest.TestCase):
def test_one(self):
wait(5)
print('1st start')
wait_load()
assert True
def test_two(self):
wait(5)
print('2nd start')
wait_load()
assert True
if __name__ == '__main__':
runner = unittest.TextTestRunner(verbosity=2)
SampleTestSuite =
unittest.TestSuite(unittest.TestLoader().loadTestsFromTestCase(SampleTest))
runner.run(SampleTestSuite)
So, after the launch i get:
>>test_one (__main__.SampleTest) ...
>>1st start
here i make two actions in observed region (for example move some window in and
out)
After that second test also reported as successful at once, even if no actions
was performed
I know that in Python "expressions in default arguments are calculated when the
function is defined, not when it’s called", but here in default argument im
just creating Region object. Ofcourse it is possible to call
wait_load(Region(399,25,1040,406)) with argument, but in case of dozens of
tests it is hard to manage them.
So how should I use observe() correctly in this case?
--
You received this question notification because your team Sikuli Drivers
is an answer contact for Sikuli.
_______________________________________________
Mailing list: https://launchpad.net/~sikuli-driver
Post to : [email protected]
Unsubscribe : https://launchpad.net/~sikuli-driver
More help : https://help.launchpad.net/ListHelp