| 
									
										
										
										
											2020-05-08 19:20:26 -04:00
										 |  |  | import typing | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from importlib import resources | 
					
						
							|  |  |  | from importlib.abc import Traversable | 
					
						
							|  |  |  | from . import data01 | 
					
						
							|  |  |  | from . import util | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FilesTests: | 
					
						
							|  |  |  |     def test_read_bytes(self): | 
					
						
							|  |  |  |         files = resources.files(self.data) | 
					
						
							|  |  |  |         actual = files.joinpath('utf-8.file').read_bytes() | 
					
						
							|  |  |  |         assert actual == b'Hello, UTF-8 world!\n' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_read_text(self): | 
					
						
							|  |  |  |         files = resources.files(self.data) | 
					
						
							| 
									
										
										
										
											2021-04-05 13:11:23 +09:00
										 |  |  |         actual = files.joinpath('utf-8.file').read_text(encoding='utf-8') | 
					
						
							| 
									
										
										
										
											2020-05-08 19:20:26 -04:00
										 |  |  |         assert actual == 'Hello, UTF-8 world!\n' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @unittest.skipUnless( | 
					
						
							|  |  |  |         hasattr(typing, 'runtime_checkable'), | 
					
						
							|  |  |  |         "Only suitable when typing supports runtime_checkable", | 
					
						
							| 
									
										
										
										
											2021-03-04 13:43:00 -05:00
										 |  |  |     ) | 
					
						
							| 
									
										
										
										
											2020-05-08 19:20:26 -04:00
										 |  |  |     def test_traversable(self): | 
					
						
							|  |  |  |         assert isinstance(resources.files(self.data), Traversable) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class OpenDiskTests(FilesTests, unittest.TestCase): | 
					
						
							|  |  |  |     def setUp(self): | 
					
						
							|  |  |  |         self.data = data01 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class OpenZipTests(FilesTests, util.ZipSetup, unittest.TestCase): | 
					
						
							|  |  |  |     pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main() |