mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	The unittest in helper.py has not offered an interesting abstraction
since dbe9f85c7d so import from the more
typical stdlib location.
		
	
			
		
			
				
	
	
		
			108 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import unittest
 | |
| 
 | |
| from PIL import ImageWin
 | |
| 
 | |
| from .helper import PillowTestCase, hopper, is_win32
 | |
| 
 | |
| 
 | |
| class TestImageWin(PillowTestCase):
 | |
|     def test_sanity(self):
 | |
|         dir(ImageWin)
 | |
| 
 | |
|     def test_hdc(self):
 | |
|         # Arrange
 | |
|         dc = 50
 | |
| 
 | |
|         # Act
 | |
|         hdc = ImageWin.HDC(dc)
 | |
|         dc2 = int(hdc)
 | |
| 
 | |
|         # Assert
 | |
|         self.assertEqual(dc2, 50)
 | |
| 
 | |
|     def test_hwnd(self):
 | |
|         # Arrange
 | |
|         wnd = 50
 | |
| 
 | |
|         # Act
 | |
|         hwnd = ImageWin.HWND(wnd)
 | |
|         wnd2 = int(hwnd)
 | |
| 
 | |
|         # Assert
 | |
|         self.assertEqual(wnd2, 50)
 | |
| 
 | |
| 
 | |
| @unittest.skipUnless(is_win32(), "Windows only")
 | |
| class TestImageWinDib(PillowTestCase):
 | |
|     def test_dib_image(self):
 | |
|         # Arrange
 | |
|         im = hopper()
 | |
| 
 | |
|         # Act
 | |
|         dib = ImageWin.Dib(im)
 | |
| 
 | |
|         # Assert
 | |
|         self.assertEqual(dib.size, im.size)
 | |
| 
 | |
|     def test_dib_mode_string(self):
 | |
|         # Arrange
 | |
|         mode = "RGBA"
 | |
|         size = (128, 128)
 | |
| 
 | |
|         # Act
 | |
|         dib = ImageWin.Dib(mode, size)
 | |
| 
 | |
|         # Assert
 | |
|         self.assertEqual(dib.size, (128, 128))
 | |
| 
 | |
|     def test_dib_paste(self):
 | |
|         # Arrange
 | |
|         im = hopper()
 | |
| 
 | |
|         mode = "RGBA"
 | |
|         size = (128, 128)
 | |
|         dib = ImageWin.Dib(mode, size)
 | |
| 
 | |
|         # Act
 | |
|         dib.paste(im)
 | |
| 
 | |
|         # Assert
 | |
|         self.assertEqual(dib.size, (128, 128))
 | |
| 
 | |
|     def test_dib_paste_bbox(self):
 | |
|         # Arrange
 | |
|         im = hopper()
 | |
|         bbox = (0, 0, 10, 10)
 | |
| 
 | |
|         mode = "RGBA"
 | |
|         size = (128, 128)
 | |
|         dib = ImageWin.Dib(mode, size)
 | |
| 
 | |
|         # Act
 | |
|         dib.paste(im, bbox)
 | |
| 
 | |
|         # Assert
 | |
|         self.assertEqual(dib.size, (128, 128))
 | |
| 
 | |
|     def test_dib_frombytes_tobytes_roundtrip(self):
 | |
|         # Arrange
 | |
|         # Make two different DIB images
 | |
|         im = hopper()
 | |
|         dib1 = ImageWin.Dib(im)
 | |
| 
 | |
|         mode = "RGB"
 | |
|         size = (128, 128)
 | |
|         dib2 = ImageWin.Dib(mode, size)
 | |
| 
 | |
|         # Confirm they're different
 | |
|         self.assertNotEqual(dib1.tobytes(), dib2.tobytes())
 | |
| 
 | |
|         # Act
 | |
|         # Make one the same as the using tobytes()/frombytes()
 | |
|         test_buffer = dib1.tobytes()
 | |
|         dib2.frombytes(test_buffer)
 | |
| 
 | |
|         # Assert
 | |
|         # Confirm they're the same
 | |
|         self.assertEqual(dib1.tobytes(), dib2.tobytes())
 |