| 
									
										
										
										
											2022-04-02 01:30:17 +02:00
										 |  |  | #!python3 | 
					
						
							| 
									
										
										
										
											2020-12-05 00:16:07 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | Slideshow test (inkycal_slideshow) | 
					
						
							|  |  |  | """
 | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  | import logging | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  | import os | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  | import sys | 
					
						
							| 
									
										
										
										
											2020-11-29 23:51:04 +01:00
										 |  |  | import unittest | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  | import requests | 
					
						
							|  |  |  | from PIL import Image | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-29 23:51:04 +01:00
										 |  |  | from inkycal.modules import Slideshow as Module | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  | from inkycal.modules.inky_image import Inkyimage | 
					
						
							|  |  |  | from inkycal.tests import Config | 
					
						
							| 
									
										
										
										
											2020-12-05 00:16:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  | preview = Inkyimage.preview | 
					
						
							|  |  |  | merge = Inkyimage.merge | 
					
						
							| 
									
										
										
										
											2020-11-29 23:51:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  | if not os.path.exists("tmp"): | 
					
						
							|  |  |  |     os.mkdir("tmp") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | im_urls = [ | 
					
						
							|  |  |  |     "https://github.com/aceisace/Inkycal/raw/assets/Repo/coffee.png", | 
					
						
							|  |  |  |     "https://github.com/aceisace/Inkycal/raw/assets/Repo/coffee.png" | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for count, url in enumerate(im_urls): | 
					
						
							|  |  |  |     im = Image.open(requests.get(url, stream=True).raw) | 
					
						
							|  |  |  |     im.save(f"tmp/{count}.png", "PNG") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test_path = "tmp" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-29 23:51:04 +01:00
										 |  |  | tests = [ | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [400, 200], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bwy", | 
					
						
							|  |  |  |             "autoflip": True, | 
					
						
							|  |  |  |             "orientation": "vertical", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 10, | 
					
						
							|  |  |  |             "padding_y": 10, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [800, 500], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bw", | 
					
						
							|  |  |  |             "autoflip": True, | 
					
						
							|  |  |  |             "orientation": "vertical", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 10, | 
					
						
							|  |  |  |             "padding_y": 10, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [400, 100], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bwr", | 
					
						
							|  |  |  |             "autoflip": False, | 
					
						
							|  |  |  |             "orientation": "vertical", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 10, | 
					
						
							|  |  |  |             "padding_y": 10, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [400, 100], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bwy", | 
					
						
							|  |  |  |             "autoflip": True, | 
					
						
							|  |  |  |             "orientation": "vertical", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 10, | 
					
						
							|  |  |  |             "padding_y": 10, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [400, 100], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bwy", | 
					
						
							|  |  |  |             "autoflip": True, | 
					
						
							|  |  |  |             "orientation": "horizontal", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 10, | 
					
						
							|  |  |  |             "padding_y": 10, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [500, 800], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bw", | 
					
						
							|  |  |  |             "autoflip": True, | 
					
						
							|  |  |  |             "orientation": "vertical", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 0, | 
					
						
							|  |  |  |             "padding_y": 0, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "position": 1, | 
					
						
							|  |  |  |         "name": "Slideshow", | 
					
						
							|  |  |  |         "config": { | 
					
						
							|  |  |  |             "size": [500, 800], | 
					
						
							|  |  |  |             "path": test_path, | 
					
						
							|  |  |  |             "palette": "bwr", | 
					
						
							|  |  |  |             "autoflip": True, | 
					
						
							|  |  |  |             "orientation": "vertical", | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             "padding_x": 20, | 
					
						
							|  |  |  |             "padding_y": 20, | 
					
						
							|  |  |  |             "fontsize": 12, | 
					
						
							|  |  |  |             "language": "en" | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2020-11-29 23:51:04 +01:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-29 23:51:04 +01:00
										 |  |  | class module_test(unittest.TestCase): | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |     def test_get_config(self): | 
					
						
							|  |  |  |         print('getting data for web-ui...', end="") | 
					
						
							|  |  |  |         Module.get_config() | 
					
						
							|  |  |  |         print('OK') | 
					
						
							| 
									
										
										
										
											2020-12-02 00:59:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |     def test_generate_image(self): | 
					
						
							|  |  |  |         for test in tests: | 
					
						
							|  |  |  |             print(f'test {tests.index(test) + 1} generating image..') | 
					
						
							|  |  |  |             module = Module(test) | 
					
						
							|  |  |  |             im_black, im_colour = module.generate_image() | 
					
						
							|  |  |  |             print('OK') | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |             if Config.USE_PREVIEW: | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |                 preview(merge(im_black, im_colour)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_switch_to_next_image(self): | 
					
						
							|  |  |  |         print(f'testing switching to next images..') | 
					
						
							|  |  |  |         module = Module(tests[0]) | 
					
						
							|  |  |  |         im_black, im_colour = module.generate_image() | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |         if Config.USE_PREVIEW: | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |             preview(merge(im_black, im_colour)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         im_black, im_colour = module.generate_image() | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |         if Config.USE_PREVIEW: | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |             preview(merge(im_black, im_colour)) | 
					
						
							| 
									
										
										
										
											2020-12-05 00:16:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |         im_black, im_colour = module.generate_image() | 
					
						
							| 
									
										
										
										
											2023-01-11 22:24:39 +01:00
										 |  |  |         if Config.USE_PREVIEW: | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |             preview(merge(im_black, im_colour)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         print('OK') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     logger = logging.getLogger() | 
					
						
							|  |  |  |     logger.level = logging.DEBUG | 
					
						
							|  |  |  |     logger.addHandler(logging.StreamHandler(sys.stdout)) | 
					
						
							| 
									
										
										
										
											2020-12-05 00:16:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-14 05:59:47 +02:00
										 |  |  |     unittest.main() |