diff mbox series

[v3,5/5] Add `human` date format tests.

Message ID 20190121051646.20991-6-ischis2@cox.net (mailing list archive)
State New, archived
Headers show
Series Re-roll of 'human' date format patch set | expand

Commit Message

Stephen P. Smith Jan. 21, 2019, 5:16 a.m. UTC
When using `human` several fields are suppressed depending on the time
difference between the reference date and the local computer date. In
cases where the difference is less than a year, the year field is
supppressed. If the time is less than a day; the month and year is
suppressed.

Use TEST_DATE_NOW environment variable when using the test-tool to
hold the expected output strings constant.

Signed-off-by: Stephen P. Smith <ischis2@cox.net>
---
 t/t0006-date.sh | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

SZEDER Gábor Jan. 21, 2019, 3:04 p.m. UTC | #1
On Sun, Jan 20, 2019 at 10:16:46PM -0700, Stephen P. Smith wrote:
> When using `human` several fields are suppressed depending on the time
> difference between the reference date and the local computer date. In
> cases where the difference is less than a year, the year field is
> supppressed. If the time is less than a day; the month and year is
> suppressed.
> 
> Use TEST_DATE_NOW environment variable when using the test-tool to
> hold the expected output strings constant.
> 
> Signed-off-by: Stephen P. Smith <ischis2@cox.net>
> ---
>  t/t0006-date.sh | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/t/t0006-date.sh b/t/t0006-date.sh
> index ffb2975e48..35f7b52dd7 100755
> --- a/t/t0006-date.sh
> +++ b/t/t0006-date.sh
> @@ -128,4 +128,22 @@ check_approxidate '6AM, June 7, 2009' '2009-06-07 06:00:00'
>  check_approxidate '2008-12-01' '2008-12-01 19:20:00'
>  check_approxidate '2009-12-01' '2009-12-01 19:20:00'
>  
> +check_date_format_human() {
> +	t=$(($TEST_DATE_NOW - $1))
> +	echo "$t -> $2" >expect
> +	test_expect_success "human date $t" '
> +	test-tool date human $t >actual &&
> +	test_cmp expect actual

Note that the relative time output is translated, see all the Q_()
calls in show_date_relative().  Consequently, these tests fail in
GETTEXT_POISON builds.  Please use 'test_i18ncmp' instead.

Furthermore, I think it would help readibility of this helper function
if the commands in the 'test_expect_success' block were indented.

> +'
> +}
> +
> +check_date_format_human 18000 "5 hours ago" # 5 hours ago
> +check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago
> +check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago
> +check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago
> +check_date_format_human 31449600 "Aug 31 2008" # 12 months ago
> +check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago
> +check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago
> +check_date_format_human 630000000 "Sep 13 1989" # 20 years ago
> +
>  test_done
> -- 
> 2.20.1.2.gb21ebb671b
>
Stephen P. Smith Jan. 22, 2019, 12:53 a.m. UTC | #2
On Monday, January 21, 2019 8:04:29 AM MST SZEDER Gábor wrote:
> Note that the relative time output is translated, see all the Q_()
> calls in show_date_relative().  Consequently, these tests fail in
> GETTEXT_POISON builds.  Please use 'test_i18ncmp' instead.
> 
> Furthermore, I think it would help readibility of this helper function
> if the commands in the 'test_expect_success' block were indented.

No problem.   I will wait a day or two for any more comments
diff mbox series

Patch

diff --git a/t/t0006-date.sh b/t/t0006-date.sh
index ffb2975e48..35f7b52dd7 100755
--- a/t/t0006-date.sh
+++ b/t/t0006-date.sh
@@ -128,4 +128,22 @@  check_approxidate '6AM, June 7, 2009' '2009-06-07 06:00:00'
 check_approxidate '2008-12-01' '2008-12-01 19:20:00'
 check_approxidate '2009-12-01' '2009-12-01 19:20:00'
 
+check_date_format_human() {
+	t=$(($TEST_DATE_NOW - $1))
+	echo "$t -> $2" >expect
+	test_expect_success "human date $t" '
+	test-tool date human $t >actual &&
+	test_cmp expect actual
+'
+}
+
+check_date_format_human 18000 "5 hours ago" # 5 hours ago
+check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago
+check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago
+check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago
+check_date_format_human 31449600 "Aug 31 2008" # 12 months ago
+check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago
+check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago
+check_date_format_human 630000000 "Sep 13 1989" # 20 years ago
+
 test_done