mirror of
				https://github.com/slint-ui/slint.git
				synced 2025-10-31 03:54:25 +00:00 
			
		
		
		
	 624796d53e
			
		
	
	
		624796d53e
		
	
	
	
	
		
			
			It seems that with the latest winit, quit_event_loop() might take a little longer and the timer fires once more. We don't really care how long quit_event_loop() takes in this test, merely that the timer firest and that we can terminate the loop. Fixes #5484
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			842 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			842 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright © SixtyFPS GmbH <info@slint.dev>
 | |
| # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
 | |
| 
 | |
| import pytest
 | |
| from slint import slint as native
 | |
| from slint.slint import ValueType;
 | |
| from datetime import timedelta
 | |
| 
 | |
| def test_timer():
 | |
|     global counter
 | |
|     counter = 0
 | |
|     def quit_after_two_invocations():
 | |
|         global counter
 | |
|         counter = min(counter + 1, 2)
 | |
|         if counter == 2:
 | |
|             native.quit_event_loop()
 | |
| 
 | |
|     test_timer = native.Timer()        
 | |
|     test_timer.start(native.TimerMode.Repeated, timedelta(milliseconds=100), quit_after_two_invocations)
 | |
|     native.run_event_loop()
 | |
|     test_timer.stop()
 | |
|     assert(counter == 2)
 | |
| 
 | |
| def test_single_shot():
 | |
|     native.Timer.single_shot(timedelta(milliseconds=100), native.quit_event_loop)
 | |
|     native.run_event_loop()
 |