Skip to content

Commit db2c77d

Browse files
rettichschnidiphanak-sap
authored andcommitted
model: fix default Edm.DateTimeOffset value (#195)
Default value was broken in several ways: - Month 0 does not exist - Day 0 does not exist - Year 0 can not be handled by Python datetime
1 parent feb0219 commit db2c77d

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
66

77
## [Unreleased]
88

9+
### Fixed
910
- Fix Increased robustness when schema with empty properties is returned
11+
- Use valid default value for Edm.DateTimeOffset - Reto Schneider
1012

1113
## [1.8.0]
1214

pyodata/v2/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def _build_types():
200200
Types.register_type(Typ('Edm.String', '\'\'', EdmStringTypTraits()))
201201
Types.register_type(Typ('Edm.Time', 'time\'PT00H00M\''))
202202
Types.register_type(
203-
Typ('Edm.DateTimeOffset', 'datetimeoffset\'0000-00-00T00:00:00Z\'', EdmDateTimeOffsetTypTraits()))
203+
Typ('Edm.DateTimeOffset', 'datetimeoffset\'1753-01-01T00:00:00Z\'', EdmDateTimeOffsetTypTraits()))
204204

205205
@staticmethod
206206
def register_type(typ):

tests/test_service_v2.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2379,7 +2379,9 @@ def test_parsing_of_datetime_before_unix_time(service):
23792379
('/Date(981173106000+0001)/', datetime.datetime(2001, 2, 3, 4, 5, 6,
23802380
tzinfo=datetime.timezone(datetime.timedelta(minutes=1)))),
23812381
('/Date(981173106000-0001)/', datetime.datetime(2001, 2, 3, 4, 5, 6,
2382-
tzinfo=datetime.timezone(-datetime.timedelta(minutes=1))))])
2382+
tzinfo=datetime.timezone(-datetime.timedelta(minutes=1)))),
2383+
(None, datetime.datetime(1753, 1, 1, 0, 0, 0, tzinfo=datetime.timezone.utc)),
2384+
])
23832385
def test_parsing_of_datetimeoffset(service, json_input, expected):
23842386
"""Test DateTimeOffset handling."""
23852387

0 commit comments

Comments
 (0)