[ 
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)

Reply via email to