hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karen Coppage (Jira)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-22685) TestHiveSqlDateTimeFormatter Now Broken with New Year 2020
Date Tue, 14 Jan 2020 16:19:00 GMT

    [ https://issues.apache.org/jira/browse/HIVE-22685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17015198#comment-17015198
] 

Karen Coppage commented on HIVE-22685:
--------------------------------------

Hi David, ok, using the guava Optional works. But I still think that changing/exposing the
class in the interest of testing is a bad practice. I also worry about the usefulness of testing
with dates around 1970 – they aren't as likely to be actually used. If we test with constantly
changing, relevant dates then there's a higher chance of catching any issues with the source
code. For clarity, we can include details about the expected value (and the current date)
as the "message" parameter of the assert.

That's my opinion. If you really really really care about using hard-coding dates for testing
then I'll give a +1, but I  think it's more elegant to let source code be source code and
not test code.

> TestHiveSqlDateTimeFormatter Now Broken with New Year 2020
> ----------------------------------------------------------
>
>                 Key: HIVE-22685
>                 URL: https://issues.apache.org/jira/browse/HIVE-22685
>             Project: Hive
>          Issue Type: Bug
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Major
>         Attachments: HIVE-22685.1.patch, HIVE-22685.2.patch, HIVE-22685.3.patch
>
>
> Unit test is now broken.... (n)(n):(
> {code:java}
>     //Tests for these patterns would need changing every decade if done in the above
way.
>     //Thursday of the first week in an ISO year always matches the Gregorian year.
>     checkParseTimestampIso("IY-IW-ID", "0-01-04", "iw, yyyy", "01, " + thisYearString.substring(0,
3) + "0");
>     checkParseTimestampIso("I-IW-ID", "0-01-04", "iw, yyyy", "01, " + thisYearString.substring(0,
3) + "0");
> {code}
> {code}
> org.junit.ComparisonFailure: expected:<01, 20[1]0> but was:<01, 20[2]0>
> 	at org.junit.Assert.assertEquals(Assert.java:115)
> 	at org.junit.Assert.assertEquals(Assert.java:144)
> 	at org.apache.hadoop.hive.common.format.datetime.TestHiveSqlDateTimeFormatter.checkParseTimestampIso(TestHiveSqlDateTimeFormatter.java:313)
> 	at org.apache.hadoop.hive.common.format.datetime.TestHiveSqlDateTimeFormatter.testParseTimestamp(TestHiveSqlDateTimeFormatter.java:287)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message