summary refs log tree commit diff stats
path: root/tests/stdlib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2018-01-10 17:45:29 +0000
committerGitHub <noreply@github.com>2018-01-10 17:45:29 +0000
commit24cae4addb7ec4788334db657e8637f616a4e77b (patch)
tree3b072c8836e898cb5e63a97947c3f7430965b835 /tests/stdlib
parent5f3438a3fe701544e1841419ecac9c8e64d5e66b (diff)
parentc098ee3c7a2dfeedfcc3a3a33ca83b4b1d69df63 (diff)
downloadNim-24cae4addb7ec4788334db657e8637f616a4e77b.tar.gz
Merge pull request #7033 from GULPF/allow-timezone-closures
Allow timezone procs to be closures
Diffstat (limited to 'tests/stdlib')
-rw-r--r--tests/stdlib/ttimes.nim24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/stdlib/ttimes.nim b/tests/stdlib/ttimes.nim
index a6ac186cc..1f8ae6a22 100644
--- a/tests/stdlib/ttimes.nim
+++ b/tests/stdlib/ttimes.nim
@@ -281,6 +281,30 @@ suite "ttimes":
     test "parseTest":
       runTimezoneTests()
 
+  test "dynamic timezone":
+    proc staticOffset(offset: int): Timezone =
+      proc zoneInfoFromTz(adjTime: Time): ZonedTime =
+          result.isDst = false
+          result.utcOffset = offset
+          result.adjTime = adjTime
+
+      proc zoneInfoFromUtc(time: Time): ZonedTime =
+          result.isDst = false
+          result.utcOffset = offset
+          result.adjTime = fromUnix(time.toUnix - offset)
+
+      result.name = ""
+      result.zoneInfoFromTz = zoneInfoFromTz
+      result.zoneInfoFromUtc = zoneInfoFromUtc
+
+    let tz = staticOffset(-9000)
+    let dt = initDateTime(1, mJan, 2000, 12, 00, 00, tz)
+    check dt.utcOffset == -9000
+    check dt.isDst == false
+    check $dt == "2000-01-01T12:00:00+02:30"
+    check $dt.utc == "2000-01-01T09:30:00+00:00"
+    check $dt.utc.inZone(tz) == $dt
+
   test "isLeapYear":
     check isLeapYear(2016)
     check (not isLeapYear(2015))