7212: vcard: only convert non-empty BDAY to text
Discovered in #7530. 1) Previously, tests expected invalid BDAY with DD-MM-YYYY format to be ignored. Now they are wrapped with datestr (see #7212), and that is already covered by test_birthday_invalid_format_converted_to_datestr Corrected test expectations by removing the obsolete test. 2) Test expects that an empty BDAY record won't create any event objects. Modified import code accordingly -- we used to create an event object without date, regression in #7212.
This commit is contained in:
parent
b4d2e60198
commit
32ae80e9e9
@ -20,8 +20,6 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
# $Id$
|
|
||||||
|
|
||||||
"Import from vCard (RFC 2426)"
|
"Import from vCard (RFC 2426)"
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
@ -484,12 +482,15 @@ class VCardParser(object):
|
|||||||
).format(date=e.date.to_struct(), vcard_snippet=data))
|
).format(date=e.date.to_struct(), vcard_snippet=data))
|
||||||
date.set(modifier=Date.MOD_TEXTONLY, text=data)
|
date.set(modifier=Date.MOD_TEXTONLY, text=data)
|
||||||
else:
|
else:
|
||||||
|
if date_str:
|
||||||
# TRANSLATORS: leave the {vcard_snippet} untranslated.
|
# TRANSLATORS: leave the {vcard_snippet} untranslated.
|
||||||
LOG.warning(_(
|
LOG.warning(_(
|
||||||
"Date {vcard_snippet} not in appropriate format yyyy-mm-dd, "
|
"Date {vcard_snippet} not in appropriate format yyyy-mm-dd, "
|
||||||
"preserving date as text."
|
"preserving date as text."
|
||||||
).format(vcard_snippet=date_str))
|
).format(vcard_snippet=date_str))
|
||||||
date.set(modifier=Date.MOD_TEXTONLY, text=date_str)
|
date.set(modifier=Date.MOD_TEXTONLY, text=date_str)
|
||||||
|
else: # silently ignore an empty BDAY record
|
||||||
|
return
|
||||||
event = Event()
|
event = Event()
|
||||||
event.set_type(EventType(EventType.BIRTH))
|
event.set_type(EventType(EventType.BIRTH))
|
||||||
event.set_date_object(date)
|
event.set_date_object(date)
|
||||||
|
@ -486,10 +486,6 @@ class VCardCheck(unittest.TestCase):
|
|||||||
ET.SubElement(event, 'dateval', {'val': '2001-09-28'})
|
ET.SubElement(event, 'dateval', {'val': '2001-09-28'})
|
||||||
self.do_test("\r\n".join(self.vcard), self.gramps)
|
self.do_test("\r\n".join(self.vcard), self.gramps)
|
||||||
|
|
||||||
def test_add_birthday_ddmmyyyy(self):
|
|
||||||
self.vcard.insert(4, "BDAY:28-09-2001")
|
|
||||||
self.do_test("\r\n".join(self.vcard), self.gramps)
|
|
||||||
|
|
||||||
def test_add_birthday_empty(self):
|
def test_add_birthday_empty(self):
|
||||||
self.vcard.insert(4, "BDAY: ")
|
self.vcard.insert(4, "BDAY: ")
|
||||||
self.do_test("\r\n".join(self.vcard), self.gramps)
|
self.do_test("\r\n".join(self.vcard), self.gramps)
|
||||||
|
Loading…
Reference in New Issue
Block a user