Skip to content

Commit 9f40a6b

Browse files
authored
fix generate_datetime helper (#344)
* fix generate_datetime helper * fix ref
1 parent b7a2520 commit 9f40a6b

2 files changed

Lines changed: 26 additions & 3 deletions

File tree

pygeometa/helpers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ def generate_datetime(date_value: str) -> str:
104104
:returns: `str` of date-time value
105105
"""
106106

107+
format_ = None
107108
value = None
108109

109110
if isinstance(date_value, str) and date_value != 'None':
@@ -118,8 +119,11 @@ def generate_datetime(date_value: str) -> str:
118119
LOGGER.debug(msg)
119120
format_ = '%Y-%m-%dT%H:%M:%S'
120121

121-
LOGGER.debug('date type found; expanding to date-time')
122-
value = datetime.strptime(date_value, format_).strftime('%Y-%m-%dT%H:%M:%SZ') # noqa
122+
if format_ is not None:
123+
LOGGER.debug('date type found; expanding to date-time')
124+
value = datetime.strptime(date_value, format_).strftime('%Y-%m-%dT%H:%M:%SZ') # noqa
125+
else:
126+
value = date_value
123127

124128
elif isinstance(date_value, int) and len(str(date_value)) == 4:
125129
date_value2 = str(date_value)

tests/run_tests.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
prune_transfer_option, MCFReadError,
6060
MCFValidationError, SCHEMAS, transform_metadata,
6161
validate_mcf)
62-
from pygeometa.helpers import json_dumps
62+
from pygeometa.helpers import generate_datetime, json_dumps
6363
from pygeometa.schemas import (get_supported_schemas, InvalidSchemaError,
6464
load_schema)
6565
from pygeometa.schemas.iso19139 import ISO19139OutputSchema
@@ -549,6 +549,25 @@ def test_schema_org_coords(self):
549549
}
550550
self.assertEqual(_get_box_from_coords(geo3), [1, 2, 3, 4])
551551

552+
def test_generate_datetime(self):
553+
"""Test pygeometa.helpers:generate_datetime"""
554+
555+
self.assertEqual(generate_datetime('2026'), '2026-01-01T00:00:00Z')
556+
self.assertEqual(generate_datetime('2026-10'), '2026-10-01T00:00:00Z')
557+
self.assertEqual(generate_datetime('2026-10-30'),
558+
'2026-10-30T00:00:00Z')
559+
self.assertEqual(generate_datetime('2026-10-30T00:12:21'),
560+
'2026-10-30T00:12:21Z')
561+
self.assertEqual(generate_datetime('2026-10-30T00:12:21Z'),
562+
'2026-10-30T00:12:21Z')
563+
self.assertEqual(generate_datetime(2026), '2026-01-01T00:00:00Z')
564+
self.assertEqual(generate_datetime(datetime.datetime(2026, 10, 30)),
565+
'2026-10-30T00:00:00Z')
566+
self.assertEqual(generate_datetime(datetime.datetime(2026, 10, 30, 11, 11, 11)), # noqa
567+
'2026-10-30T11:11:11Z')
568+
self.assertEqual(len(generate_datetime(None)), 20)
569+
self.assertEqual(len(generate_datetime('None')), 20)
570+
552571

553572
def get_abspath(filepath):
554573
"""helper function absolute file access"""

0 commit comments

Comments
 (0)