made better sleep ignored sleep and added test for it
This commit is contained in:
		
							parent
							
								
									159585a292
								
							
						
					
					
						commit
						a5c733469f
					
				
					 3 changed files with 52 additions and 5 deletions
				
			
		|  | @ -1,10 +1,30 @@ | ||||||
| from time import sleep | """Onionr - Private P2P Communication. | ||||||
|  | 
 | ||||||
|  | greenlet safe sleep, ignoring ctrl-c | ||||||
|  | """ | ||||||
|  | from gevent import sleep | ||||||
|  | from onionrutils.epoch import get_epoch | ||||||
|  | """ | ||||||
|  |     This program is free software: you can redistribute it and/or modify | ||||||
|  |     it under the terms of the GNU General Public License as published by | ||||||
|  |     the Free Software Foundation, either version 3 of the License, or | ||||||
|  |     (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |     This program is distributed in the hope that it will be useful, | ||||||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |     GNU General Public License for more details. | ||||||
|  | 
 | ||||||
|  |     You should have received a copy of the GNU General Public License | ||||||
|  |     along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||||
|  | """ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def better_sleep(wait: int): | def better_sleep(wait: int): | ||||||
|     """Sleep catching ctrl c for wait seconds.""" |     """Sleep catching ctrl c for wait seconds.""" | ||||||
|  |     start = get_epoch() | ||||||
|     try: |     try: | ||||||
|         sleep(wait) |         sleep(wait) | ||||||
|     except KeyboardInterrupt: |     except KeyboardInterrupt: | ||||||
|         pass |         better_sleep(wait - (get_epoch() - start)) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										28
									
								
								tests/test_bettersleep.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								tests/test_bettersleep.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | #!/usr/bin/env python3 | ||||||
|  | import sys, os | ||||||
|  | sys.path.append(".") | ||||||
|  | sys.path.append("src/") | ||||||
|  | import uuid | ||||||
|  | TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/' | ||||||
|  | print("Test directory:", TEST_DIR) | ||||||
|  | os.environ["ONIONR_HOME"] = TEST_DIR | ||||||
|  | import unittest, json | ||||||
|  | 
 | ||||||
|  | import time, math | ||||||
|  | 
 | ||||||
|  | from utils import bettersleep | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class TestBetterSleep(unittest.TestCase): | ||||||
|  |     def test_better_sleep(self): | ||||||
|  |         s = math.floor(time.time()) | ||||||
|  |         t = 1 | ||||||
|  |         bettersleep.sleep(t) | ||||||
|  |         self.assertEqual(math.floor(time.time()) - s, t) | ||||||
|  | 
 | ||||||
|  |     def test_no_ctrl_c(self): | ||||||
|  |         # TODO: figure out how to automate ctrl-c test | ||||||
|  |         return | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | unittest.main() | ||||||
|  | @ -2,11 +2,11 @@ | ||||||
| import sys, os | import sys, os | ||||||
| sys.path.append(".") | sys.path.append(".") | ||||||
| sys.path.append("src/") | sys.path.append("src/") | ||||||
| import unittest, uuid | import uuid | ||||||
| import json |  | ||||||
| TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/' | TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/' | ||||||
| print("Test directory:", TEST_DIR) | print("Test directory:", TEST_DIR) | ||||||
| os.environ["ONIONR_HOME"] = TEST_DIR | os.environ["ONIONR_HOME"] = TEST_DIR | ||||||
|  | import unittest, json | ||||||
| 
 | 
 | ||||||
| from utils import identifyhome, createdirs | from utils import identifyhome, createdirs | ||||||
| from onionrsetup import setup_config | from onionrsetup import setup_config | ||||||
|  | @ -18,5 +18,4 @@ class TestTemplate(unittest.TestCase): | ||||||
|         self.assertTrue(True) |         self.assertTrue(True) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| unittest.main() | unittest.main() | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue