diff --git a/inkycal/tests/helper_functions.py b/inkycal/tests/helper_functions.py new file mode 100644 index 0000000..2397ac5 --- /dev/null +++ b/inkycal/tests/helper_functions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +""" +Helper functions for inkycal tests. +Copyright by aceisace +""" +import logging +import sys + +from os.path import exists +from inkycal.modules.inky_image import Inkyimage + +preview = Inkyimage.preview +merge = Inkyimage.merge + +def get_environment(): + # Check if this is running on the Raspberry Pi + environment = None + envir_path = '/sys/firmware/devicetree/base/model' + if exists(envir_path): + with open(envir_path) as file: + if 'Raspberry' in file.read(): + environment = 'Raspberry' + return environment diff --git a/inkycal/tests/ical_parser_test.py b/inkycal/tests/ical_parser_test.py index a0ebd19..d77115d 100644 --- a/inkycal/tests/ical_parser_test.py +++ b/inkycal/tests/ical_parser_test.py @@ -1,8 +1,19 @@ -import unittest -from inkycal.modules.ical_parser import iCalendar -from urllib.request import urlopen -import arrow +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +iCalendar parser test (ical_parser) +Copyright by aceisace +""" + import os +import arrow +import unittest +from urllib.request import urlopen + +from inkycal.modules.ical_parser import iCalendar +from helper_functions import * + ical = iCalendar() test_ical = 'https://calendar.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics' @@ -39,4 +50,9 @@ class ical_parser_test(unittest.TestCase): os.remove('dummy.ical') if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() diff --git a/inkycal/tests/inkycal_agenda_test.py b/inkycal/tests/inkycal_agenda_test.py index 858bf23..bd6dda4 100644 --- a/inkycal/tests/inkycal_agenda_test.py +++ b/inkycal/tests/inkycal_agenda_test.py @@ -1,13 +1,55 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +""" +Agenda test (inkycal_agenda) +Copyright by aceisace +""" import unittest from inkycal.modules import Agenda as Module +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False + + +sample_url = "https://www.officeholidays.com/ics-fed/usa" tests = [ +{ + "name": "Agenda", + "config": { + "size": [400, 200], + "ical_urls": sample_url, + "ical_files": None, + "date_format": "ddd D MMM", + "time_format": "HH:mm", + "padding_x": 10, + "padding_y": 10, + "fontsize": 12, + "language": "en" + } +}, +{ + "name": "Agenda", + "config": { + "size": [500, 800], + "ical_urls": sample_url, + "ical_files": None, + "date_format": "ddd D MMM", + "time_format": "HH:mm", + "padding_x": 10, + "padding_y": 10, + "fontsize": 12, + "language": "en" + } +}, { "position": 1, "name": "Agenda", "config": { - "size": [880,100], - "ical_urls": "https://www.officeholidays.com/ics-fed/usa", + "size": [300, 800], + "ical_urls": sample_url, "ical_files": None, "date_format": "ddd D MMM", "time_format": "HH:mm", @@ -30,8 +72,15 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..') module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() diff --git a/inkycal/tests/inkycal_calendar_test.py b/inkycal/tests/inkycal_calendar_test.py index 33c8be0..828de1c 100644 --- a/inkycal/tests/inkycal_calendar_test.py +++ b/inkycal/tests/inkycal_calendar_test.py @@ -1,51 +1,60 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +Calendar test (inkycal_calendar) +Copyright by aceisace +""" + import unittest from inkycal.modules import Calendar as Module +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False + + +sample_url = "https://www.officeholidays.com/ics-fed/usa" tests = [ { - "position": 2, "name": "Calendar", "config": { - "size": [400, 800], + "size": [500, 500], "week_starts_on": "Monday", "show_events": True, - "ical_urls": "https://www.officeholidays.com/ics-fed/usa", + "ical_urls": sample_url, "ical_files": None, - "date_format": "D MMM", - "time_format": "HH:mm", + "date_format": "D MMM", "time_format": "HH:mm", "padding_x": 10,"padding_y": 10,"fontsize": 12,"language": "en" } }, { - "position": 2, "name": "Calendar", "config": { "size": [400, 800], "week_starts_on": "Sunday", "show_events": True, - "ical_urls": "https://www.officeholidays.com/ics-fed/usa", + "ical_urls": sample_url, "ical_files": None, - "date_format": "D MMM", - "time_format": "HH:mm", + "date_format": "D MMM", "time_format": "HH:mm", "padding_x": 10,"padding_y": 10,"fontsize": 12,"language": "en" } }, { - "position": 2, "name": "Calendar", "config": { "size": [400, 800], "week_starts_on": "Monday", "show_events": False, - "ical_urls": "https://www.officeholidays.com/ics-fed/usa", + "ical_urls": sample_url, "ical_files": None, - "date_format": "D MMM", - "time_format": "HH:mm", + "date_format": "D MMM", "time_format": "HH:mm", "padding_x": 10,"padding_y": 10,"fontsize": 12,"language": "en" } }, { - "position": 2, "name": "Calendar", "config": { "size": [400, 800], @@ -53,8 +62,7 @@ tests = [ "show_events": True, "ical_urls": None, "ical_files": None, - "date_format": "D MMM", - "time_format": "HH:mm", + "date_format": "D MMM", "time_format": "HH:mm", "padding_x": 10,"padding_y": 10,"fontsize": 12,"language": "en" } }, @@ -70,8 +78,15 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..', end="") module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() diff --git a/inkycal/tests/inkycal_feeds_test.py b/inkycal/tests/inkycal_feeds_test.py index 34100dc..38c0c01 100644 --- a/inkycal/tests/inkycal_feeds_test.py +++ b/inkycal/tests/inkycal_feeds_test.py @@ -1,29 +1,39 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +Feeds test (inykcal_feeds) +Copyright by aceisace +""" + import unittest from inkycal.modules import Feeds as Module +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False tests = [ { - "position": 1, "name": "Feeds", "config": { - "size": [400,100], + "size": [400,200], "feed_urls": "http://feeds.bbci.co.uk/news/world/rss.xml#", "shuffle_feeds": True, "padding_x": 10, "padding_y": 10, "fontsize": 12, "language": "en" } }, { - "position": 1, "name": "Feeds", "config": { "size": [400,100], "feed_urls": "http://feeds.bbci.co.uk/news/world/rss.xml#", "shuffle_feeds": False, - "padding_x": 10, "padding_y": 10, "fontsize": 12, "language": "en" + "padding_x": 10, "padding_y": 10, "fontsize": 14, "language": "en" } }, { - "position": 1, "name": "Feeds", "config": { "size": [400,100], @@ -44,8 +54,16 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..') module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() + diff --git a/inkycal/tests/inkycal_image_test.py b/inkycal/tests/inkycal_image_test.py index 8612b24..2ed3354 100644 --- a/inkycal/tests/inkycal_image_test.py +++ b/inkycal/tests/inkycal_image_test.py @@ -1,12 +1,25 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +Image test (inkycal_image) +Copyright by aceisace +""" + import unittest from inkycal.modules import Inkyimage as Module from inkycal.custom import top_level +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False + test_path = f'{top_level}/Gallery/coffee.png' tests = [ { - "position": 1, "name": "Inkyimage", "config": { "size": [400,200], @@ -18,7 +31,6 @@ tests = [ } }, { - "position": 1, "name": "Inkyimage", "config": { "size": [800,500], @@ -30,7 +42,6 @@ tests = [ } }, { - "position": 1, "name": "Inkyimage", "config": { "size": [400,100], @@ -42,7 +53,6 @@ tests = [ } }, { - "position": 1, "name": "Inkyimage", "config": { "size": [400,100], @@ -54,7 +64,6 @@ tests = [ } }, { - "position": 1, "name": "Inkyimage", "config": { "size": [400,100], @@ -66,7 +75,6 @@ tests = [ } }, { - "position": 1, "name": "Inkyimage", "config": { "size": [500, 800], @@ -78,7 +86,6 @@ tests = [ } }, { - "position": 1, "name": "Inkyimage", "config": { "size": [500, 800], @@ -101,8 +108,15 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..') module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() diff --git a/inkycal/tests/inkycal_jokes_test.py b/inkycal/tests/inkycal_jokes_test.py index c653b5d..c74d5f7 100644 --- a/inkycal/tests/inkycal_jokes_test.py +++ b/inkycal/tests/inkycal_jokes_test.py @@ -1,9 +1,22 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +Jokes test (inkycal_jokes) +Copyright by aceisace +""" + import unittest from inkycal.modules import Jokes as Module +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False + tests = [ { - "position": 1, "name": "Jokes", "config": { "size": [300, 60], @@ -11,7 +24,6 @@ tests = [ } }, { - "position": 1, "name": "Jokes", "config": { "size": [300, 30], @@ -19,7 +31,6 @@ tests = [ } }, { - "position": 1, "name": "Jokes", "config": { "size": [100, 800], @@ -38,8 +49,15 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..') module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() diff --git a/inkycal/tests/inkycal_slideshow_test.py b/inkycal/tests/inkycal_slideshow_test.py index 75d2550..d96e66f 100644 --- a/inkycal/tests/inkycal_slideshow_test.py +++ b/inkycal/tests/inkycal_slideshow_test.py @@ -1,12 +1,24 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +Slideshow test (inkycal_slideshow) +Copyright by aceisace +""" + import unittest from inkycal.modules import Slideshow as Module from inkycal.custom import top_level +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False test_path = f'{top_level}/Gallery' tests = [ { - "position": 1, "name": "Slideshow", "config": { "size": [400,200], @@ -18,7 +30,6 @@ tests = [ } }, { - "position": 1, "name": "Slideshow", "config": { "size": [800,500], @@ -30,7 +41,6 @@ tests = [ } }, { - "position": 1, "name": "Slideshow", "config": { "size": [400,100], @@ -42,7 +52,6 @@ tests = [ } }, { - "position": 1, "name": "Slideshow", "config": { "size": [400,100], @@ -54,7 +63,6 @@ tests = [ } }, { - "position": 1, "name": "Slideshow", "config": { "size": [400,100], @@ -66,7 +74,6 @@ tests = [ } }, { - "position": 1, "name": "Slideshow", "config": { "size": [500, 800], @@ -101,16 +108,32 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..') module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) def test_switch_to_next_image(self): print(f'testing switching to next images..') module = Module(tests[0]) - module.generate_image() - module.generate_image() - module.generate_image() + im_black, im_colour = module.generate_image() + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) + + im_black, im_colour = module.generate_image() + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) + + im_black, im_colour = module.generate_image() + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) + print('OK') if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main() diff --git a/inkycal/tests/inkycal_stocks_test.py b/inkycal/tests/inkycal_stocks_test.py index 6ed6334..4e465b0 100644 --- a/inkycal/tests/inkycal_stocks_test.py +++ b/inkycal/tests/inkycal_stocks_test.py @@ -1,27 +1,38 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +""" +Stocks test (inkycal_stocks) +Copyright by aceisace +""" + import unittest from inkycal.modules import Stocks as Module +from helper_functions import * +environment = get_environment() + +# Set to True to preview images. Only works on Raspberry Pi OS with Desktop +use_preview = False + tests = [ { - "position": 1, "name": "Stocks", "config": { - "size": [528, 20], + "size": [528, 30], "tickers": ['TSLA', 'AMD', 'NVDA', '^DJI', 'BTC-USD', 'EURUSD=X'], "padding_x": 10, "padding_y": 10, "fontsize": 12, "language": "en" } }, { - "position": 1, "name": "Stocks", "config": { - "size": [528, 20], + "size": [528, 50], "tickers": [], "padding_x": 10, "padding_y": 10, "fontsize": 12, "language": "en" } }, { - "position": 1, "name": "Stocks", "config": { "size": [528, 200], @@ -30,7 +41,6 @@ tests = [ } }, { - "position": 1, "name": "Stocks", "config": { "size": [528, 800], @@ -39,7 +49,6 @@ tests = [ } }, { - "position": 1, "name": "Stocks", "config": { "size": [528, 100], @@ -48,7 +57,6 @@ tests = [ } }, { - "position": 1, "name": "Stocks", "config": { "size": [528, 400], @@ -68,8 +76,15 @@ class module_test(unittest.TestCase): for test in tests: print(f'test {tests.index(test)+1} generating image..') module = Module(test) - module.generate_image() + im_black, im_colour = module.generate_image() print('OK') + if use_preview == True and environment == 'Raspberry': + preview(merge(im_black, im_colour)) if __name__ == '__main__': + + logger = logging.getLogger() + logger.level = logging.DEBUG + logger.addHandler(logging.StreamHandler(sys.stdout)) + unittest.main()