From 7a641198433762c83a84e9464f103e33e38f8fa9 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sun, 19 Aug 2007 00:24:51 +0200 Subject: [PATCH] Start playing with unit tests. --- sugar/date.py | 14 +++++++------- tests/sugar/runall.py | 28 ++++++++++++++++++++++++++++ tests/sugar/test_date.py | 30 ++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 tests/sugar/runall.py create mode 100644 tests/sugar/test_date.py diff --git a/sugar/date.py b/sugar/date.py index 3b688181..3f4dcc2e 100644 --- a/sugar/date.py +++ b/sugar/date.py @@ -21,12 +21,13 @@ import datetime class Date(object): """Date-object storing a simple time.time() float - - XXX not sure about the rationale for this class, - possibly it makes transfer over dbus easier? + + Useful to display dates in the UI in an + abbreviated and easy to read format. """ def __init__(self, timestamp): """Initialise via a timestamp (floating point value)""" + self._today = datetime.date.today() self._timestamp = timestamp def __str__(self): @@ -39,14 +40,13 @@ class Date(object): the year in the date. """ date = datetime.date.fromtimestamp(self._timestamp) - today = datetime.date.today() # FIXME localization - if date == today: + if date == self._today: result = 'Today' - elif date == today - datetime.timedelta(1): + elif date == self._today - datetime.timedelta(1): result = 'Yesterday' - elif date.year == today.year: + elif date.year == self._today.year: result = date.strftime('%B %d') else: result = date.strftime('%B %d, %Y') diff --git a/tests/sugar/runall.py b/tests/sugar/runall.py new file mode 100644 index 00000000..ff672be2 --- /dev/null +++ b/tests/sugar/runall.py @@ -0,0 +1,28 @@ +# Copyright (C) 2007, Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +import unittest + +import test_date + +runner = unittest.TextTestRunner() +loader = unittest.TestLoader() + +suite = unittest.TestSuite() +suite.addTest(loader.loadTestsFromModule(test_date)) + +runner.run(suite) diff --git a/tests/sugar/test_date.py b/tests/sugar/test_date.py new file mode 100644 index 00000000..c6da871e --- /dev/null +++ b/tests/sugar/test_date.py @@ -0,0 +1,30 @@ +# Copyright (C) 2007, Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +import datetime +import unittest + +from sugar.date import Date + +class TestDate(unittest.TestCase): + def test_today(self): + date = Date(datetime.date(2000, 1, 1)) + date._today = datetime.date(2000, 1, 1) + self.assertEqual(str(date), 'Today') + +if __name__ == "__main__": + unittest.main()