Adds the unit tests and removes useless function we don't use
authorJessica T <xray7224@googlemail.com>
Fri, 12 Apr 2013 00:40:15 +0000 (01:40 +0100)
committerJessica T <xray7224@googlemail.com>
Fri, 12 Apr 2013 00:40:15 +0000 (01:40 +0100)
mediagoblin/tests/test_timesince.py [new file with mode: 0644]
mediagoblin/tools/timesince.py

diff --git a/mediagoblin/tests/test_timesince.py b/mediagoblin/tests/test_timesince.py
new file mode 100644 (file)
index 0000000..1f8a082
--- /dev/null
@@ -0,0 +1,57 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from datetime import datetime, timedelta
+
+from mediagoblin.tools.timesince import is_aware, timesince
+
+
+def test_timesince(test_app):
+       test_time = datetime.now()
+
+       # it should ignore second and microseconds
+       assert timesince(test_time, test_time + timedelta(microseconds=1)) == "0 minutes"
+       assert timesince(test_time, test_time + timedelta(seconds=1)) == "0 minutes"
+
+       # test minutes, hours, days, weeks, months and years (singular and plural)
+       assert timesince(test_time, test_time + timedelta(minutes=1)) == "1 minute"
+       assert timesince(test_time, test_time + timedelta(minutes=2)) == "2 minutes"
+
+       assert timesince(test_time, test_time + timedelta(hours=1)) == "1 hour"
+       assert timesince(test_time, test_time + timedelta(hours=2)) == "2 hours"
+
+       assert timesince(test_time, test_time + timedelta(days=1)) == "1 day"
+       assert timesince(test_time, test_time + timedelta(days=2)) == "2 days"
+
+       assert timesince(test_time, test_time + timedelta(days=7)) == "1 week"
+       assert timesince(test_time, test_time + timedelta(days=14)) == "2 weeks"
+
+       assert timesince(test_time, test_time + timedelta(days=30)) == "1 month"
+       assert timesince(test_time, test_time + timedelta(days=60)) == "2 months"
+
+       assert timesince(test_time, test_time + timedelta(days=365)) == "1 year"
+       assert timesince(test_time, test_time + timedelta(days=730)) == "2 years"
+
+       # okay now we want to test combinations
+       #       e.g. 1 hour, 5 days
+       assert timesince(test_time, test_time + timedelta(days=5, hours=1)) == "5 days, 1 hour"
+
+       assert timesince(test_time, test_time + timedelta(days=15)) == "2 weeks, 1 day"
+
+       assert timesince(test_time, test_time + timedelta(days=97)) == "3 months, 1 week"
+
+       assert timesince(test_time, test_time + timedelta(days=2250)) == "6 years, 2 months"
+
index feea33031d6c18505d47123322540962681eadc3..b761c1be65534f69e1a2057f3e676c480306e707 100644 (file)
@@ -93,10 +93,3 @@ def timesince(d, now=None, reversed=False):
         if count2 != 0:
             s += pass_to_ugettext(', %(number)d %(type)s') % {'number': count2, 'type': name2(count2)}
     return s
-
-def timeuntil(d, now=None):
-    """
-    Like timesince, but returns a string measuring the time until
-    the given time.
-    """
-    return timesince(d, now, reversed=True)