Skip to content

Commit afee386

Browse files
klardotshsdispater
authored andcommitted
Resolve an AttributeError when calling between (#39)
* Resolve an AttributeError on `_datetime` This seemed to be caused by passing two Pendulum objects created by `pendulum.instance(... datetime ...)` to `pendulum.now().between(...)`. Removing this explicit conversion prevents a double conversion caused by the `__gt__` method, which raised an AttributeError (because, of course, native DT objects, already extracted, will not contain a `_datetime` attribute). This bug was at least found in pendulum 0.5.4 on python 2.7, my local dev environment for my current project. * Unit test against Issue #39
1 parent 075b295 commit afee386

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

pendulum/pendulum.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,9 +1166,6 @@ def between(self, dt1, dt2, equal=True):
11661166
11671167
:rtype: bool
11681168
"""
1169-
dt1 = self._get_datetime(dt1)
1170-
dt2 = self._get_datetime(dt2)
1171-
11721169
if dt1 > dt2:
11731170
dt1, dt2 = dt2, dt1
11741171

tests/pendulum_tests/test_comparison.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import pytz
44
from datetime import datetime
5+
from time import sleep
56
from pendulum import Pendulum
67

78
from .. import AbstractTestCase
@@ -294,6 +295,15 @@ def test_between_not_equal_switch_false(self):
294295
self.assertFalse(d1.between(d3, d2, False))
295296
self.assertFalse(d1.between(d5, d4, False))
296297

298+
def test_between_issue_39(self):
299+
old = Pendulum.instance(datetime.utcnow())
300+
sleep(0.2)
301+
mid = Pendulum.now('UTC')
302+
sleep(0.2)
303+
new = Pendulum.instance(datetime.utcnow())
304+
305+
self.assertTrue(mid.between(old, new))
306+
297307
def test_min_is_fluid(self):
298308
d = Pendulum.now()
299309
self.assertIsInstanceOfPendulum(d.min_())

0 commit comments

Comments
 (0)