Merge lp:~cjwatson/python-timeline/division into lp:python-timeline

Proposed by Colin Watson
Status: Merged
Merged at revision: 15
Proposed branch: lp:~cjwatson/python-timeline/division
Merge into: lp:python-timeline
Diff against target: 70 lines (+17/-6)
3 files modified
NEWS (+7/-0)
timeline/tests/test_timedaction.py (+8/-4)
timeline/timedaction.py (+2/-2)
To merge this branch: bzr merge lp:~cjwatson/python-timeline/division
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+345341@code.launchpad.net

Commit message

Use floor division for consistent output between Python 2 and 3.

Description of the change

I noticed this while attempting to port oops-timeline.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'NEWS'
2--- NEWS 2018-05-10 08:22:00 +0000
3+++ NEWS 2018-05-10 08:44:57 +0000
4@@ -3,6 +3,13 @@
5
6 Changes and improvements to timeline, grouped by release.
7
8+NEXT
9+----
10+
11+* Use floor division so that intervals are always represented as integer
12+ numbers of milliseconds, preserving output compatibility between Python 2
13+ and 3. (Colin Watson)
14+
15 0.0.5
16 -----
17
18
19=== modified file 'timeline/tests/test_timedaction.py'
20--- timeline/tests/test_timedaction.py 2018-03-12 12:47:17 +0000
21+++ timeline/tests/test_timedaction.py 2018-05-10 08:44:57 +0000
22@@ -55,9 +55,11 @@
23 log_tuple = action.logTuple()
24 self.assertEqual(5, len(log_tuple), "!= 5 elements %s" % (log_tuple,))
25 # The first element is the start offset in ms.
26- self.assertAlmostEqual(2, log_tuple[0])
27+ self.assertIsInstance(log_tuple[0], int)
28+ self.assertEqual(2, log_tuple[0])
29 # The second element is the end offset in ms.
30- self.assertAlmostEqual(6, log_tuple[1])
31+ self.assertIsInstance(log_tuple[1], int)
32+ self.assertEqual(6, log_tuple[1])
33 self.assertEqual("foo", log_tuple[2])
34 self.assertEqual("bar", log_tuple[3])
35 # The fifth element defaults to None:
36@@ -74,8 +76,10 @@
37 action._interval_to_now = lambda: datetime.timedelta(0, 0, 0, 3)
38 log_tuple = action.logTuple()
39 self.assertEqual(5, len(log_tuple), "!= 5 elements %s" % (log_tuple,))
40- self.assertAlmostEqual(2, log_tuple[0])
41- self.assertAlmostEqual(5, log_tuple[1])
42+ self.assertIsInstance(log_tuple[0], int)
43+ self.assertEqual(2, log_tuple[0])
44+ self.assertIsInstance(log_tuple[1], int)
45+ self.assertEqual(5, log_tuple[1])
46 self.assertEqual("foo", log_tuple[2])
47 self.assertEqual("bar", log_tuple[3])
48
49
50=== modified file 'timeline/timedaction.py'
51--- timeline/timedaction.py 2018-03-12 12:47:17 +0000
52+++ timeline/timedaction.py 2018-05-10 08:44:57 +0000
53@@ -15,7 +15,7 @@
54 """Time a single categorised action."""
55
56
57-from __future__ import absolute_import, print_function
58+from __future__ import absolute_import, division, print_function
59
60 __all__ = ['TimedAction']
61
62@@ -89,7 +89,7 @@
63 def _td_to_ms(self, td):
64 """Tweak on a backport from python 2.7"""
65 return (td.microseconds + (
66- td.seconds + td.days * 24 * 3600) * 10**6) / 10**3
67+ td.seconds + td.days * 24 * 3600) * 10**6) // 10**3
68
69 def finish(self):
70 """Mark the TimedAction as finished."""

Subscribers

People subscribed via source and target branches

to all changes: