Skip to content

Commit cbc8184

Browse files
committed
Fix set() not accepting the tz argument
1 parent 4b31cdd commit cbc8184

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Change Log
22

3+
## [Unreleased]
4+
5+
### Fixed
6+
7+
- Fixed `set()` not acception the `tz` keyword argument.
8+
9+
310
## [1.5.0] - 2018-04-16
411

512
### Added

pendulum/pendulum.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,11 @@ def microsecond_(self, microsecond):
569569
return self.set(microsecond=microsecond)
570570

571571
def set(self, **kwargs):
572+
if 'tz' in kwargs:
573+
kwargs['tzinfo'] = kwargs.pop('tz')
574+
575+
return self.replace(**kwargs)
576+
572577
kwargs['tzinfo'] = True
573578

574579
return self._tz.convert(self.replace(**kwargs))

tests/pendulum_tests/test_fluent_setters.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,19 @@ def test_replace_tzinfo_dst_with_error_transition_rule(self):
184184
d = Pendulum.create(2013, 3, 31, 2, 30)
185185

186186
self.assertRaises(NonExistingTime, d.replace, tzinfo='Europe/Paris')
187+
188+
def test_set(self):
189+
dt = pendulum.datetime(2016, 7, 2, 0, 41, 20)
190+
191+
assert dt.set(year=1995).year == 1995
192+
assert dt.set(month=11).month == 11
193+
assert dt.set(day=9).day == 9
194+
assert dt.set(hour=12).hour == 12
195+
assert dt.set(minute=34).minute == 34
196+
assert dt.set(second=56).second == 56
197+
assert dt.set(tz='Europe/Paris').timezone_name == 'Europe/Paris'
198+
199+
dt = pendulum.datetime(2013, 3, 31, 2, 30)
200+
dt = dt.set(tz='Europe/Paris')
201+
202+
self.assertPendulum(dt, 2013, 3, 31, 3, 30)

0 commit comments

Comments
 (0)