|
5 | 5 | # https://developers.google.com/open-source/licenses/bsd
|
6 | 6 |
|
7 | 7 | import datetime
|
8 |
| -import time |
| 8 | +from time import timezone |
9 | 9 | from unittest import TestCase
|
10 | 10 |
|
11 |
| -from google.cloud.spanner_dbapi.types import ( |
12 |
| - Date, |
13 |
| - DateFromTicks, |
14 |
| - Time, |
15 |
| - TimeFromTicks, |
16 |
| - Timestamp, |
17 |
| - TimestampFromTicks, |
18 |
| -) |
19 |
| -from google.cloud.spanner_dbapi.utils import PeekIterator |
20 |
| - |
21 |
| - |
22 |
| -utcOffset = time.timezone # offset for current timezone |
| 11 | +from google.cloud.spanner_dbapi import types |
23 | 12 |
|
24 | 13 |
|
25 | 14 | class TypesTests(TestCase):
|
26 |
| - def test_Date(self): |
27 |
| - actual = Date(2019, 11, 3) |
28 |
| - expected = datetime.date(2019, 11, 3) |
29 |
| - self.assertEqual(actual, expected, "mismatch between conversion") |
30 |
| - |
31 |
| - def test_Time(self): |
32 |
| - actual = Time(23, 8, 19) |
33 |
| - expected = datetime.time(23, 8, 19) |
34 |
| - self.assertEqual(actual, expected, "mismatch between conversion") |
35 | 15 |
|
36 |
| - def test_Timestamp(self): |
37 |
| - actual = Timestamp(2019, 11, 3, 23, 8, 19) |
38 |
| - expected = datetime.datetime(2019, 11, 3, 23, 8, 19) |
39 |
| - self.assertEqual(actual, expected, "mismatch between conversion") |
| 16 | + TICKS = 1572822862.9782631 + timezone # Sun 03 Nov 2019 23:14:22 UTC |
40 | 17 |
|
41 |
| - def test_DateFromTicks(self): |
42 |
| - epochTicks = 1572822862 # Sun Nov 03 23:14:22 2019 GMT |
43 |
| - |
44 |
| - actual = DateFromTicks(epochTicks + utcOffset) |
| 18 | + def test__date_from_ticks(self): |
| 19 | + actual = types._date_from_ticks(self.TICKS) |
45 | 20 | expected = datetime.date(2019, 11, 3)
|
46 | 21 |
|
47 |
| - self.assertEqual(actual, expected, "mismatch between conversion") |
48 |
| - |
49 |
| - def test_TimeFromTicks(self): |
50 |
| - epochTicks = 1572822862 # Sun Nov 03 23:14:22 2019 GMT |
| 22 | + self.assertEqual(actual, expected) |
51 | 23 |
|
52 |
| - actual = TimeFromTicks(epochTicks + utcOffset) |
| 24 | + def test__time_from_ticks(self): |
| 25 | + actual = types._time_from_ticks(self.TICKS) |
53 | 26 | expected = datetime.time(23, 14, 22)
|
54 | 27 |
|
55 |
| - self.assertEqual(actual, expected, "mismatch between conversion") |
| 28 | + self.assertEqual(actual, expected) |
56 | 29 |
|
57 |
| - def test_TimestampFromTicks(self): |
58 |
| - epochTicks = 1572822862 # Sun Nov 03 23:14:22 2019 GMT |
59 |
| - |
60 |
| - actual = TimestampFromTicks(epochTicks + utcOffset) |
| 30 | + def test__timestamp_from_ticks(self): |
| 31 | + actual = types._timestamp_from_ticks(self.TICKS) |
61 | 32 | expected = datetime.datetime(2019, 11, 3, 23, 14, 22)
|
62 | 33 |
|
63 |
| - self.assertEqual(actual, expected, "mismatch between conversion") |
| 34 | + self.assertEqual(actual, expected) |
| 35 | + |
| 36 | + def test_type_equal(self): |
| 37 | + self.assertEqual(types.BINARY, "TYPE_CODE_UNSPECIFIED") |
| 38 | + self.assertEqual(types.BINARY, "BYTES") |
| 39 | + self.assertEqual(types.BINARY, "ARRAY") |
| 40 | + self.assertEqual(types.BINARY, "STRUCT") |
| 41 | + self.assertNotEqual(types.BINARY, "STRING") |
64 | 42 |
|
65 |
| - def test_PeekIterator(self): |
66 |
| - cases = [ |
67 |
| - ("list", [1, 2, 3, 4, 6, 7], [1, 2, 3, 4, 6, 7]), |
68 |
| - ("iter_from_list", iter([1, 2, 3, 4, 6, 7]), [1, 2, 3, 4, 6, 7]), |
69 |
| - ("tuple", ("a", 12, 0xFF), ["a", 12, 0xFF]), |
70 |
| - ("iter_from_tuple", iter(("a", 12, 0xFF)), ["a", 12, 0xFF]), |
71 |
| - ("no_args", (), []), |
72 |
| - ] |
| 43 | + self.assertEqual(types.NUMBER, "BOOL") |
| 44 | + self.assertEqual(types.NUMBER, "INT64") |
| 45 | + self.assertEqual(types.NUMBER, "FLOAT64") |
| 46 | + self.assertEqual(types.NUMBER, "NUMERIC") |
| 47 | + self.assertNotEqual(types.NUMBER, "STRING") |
73 | 48 |
|
74 |
| - for name, data_in, expected in cases: |
75 |
| - with self.subTest(name=name): |
76 |
| - pitr = PeekIterator(data_in) |
77 |
| - actual = list(pitr) |
78 |
| - self.assertEqual(actual, expected) |
| 49 | + self.assertEqual(types.DATETIME, "TIMESTAMP") |
| 50 | + self.assertEqual(types.DATETIME, "DATE") |
| 51 | + self.assertNotEqual(types.DATETIME, "STRING") |
0 commit comments