From cf2615da62801f1fbde61c7905431963e121e2e9 Mon Sep 17 00:00:00 2001 From: Rhet Turnbull Date: Sat, 13 Jun 2020 08:32:56 -0700 Subject: [PATCH] Updated DatetimeFormatter to include hour/min/sec --- osxphotos/datetime_formatter.py | 15 ++++++++ tests/test_datetime_formatter.py | 59 ++++++++++++++++++++++++++++++-- 2 files changed, 71 insertions(+), 3 deletions(-) diff --git a/osxphotos/datetime_formatter.py b/osxphotos/datetime_formatter.py index 5c913872..54c17977 100644 --- a/osxphotos/datetime_formatter.py +++ b/osxphotos/datetime_formatter.py @@ -53,3 +53,18 @@ class DateTimeFormatter: def doy(self): """ Julian day of year starting from 001 """ return f"{self.dt.strftime('%j')}" + + @property + def hour(self): + """ 2-digit hour """ + return f"{self.dt.strftime('%H')}" + + @property + def min(self): + """ 2-digit minute """ + return f"{self.dt.strftime('%M')}" + + @property + def sec(self): + """ 2-digit second """ + return f"{self.dt.strftime('%S')}" diff --git a/tests/test_datetime_formatter.py b/tests/test_datetime_formatter.py index 2b88dfa4..b49b2568 100644 --- a/tests/test_datetime_formatter.py +++ b/tests/test_datetime_formatter.py @@ -1,14 +1,16 @@ """ test datetime_formatter.DateTimeFormatter """ import pytest -def test_datetime_formatter(): + +def test_datetime_formatter_1(): + """Test DateTimeFormatter """ import datetime import locale from osxphotos.datetime_formatter import DateTimeFormatter - + locale.setlocale(locale.LC_ALL, "en_US") - dt = datetime.datetime(2020,5,23) + dt = datetime.datetime(2020, 5, 23, 12, 42, 33) dtf = DateTimeFormatter(dt) assert dtf.date == "2020-05-23" @@ -19,3 +21,54 @@ def test_datetime_formatter(): assert dtf.mm == "05" assert dtf.dd == "23" assert dtf.doy == "144" + assert dtf.hour == "12" + assert dtf.min == "42" + assert dtf.sec == "33" + + +def test_datetime_formatter_2(): + """Test DateTimeFormatter with hour > 12 """ + import datetime + import locale + from osxphotos.datetime_formatter import DateTimeFormatter + + locale.setlocale(locale.LC_ALL, "en_US") + + dt = datetime.datetime(2020, 5, 23, 14, 42, 33) + dtf = DateTimeFormatter(dt) + + assert dtf.date == "2020-05-23" + assert dtf.year == "2020" + assert dtf.yy == "20" + assert dtf.month == "May" + assert dtf.mon == "May" + assert dtf.mm == "05" + assert dtf.dd == "23" + assert dtf.doy == "144" + assert dtf.hour == "14" + assert dtf.min == "42" + assert dtf.sec == "33" + + +def test_datetime_formatter_3(): + """Test DateTimeFormatter zero-padding """ + import datetime + import locale + from osxphotos.datetime_formatter import DateTimeFormatter + + locale.setlocale(locale.LC_ALL, "en_US") + + dt = datetime.datetime(2020, 5, 2, 9, 3, 6) + dtf = DateTimeFormatter(dt) + + assert dtf.date == "2020-05-02" + assert dtf.year == "2020" + assert dtf.yy == "20" + assert dtf.month == "May" + assert dtf.mon == "May" + assert dtf.mm == "05" + assert dtf.dd == "02" + assert dtf.doy == "123" + assert dtf.hour == "09" + assert dtf.min == "03" + assert dtf.sec == "06"