2020-12-05 00:16:07 +01:00
|
|
|
"""
|
|
|
|
iCalendar parser test (ical_parser)
|
|
|
|
"""
|
2023-01-11 22:24:39 +01:00
|
|
|
import logging
|
2020-12-05 00:16:07 +01:00
|
|
|
import os
|
2020-05-15 22:40:30 +02:00
|
|
|
import unittest
|
2020-12-02 01:01:53 +01:00
|
|
|
from urllib.request import urlopen
|
2020-12-05 00:16:07 +01:00
|
|
|
|
2023-01-11 22:24:39 +01:00
|
|
|
import arrow
|
2020-12-05 00:16:07 +01:00
|
|
|
from inkycal.modules.ical_parser import iCalendar
|
2023-11-21 15:18:19 +01:00
|
|
|
from tests import Config
|
2020-12-05 00:16:07 +01:00
|
|
|
|
2020-05-29 03:58:48 +02:00
|
|
|
ical = iCalendar()
|
2023-01-11 22:24:39 +01:00
|
|
|
test_ical = Config.TEST_ICAL_URL
|
2020-05-15 22:40:30 +02:00
|
|
|
|
2023-11-21 15:18:19 +01:00
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
logging.basicConfig(level=logging.DEBUG)
|
2022-04-02 01:30:17 +02:00
|
|
|
|
2023-11-21 15:18:19 +01:00
|
|
|
|
|
|
|
class TestIcalendar(unittest.TestCase):
|
2020-05-29 03:58:48 +02:00
|
|
|
|
2022-04-02 01:30:17 +02:00
|
|
|
def test_load_url(self):
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('testing loading via URL...')
|
2022-04-02 01:30:17 +02:00
|
|
|
ical.load_url(test_ical)
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('OK')
|
2020-05-15 22:40:30 +02:00
|
|
|
|
2022-04-02 01:30:17 +02:00
|
|
|
def test_get_events(self):
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('testing parsing of events...')
|
2022-04-02 01:30:17 +02:00
|
|
|
ical.get_events(arrow.now(), arrow.now().shift(weeks=30))
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('OK')
|
2022-04-02 01:30:17 +02:00
|
|
|
|
|
|
|
def test_sorting(self):
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('testing sorting of events...')
|
2022-04-02 01:30:17 +02:00
|
|
|
ical.sort()
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('OK')
|
2020-12-05 00:16:07 +01:00
|
|
|
|
2022-04-02 01:30:17 +02:00
|
|
|
def test_show_events(self):
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('testing if events can be shown...')
|
2022-04-02 01:30:17 +02:00
|
|
|
ical.show_events()
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('OK')
|
2022-04-02 01:30:17 +02:00
|
|
|
|
|
|
|
def test_laod_from_file(self):
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('testing loading from file...')
|
2023-01-11 23:13:00 +01:00
|
|
|
dummy = str(urlopen(test_ical, timeout=10).read().decode())
|
2023-01-11 22:24:39 +01:00
|
|
|
with open('dummy.ical', mode="w", encoding="utf-8") as file:
|
2022-04-02 01:30:17 +02:00
|
|
|
file.write(dummy)
|
|
|
|
ical.load_from_file('dummy.ical')
|
2023-11-21 15:18:19 +01:00
|
|
|
logger.info('OK')
|
2022-04-02 01:30:17 +02:00
|
|
|
os.remove('dummy.ical')
|
|
|
|
|