aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py
diff options
context:
space:
mode:
authorAdrian Herrmann <adrian.herrmann@qt.io>2023-09-11 20:20:35 +0200
committerAdrian Herrmann <adrian.herrmann@qt.io>2023-09-12 11:55:30 +0200
commit971c5944415cd557112ff046c4b0c41e8b0d5b05 (patch)
treefc1df26b5ced26c2ffd0fe574e296c298afa8f93 /sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py
parent0d500d003d4c8f199aaae3cfa830227261b48ed0 (diff)
QtAsyncio: Fix time unit
loop.time() needs to return the time in seconds as a float, not in milliseconds as an int. Task-number: PYSIDE-769 Change-Id: Iac123132b49d3954abda8545d0830f1837a27c48 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py')
-rw-r--r--sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py b/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py
new file mode 100644
index 000000000..60ec2f064
--- /dev/null
+++ b/sources/pyside6/tests/QtAsyncio/qasyncio_test_time.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''Test cases for QtAsyncio'''
+
+import unittest
+import asyncio
+import datetime
+
+from PySide6.QtAsyncio import QAsyncioEventLoopPolicy
+
+
+class QAsyncioTestCaseTime(unittest.TestCase):
+
+ def setUp(self):
+ self.previous_time = None
+ self.exception = None
+
+ def display_date(self, end_time, loop):
+ if self.previous_time is not None:
+ try:
+ self.assertAlmostEqual(
+ (datetime.datetime.now() - self.previous_time).total_seconds(), 1, delta=0.1)
+ except AssertionError as e:
+ self.exception = e
+ self.previous_time = datetime.datetime.now()
+ if (loop.time() + 1.0) < end_time:
+ loop.call_later(1, self.display_date, end_time, loop)
+ else:
+ loop.stop()
+
+ def test_time(self):
+ asyncio.set_event_loop_policy(QAsyncioEventLoopPolicy())
+ loop = asyncio.new_event_loop()
+
+ end_time = loop.time() + 5.0
+ loop.call_soon(self.display_date, end_time, loop)
+
+ try:
+ loop.run_forever()
+ finally:
+ loop.close()
+
+ if self.exception is not None:
+ raise self.exception
+
+
+if __name__ == '__main__':
+ unittest.main()