mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	The unittest in helper.py has not offered an interesting abstraction
since dbe9f85c7d so import from the more
typical stdlib location.
		
	
			
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import unittest
 | 
						|
 | 
						|
from PIL import Image, ImageShow
 | 
						|
 | 
						|
from .helper import PillowTestCase, hopper, is_win32, on_ci, on_github_actions
 | 
						|
 | 
						|
 | 
						|
class TestImageShow(PillowTestCase):
 | 
						|
    def test_sanity(self):
 | 
						|
        dir(Image)
 | 
						|
        dir(ImageShow)
 | 
						|
 | 
						|
    def test_register(self):
 | 
						|
        # Test registering a viewer that is not a class
 | 
						|
        ImageShow.register("not a class")
 | 
						|
 | 
						|
        # Restore original state
 | 
						|
        ImageShow._viewers.pop()
 | 
						|
 | 
						|
    def test_viewer_show(self):
 | 
						|
        class TestViewer(ImageShow.Viewer):
 | 
						|
            methodCalled = False
 | 
						|
 | 
						|
            def show_image(self, image, **options):
 | 
						|
                self.methodCalled = True
 | 
						|
                return True
 | 
						|
 | 
						|
        viewer = TestViewer()
 | 
						|
        ImageShow.register(viewer, -1)
 | 
						|
 | 
						|
        for mode in ("1", "I;16", "LA", "RGB", "RGBA"):
 | 
						|
            with hopper() as im:
 | 
						|
                self.assertTrue(ImageShow.show(im))
 | 
						|
            self.assertTrue(viewer.methodCalled)
 | 
						|
 | 
						|
        # Restore original state
 | 
						|
        ImageShow._viewers.pop(0)
 | 
						|
 | 
						|
    @unittest.skipUnless(
 | 
						|
        on_ci() and not (is_win32() and on_github_actions()),
 | 
						|
        "Only run on CIs; hangs on Windows on GitHub Actions",
 | 
						|
    )
 | 
						|
    def test_show(self):
 | 
						|
        for mode in ("1", "I;16", "LA", "RGB", "RGBA"):
 | 
						|
            im = hopper(mode)
 | 
						|
            self.assertTrue(ImageShow.show(im))
 | 
						|
 | 
						|
    def test_viewer(self):
 | 
						|
        viewer = ImageShow.Viewer()
 | 
						|
 | 
						|
        self.assertIsNone(viewer.get_format(None))
 | 
						|
 | 
						|
        self.assertRaises(NotImplementedError, viewer.get_command, None)
 | 
						|
 | 
						|
    def test_viewers(self):
 | 
						|
        for viewer in ImageShow._viewers:
 | 
						|
            viewer.get_command("test.jpg")
 |