summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerhard Weis <gweis@gmx.at>2010-10-29 11:32:56 +1000
committerGerhard Weis <gweis@gmx.at>2010-10-29 11:32:56 +1000
commitbc1f74552d33a3548242503bf1d40eee5b3902df (patch)
tree8d50e2571e24358ec4e5db958581ca1b3b4cf65c
parentfc0e0bf09d99113a8f8b9327b3a0cb6586e2a622 (diff)
downloadisodate-bc1f74552d33a3548242503bf1d40eee5b3902df.tar.gz
* Fixed problem with %P formating and fractions
-rw-r--r--CHANGES.txt5
-rw-r--r--setup.py2
-rw-r--r--src/isodate/isostrf.py5
-rw-r--r--src/tests/test_duration.py5
4 files changed, 13 insertions, 4 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 152710f..15f20e2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,11 @@
CHANGES
=======
+0.4.3 (2010-10-29)
+------------------
+
+- Fixed problem with %P formating and fractions (supplied by David Brooks)
+
0.4.2 (2010-10-28)
------------------
diff --git a/setup.py b/setup.py
index c9a4e15..c8cb3ac 100644
--- a/setup.py
+++ b/setup.py
@@ -36,7 +36,7 @@ def read(*rnames):
setup(name = 'isodate',
- version = '0.4.2',
+ version = '0.4.3',
packages = find_packages('src', exclude=["tests"]),
package_dir={'': 'src'},
diff --git a/src/isodate/isostrf.py b/src/isodate/isostrf.py
index e39d7ec..6ab534b 100644
--- a/src/isodate/isostrf.py
+++ b/src/isodate/isostrf.py
@@ -151,7 +151,10 @@ def _strfduration(tdt, format, yeardigits=4):
if minutes:
ret.append('%sM' % minutes)
if seconds or usecs:
- ret.append(("%d.%06d" % (seconds, usecs)).rstrip('.0'))
+ if usecs:
+ ret.append(("%d.%06d" % (seconds, usecs)).rstrip('0'))
+ else:
+ ret.append("%d" % seconds)
ret.append('S')
# at least one component has to be there.
return ret and ''.join(ret) or '0D'
diff --git a/src/tests/test_duration.py b/src/tests/test_duration.py
index 4eba608..bcc98eb 100644
--- a/src/tests/test_duration.py
+++ b/src/tests/test_duration.py
@@ -272,8 +272,8 @@ class DurationTest(unittest.TestCase):
Test various other strftime combinations.
'''
self.assertEqual(duration_isoformat(Duration(0)), 'P0D')
- self.assertEqual(duration_isoformat(Duration(0)), 'P0D')
- self.assertEqual(duration_isoformat(Duration(0)), 'P0D')
+ self.assertEqual(duration_isoformat(-Duration(0)), 'P0D')
+ self.assertEqual(duration_isoformat(Duration(seconds=10)), 'PT10S')
self.assertEqual(duration_isoformat(Duration(years=-1, months=-1)),
'-P1Y1M')
self.assertEqual(duration_isoformat(-Duration(years=1, months=1)),
@@ -287,6 +287,7 @@ class DurationTest(unittest.TestCase):
self.assertEqual(duration_isoformat(dur), 'P3Y7M23DT5H25M0.33S')
self.assertEqual(duration_isoformat(-dur), '-P3Y7M23DT5H25M0.33S')
+
def test_equal(self):
'''
Test __eq__ and __ne__ methods.