diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2010-06-10 11:55:18 +0200 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2010-06-10 11:55:18 +0200 |
| commit | 3b4330920da718d2dbb2a4a94577c07eaa58a8c5 (patch) | |
| tree | 90dd732cd2c9cb8a3abcc95bb06238aa15b715b5 | |
| parent | 919e1b4d3dad602130aff9bb56d6741be02d831d (diff) | |
| download | python-apt-3b4330920da718d2dbb2a4a94577c07eaa58a8c5.tar.gz | |
* apt/utils.py:
- fix end date calculation for releases in june
| -rw-r--r-- | apt/utils.py | 5 | ||||
| -rw-r--r-- | debian/changelog | 7 | ||||
| -rw-r--r-- | tests/test_utils.py | 56 |
3 files changed, 68 insertions, 0 deletions
diff --git a/apt/utils.py b/apt/utils.py index 80ba6d65..8fc69215 100644 --- a/apt/utils.py +++ b/apt/utils.py @@ -28,11 +28,16 @@ def get_maintenance_end_date(release_date, m_months): ends. Needs the data of the release and the number of months that its is supported as input """ + # calc end date years = m_months / 12 months = m_months % 12 support_end_year = (release_date.year + years + (release_date.month + months)/12) support_end_month = (release_date.month + months) % 12 + # special case: this happens when e.g. doing 2010-06 + 18 months + if support_end_month == 0: + support_end_month = 12 + support_end_year -= 1 return (support_end_year, support_end_month) diff --git a/debian/changelog b/debian/changelog index dde80a4f..9fe79188 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +python-apt (0.7.95ubuntu2) maverick; urgency=low + + * apt/utils.py: + - fix end date calculation for releases in june + + -- Michael Vogt <michael.vogt@ubuntu.com> Thu, 10 Jun 2010 11:50:21 +0200 + python-apt (0.7.95ubuntu1) maverick; urgency=low * merge from debian bzr, remaining changes: diff --git a/tests/test_utils.py b/tests/test_utils.py new file mode 100644 index 00000000..19dd977d --- /dev/null +++ b/tests/test_utils.py @@ -0,0 +1,56 @@ +#!/usr/bin/python +# +# Copyright (C) 2010 Michael Vogt <michael.vogt@ubuntu.com> +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + +import sys +sys.path.insert(0, "..") +import apt_pkg +import apt.utils +import datetime +import unittest + +class TestUtils(unittest.TestCase): + + + def test_maintenance_time(self): + from apt.utils import get_maintenance_end_date + months_of_support = 18 + # test historic releases, jaunty + release_date = datetime.datetime(2009, 04, 23) + (end_year, end_month) = get_maintenance_end_date(release_date, months_of_support) + self.assertEqual(end_year, 2010) + self.assertEqual(end_month, 10) + # test historic releases, karmic + release_date = datetime.datetime(2009, 10, 29) + (end_year, end_month) = get_maintenance_end_date(release_date, months_of_support) + self.assertEqual(end_year, 2011) + self.assertEqual(end_month, 04) + # test maverick + release_date = datetime.datetime(2010, 10, 10) + (end_year, end_month) = get_maintenance_end_date(release_date, months_of_support) + self.assertEqual(end_year, 2012) + self.assertEqual(end_month, 04) + + # test with modulo zero + release_date = datetime.datetime(2010, 06, 10) + (end_year, end_month) = get_maintenance_end_date(release_date, months_of_support) + self.assertEqual(end_year, 2011) + self.assertEqual(end_month, 12) + + # test dapper + months_of_support = 60 + release_date = datetime.datetime(2008, 04, 24) + (end_year, end_month) = get_maintenance_end_date(release_date, months_of_support) + self.assertEqual(end_year, 2013) + self.assertEqual(end_month, 04) + + # what datetime says + #d = datetime.timedelta(18*30) + #print "end date: ", release_date + d + +if __name__ == "__main__": + unittest.main() |
