Start playing with unit tests.
This commit is contained in:
parent
8403dd5987
commit
7a64119843
@ -21,12 +21,13 @@ import datetime
|
|||||||
|
|
||||||
class Date(object):
|
class Date(object):
|
||||||
"""Date-object storing a simple time.time() float
|
"""Date-object storing a simple time.time() float
|
||||||
|
|
||||||
XXX not sure about the rationale for this class,
|
Useful to display dates in the UI in an
|
||||||
possibly it makes transfer over dbus easier?
|
abbreviated and easy to read format.
|
||||||
"""
|
"""
|
||||||
def __init__(self, timestamp):
|
def __init__(self, timestamp):
|
||||||
"""Initialise via a timestamp (floating point value)"""
|
"""Initialise via a timestamp (floating point value)"""
|
||||||
|
self._today = datetime.date.today()
|
||||||
self._timestamp = timestamp
|
self._timestamp = timestamp
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@ -39,14 +40,13 @@ class Date(object):
|
|||||||
the year in the date.
|
the year in the date.
|
||||||
"""
|
"""
|
||||||
date = datetime.date.fromtimestamp(self._timestamp)
|
date = datetime.date.fromtimestamp(self._timestamp)
|
||||||
today = datetime.date.today()
|
|
||||||
|
|
||||||
# FIXME localization
|
# FIXME localization
|
||||||
if date == today:
|
if date == self._today:
|
||||||
result = 'Today'
|
result = 'Today'
|
||||||
elif date == today - datetime.timedelta(1):
|
elif date == self._today - datetime.timedelta(1):
|
||||||
result = 'Yesterday'
|
result = 'Yesterday'
|
||||||
elif date.year == today.year:
|
elif date.year == self._today.year:
|
||||||
result = date.strftime('%B %d')
|
result = date.strftime('%B %d')
|
||||||
else:
|
else:
|
||||||
result = date.strftime('%B %d, %Y')
|
result = date.strftime('%B %d, %Y')
|
||||||
|
28
tests/sugar/runall.py
Normal file
28
tests/sugar/runall.py
Normal file
@ -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)
|
30
tests/sugar/test_date.py
Normal file
30
tests/sugar/test_date.py
Normal file
@ -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()
|
Loading…
Reference in New Issue
Block a user