You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					29 lines
				
				738 B
			
		
		
			
		
	
	
					29 lines
				
				738 B
			| 
								 
											6 years ago
										 
									 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import unittest
							 | 
						||
| 
								 | 
							
								from uuid import uuid4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from common.file_helpers import atomic_write_on_fs_tmp
							 | 
						||
| 
								 | 
							
								from common.file_helpers import atomic_write_in_dir
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestFileHelpers(unittest.TestCase):
							 | 
						||
| 
								 | 
							
								  def run_atomic_write_func(self, atomic_write_func):
							 | 
						||
| 
								 | 
							
								    path = "/tmp/tmp{}".format(uuid4())
							 | 
						||
| 
								 | 
							
								    with atomic_write_func(path) as f:
							 | 
						||
| 
								 | 
							
								      f.write("test")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    with open(path) as f:
							 | 
						||
| 
								 | 
							
								      self.assertEqual(f.read(), "test")
							 | 
						||
| 
								 | 
							
								    self.assertEqual(os.stat(path).st_mode & 0o777, 0o644)
							 | 
						||
| 
								 | 
							
								    os.remove(path)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def test_atomic_write_on_fs_tmp(self):
							 | 
						||
| 
								 | 
							
								    self.run_atomic_write_func(atomic_write_on_fs_tmp)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def test_atomic_write_in_dir(self):
							 | 
						||
| 
								 | 
							
								    self.run_atomic_write_func(atomic_write_in_dir)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if __name__ == "__main__":
							 | 
						||
| 
								 | 
							
								  unittest.main()
							 |