Server IP : 85.214.239.14 / Your IP : 3.133.153.110 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/modoboa/env/lib64/python3.5/site-packages/icalendar/tests/ |
Upload File : |
# -*- coding: utf-8 -*- from __future__ import unicode_literals import unittest import datetime import icalendar import os import pytz class TestEncoding(unittest.TestCase): def test_create_from_ical(self): directory = os.path.dirname(__file__) with open(os.path.join(directory, 'encoding.ics'), 'rb') as fp: data = fp.read() cal = icalendar.Calendar.from_ical(data) self.assertEqual(cal['prodid'].to_ical().decode('utf-8'), "-//Plönë.org//NONSGML plone.app.event//EN") self.assertEqual(cal['X-WR-CALDESC'].to_ical().decode('utf-8'), "test non ascii: äöü ÄÖÜ €") event = cal.walk('VEVENT')[0] self.assertEqual(event['SUMMARY'].to_ical().decode('utf-8'), 'Non-ASCII Test: ÄÖÜ äöü €') self.assertEqual( event['DESCRIPTION'].to_ical().decode('utf-8'), 'icalendar should be able to handle non-ascii: €äüöÄÜÖ.' ) self.assertEqual(event['LOCATION'].to_ical().decode('utf-8'), 'Tribstrül') def test_create_to_ical(self): cal = icalendar.Calendar() cal.add('prodid', "-//Plönë.org//NONSGML plone.app.event//EN") cal.add('version', "2.0") cal.add('x-wr-calname', "äöü ÄÖÜ €") cal.add('x-wr-caldesc', "test non ascii: äöü ÄÖÜ €") cal.add('x-wr-relcalid', "12345") event = icalendar.Event() event.add( 'dtstart', pytz.utc.localize(datetime.datetime(2010, 10, 10, 10, 0, 0)) ) event.add( 'dtend', pytz.utc.localize(datetime.datetime(2010, 10, 10, 12, 0, 0)) ) event.add( 'created', pytz.utc.localize(datetime.datetime(2010, 10, 10, 0, 0, 0)) ) event.add('uid', '123456') event.add('summary', 'Non-ASCII Test: ÄÖÜ äöü €') event.add( 'description', 'icalendar should be able to de/serialize non-ascii.' ) event.add('location', 'Tribstrül') cal.add_component(event) ical_lines = cal.to_ical().splitlines() cmp = b'PRODID:-//Pl\xc3\xb6n\xc3\xab.org//NONSGML plone.app.event//EN' self.assertTrue(cmp in ical_lines) def test_create_event_simple(self): event = icalendar.Event() event.add( "dtstart", pytz.utc.localize(datetime.datetime(2010, 10, 10, 0, 0, 0)) ) event.add("summary", "åäö") out = event.to_ical() summary = b'SUMMARY:\xc3\xa5\xc3\xa4\xc3\xb6' self.assertTrue(summary in out.splitlines()) def test_unicode_parameter_name(self): # Test for issue #80 cal = icalendar.Calendar() event = icalendar.Event() event.add('DESCRIPTION', 'äöüßÄÖÜ') cal.add_component(event) c = cal.to_ical() self.assertEqual( c, b'BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDESCRIPTION:' + b'\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x9f\xc3\x84\xc3\x96\xc3\x9c\r\n' + b'END:VEVENT\r\nEND:VCALENDAR\r\n' )