From 1ac0e2a0bcadd2fb05ed3a244c7f695c0222bf12 Mon Sep 17 00:00:00 2001 From: Vassilii Khachaturov Date: Wed, 27 Nov 2013 17:54:44 +0200 Subject: [PATCH] 7212: convert invalid date to text on .gw import Add a failing test demonstrating the feature to be implemented... --- gramps/plugins/importer/importgeneweb.py | 7 ++-- .../importer/test/importgeneweb_test.py | 41 +++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 gramps/plugins/importer/test/importgeneweb_test.py diff --git a/gramps/plugins/importer/importgeneweb.py b/gramps/plugins/importer/importgeneweb.py index 804730680..ad9a778cd 100644 --- a/gramps/plugins/importer/importgeneweb.py +++ b/gramps/plugins/importer/importgeneweb.py @@ -106,9 +106,10 @@ def importData(database, filename, user): class GeneWebParser(object): def __init__(self, dbase, file): self.db = dbase - self.f = open(file, "rU") - self.filename = file - self.encoding = 'iso-8859-1' + if file: # Unit tests can create the parser w/o underlying file + self.f = open(file, "rU") + self.filename = file + self.encoding = 'iso-8859-1' def get_next_line(self): self.lineno += 1 diff --git a/gramps/plugins/importer/test/importgeneweb_test.py b/gramps/plugins/importer/test/importgeneweb_test.py new file mode 100644 index 000000000..f00126ef4 --- /dev/null +++ b/gramps/plugins/importer/test/importgeneweb_test.py @@ -0,0 +1,41 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2013 Vassilii Khachaturov +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +""" +Unit test of the GeneWebParser +""" +from __future__ import print_function +import unittest +from ..importgeneweb import GeneWebParser +from ....gen.lib.date import Date + +class ParseDateTest(unittest.TestCase): + def setUp(self): + self.parse = GeneWebParser(dbase=None, file=None).parse_date + + def test_regular_date_parsed_dmy(self): + d = self.parse("28/2/1876") + self.assertEqual(d.get_dmy(), (28, 2, 1876)) + + def test_invalid_date_stays_verbatim_text(self): + text = "29/2/1875" + d = self.parse(text) + self.assertEqual(d.get_modifier(), Date.MOD_TEXTONLY) + self.assertEqual(d.get_text(), text)