Commit d7e034dc authored by Bram Schoenmakers's avatar Bram Schoenmakers

Merge pull request #39 from mruwek/fix-unicode-ical

Fix unicode in ical.

Addresses Unicode issues under the umbrella of issue #21.
parents 4a7e8aed 53716999
......@@ -21,11 +21,19 @@ import unittest
from topydo.lib.Config import config
from topydo.commands.IcalCommand import IcalCommand
from test.CommandTest import CommandTest
from test.CommandTest import CommandTest, utf8
from test.TestFacilities import load_file_to_todolist
IS_PYTHON_32 = (sys.version_info.major, sys.version_info.minor) == (3, 2)
def replace_ical_tags(p_text):
# replace identifiers with dots, since they're random.
result = re.sub(r'\bical:....\b', 'ical:....', p_text)
result = re.sub(r'\bUID:....\b', 'UID:....', result)
return result
class IcalCommandTest(CommandTest):
def setUp(self):
super(IcalCommandTest, self).setUp()
......@@ -33,13 +41,6 @@ class IcalCommandTest(CommandTest):
@unittest.skipIf(IS_PYTHON_32, "icalendar is not supported for Python 3.2")
def test_ical(self):
def replace_ical_tags(p_text):
# replace identifiers with dots, since they're random.
result = re.sub(r'\bical:....\b', 'ical:....', p_text)
result = re.sub(r'\bUID:....\b', 'UID:....', result)
return result
command = IcalCommand([""], self.todolist, self.out, self.error)
command.execute()
......@@ -80,5 +81,24 @@ class IcalCommandTest(CommandTest):
self.assertEqual(self.output, "")
self.assertEqual(self.errors, "icalendar is not supported in this Python version.\n")
class IcalCommandUnicodeTest(CommandTest):
def setUp(self):
super(IcalCommandUnicodeTest, self).setUp()
self.todolist = load_file_to_todolist("test/data/ListCommandUnicodeTest.txt")
@unittest.skipIf(IS_PYTHON_32, "icalendar is not supported for Python 3.2")
def test_ical_unicode(self):
command = IcalCommand([""], self.todolist, self.out, self.error)
command.execute()
self.assertTrue(self.todolist.is_dirty())
icaltext = ""
with codecs.open('test/data/ListCommandUnicodeTest.ics', 'r', encoding='utf-8') as ical:
icaltext = ical.read()
self.assertEqual(replace_ical_tags(self.output), utf8(replace_ical_tags(icaltext)))
self.assertEqual(self.errors, "")
if __name__ == '__main__':
unittest.main()
This diff was suppressed by a .gitattributes entry.
......@@ -16,12 +16,15 @@
""" A view is a list of todos, sorted and filtered. """
from six import python_2_unicode_compatible
from topydo.lib.PrettyPrinterFilter import (
PrettyPrinterColorFilter,
PrettyPrinterNumbers
)
from topydo.lib.PrettyPrinter import PrettyPrinter
@python_2_unicode_compatible
class View(object):
"""
A view is instantiated by a todo list, usually obtained from a todo.txt
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment