kopia lustrzana https://github.com/collective/icalendar
vText, when decoded, should not return a instance of itself but an encoded string.
rodzic
4044d9c54c
commit
94e2aa7535
|
@ -18,7 +18,8 @@ from .parser import (
|
|||
q_join,
|
||||
)
|
||||
from .prop import TypesFactory
|
||||
|
||||
from .prop import vText
|
||||
from .parser_tools import DEFAULT_ENCODING
|
||||
|
||||
######################################
|
||||
# The component factory
|
||||
|
@ -153,6 +154,10 @@ class Component(CaselessDict):
|
|||
# types here. But when parsing from an ical string with from_ical, we
|
||||
# want to encode the string into a real icalendar.prop property.
|
||||
decoded = types_factory.from_ical(name, value)
|
||||
# TODO: remove when proper decoded is implemented in every prop.* class
|
||||
# Workaround to decode vText properly
|
||||
if isinstance(decoded, vText):
|
||||
decoded = decoded.encode(DEFAULT_ENCODING)
|
||||
return decoded
|
||||
|
||||
def decoded(self, name, default=_marker):
|
||||
|
|
|
@ -20,7 +20,7 @@ A small example::
|
|||
vText('-//My product//mxm.dk/')
|
||||
|
||||
>>> cal.decoded('prodid')
|
||||
vText('-//My product//mxm.dk/')
|
||||
'-//My product//mxm.dk/'
|
||||
|
||||
>>> first_event = cal.walk('vevent')[0]
|
||||
>>> first_event['description'][:75]
|
||||
|
|
|
@ -41,7 +41,7 @@ class TestCalComponent(unittest.TestCase):
|
|||
self.assertEqual(c['prodid'], prop.vText(u'-//my product//'))
|
||||
|
||||
# ... or decoded to a python type
|
||||
self.assertEqual(c.decoded('prodid'), u'-//my product//')
|
||||
self.assertEqual(c.decoded('prodid'), '-//my product//')
|
||||
|
||||
# With default values for non existing properties
|
||||
self.assertEqual(c.decoded('version', 'No Version'), 'No Version')
|
||||
|
|
Ładowanie…
Reference in New Issue