Gentoo Archives: gentoo-commits

From: "Mark Wright (gienah)" <gienah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-haskell/hdbc-sqlite/files: TestTime.hs
Date: Sat, 02 Jun 2012 05:56:55
Message-Id: 20120602055644.050B32004B@flycatcher.gentoo.org
1 gienah 12/06/02 05:56:44
2
3 Added: TestTime.hs
4 Log:
5 Bump hdbc-sqlite to 2.3.3.0
6
7 (Portage version: 2.1.10.63/cvs/Linux x86_64)
8
9 Revision Changes Path
10 1.1 dev-haskell/hdbc-sqlite/files/TestTime.hs
11
12 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-haskell/hdbc-sqlite/files/TestTime.hs?rev=1.1&view=markup
13 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-haskell/hdbc-sqlite/files/TestTime.hs?rev=1.1&content-type=text/plain
14
15 Index: TestTime.hs
16 ===================================================================
17 module TestTime(tests) where
18 import Test.HUnit
19 import Database.HDBC
20 import TestUtils
21 import Control.Exception
22 import Data.Time
23 import Data.Time.LocalTime
24 import Data.Time.Clock.POSIX
25 import Data.Maybe
26 import Data.Convertible
27 import SpecificDB
28 import System.Locale(defaultTimeLocale)
29 import Database.HDBC.Locale (iso8601DateFormat)
30 import qualified System.Time as ST
31
32 instance Eq ZonedTime where
33 a == b = zonedTimeToUTC a == zonedTimeToUTC b &&
34 zonedTimeZone a == zonedTimeZone b
35
36 testZonedTime :: ZonedTime
37 testZonedTime = fromJust $ parseTime defaultTimeLocale (iso8601DateFormat (Just "%T %z"))
38 "1989-08-01 15:33:01 -0500"
39
40 testZonedTimeFrac :: ZonedTime
41 testZonedTimeFrac = fromJust $ parseTime defaultTimeLocale (iso8601DateFormat (Just "%T%Q %z"))
42 "1989-08-01 15:33:01.536 -0500"
43
44
45 rowdata t = [[SqlInt32 100, toSql t, SqlNull]]
46
47 testDTType inputdata convToSqlValue = dbTestCase $ \dbh ->
48 do run dbh ("CREATE TABLE hdbctesttime (testid INTEGER PRIMARY KEY NOT NULL, \
49 \testvalue " ++ dateTimeTypeOfSqlValue value ++ ")") []
50 finally (testIt dbh) (do commit dbh
51 run dbh "DROP TABLE hdbctesttime" []
52 commit dbh
53 )
54 where testIt dbh =
55 do run dbh "INSERT INTO hdbctesttime (testid, testvalue) VALUES (?, ?)"
56 [iToSql 5, value]
57 commit dbh
58 r <- quickQuery' dbh "SELECT testid, testvalue FROM hdbctesttime" []
59 case r of
60 [[testidsv, testvaluesv]] ->
61 do assertEqual "testid" (5::Int) (fromSql testidsv)
62 assertEqual "testvalue" inputdata (fromSql testvaluesv)
63 value = convToSqlValue inputdata
64
65 mkTest label inputdata convfunc =
66 TestLabel label (testDTType inputdata convfunc)
67
68 tests = TestList $
69 ((TestLabel "Non-frac" $ testIt testZonedTime) :
70 if supportsFracTime then [TestLabel "Frac" $ testIt testZonedTimeFrac] else [])
71
72 testIt baseZonedTime =
73 TestList [mkTest "Day" baseDay toSql,
74 mkTest "TimeOfDay" baseTimeOfDay toSql,
75 mkTest "ZonedTimeOfDay" baseZonedTimeOfDay toSql,
76 mkTest "LocalTime" baseLocalTime toSql,
77 mkTest "ZonedTime" baseZonedTime toSql,
78 mkTest "UTCTime" baseUTCTime toSql,
79 mkTest "DiffTime" baseDiffTime toSql,
80 mkTest "POSIXTime" basePOSIXTime posixToSql,
81 mkTest "ClockTime" baseClockTime toSql,
82 mkTest "CalendarTime" baseCalendarTime toSql,
83 mkTest "TimeDiff" baseTimeDiff toSql
84 ]
85 where
86 baseDay :: Day
87 baseDay = localDay baseLocalTime
88
89 baseTimeOfDay :: TimeOfDay
90 baseTimeOfDay = localTimeOfDay baseLocalTime
91
92 baseZonedTimeOfDay :: (TimeOfDay, TimeZone)
93 baseZonedTimeOfDay = fromSql (SqlZonedTime baseZonedTime)
94
95 baseLocalTime :: LocalTime
96 baseLocalTime = zonedTimeToLocalTime baseZonedTime
97
98 baseUTCTime :: UTCTime
99 baseUTCTime = convert baseZonedTime
100
101 baseDiffTime :: NominalDiffTime
102 baseDiffTime = basePOSIXTime
103
104 basePOSIXTime :: POSIXTime
105 basePOSIXTime = convert baseZonedTime
106
107 baseTimeDiff :: ST.TimeDiff
108 baseTimeDiff = convert baseDiffTime
109
110 -- No fractional parts for these two
111
112 baseClockTime :: ST.ClockTime
113 baseClockTime = convert testZonedTime
114
115 baseCalendarTime :: ST.CalendarTime
116 baseCalendarTime = convert testZonedTime