|
1 | 1 | from tests.testcase import BaseTestCase
|
| 2 | +from decimal import Decimal |
2 | 3 |
|
3 | 4 |
|
4 | 5 | class MapTestCase(BaseTestCase):
|
@@ -100,3 +101,42 @@ def test_array(self):
|
100 | 101 | )
|
101 | 102 | inserted = self.client.execute(query)
|
102 | 103 | self.assertEqual(inserted, data)
|
| 104 | + |
| 105 | + def test_decimal(self): |
| 106 | + with self.create_stream('a map(string, Decimal(9, 2))'): |
| 107 | + data = [ |
| 108 | + ({'key1': Decimal('123.45')}, ), |
| 109 | + ({'key2': Decimal('234.56')}, ), |
| 110 | + ({'key3': Decimal('345.67')}, ) |
| 111 | + ] |
| 112 | + self.client.execute('INSERT INTO test (a) VALUES', data) |
| 113 | + query = 'SELECT * FROM test' |
| 114 | + inserted = self.emit_cli(query) |
| 115 | + self.assertEqual( |
| 116 | + inserted, |
| 117 | + "{'key1':123.45}\n" |
| 118 | + "{'key2':234.56}\n" |
| 119 | + "{'key3':345.67}\n" |
| 120 | + ) |
| 121 | + inserted = self.client.execute(query) |
| 122 | + self.assertEqual(inserted, data) |
| 123 | + |
| 124 | + def test_nested_map(self): |
| 125 | + with self.create_stream('a map(string, map(string, map(string, int)))'): |
| 126 | + data = [ |
| 127 | + ({'key1': {'key2': {'key3': 1}}}, ), |
| 128 | + ({'key1': {'key2': {'key3': 2}}}, ), |
| 129 | + ({'key1': {'key2': {'key3': 3}}}, ), |
| 130 | + ] |
| 131 | + self.client.execute('INSERT INTO test (a) VALUES', data) |
| 132 | + query = 'SELECT * FROM test' |
| 133 | + inserted = self.emit_cli(query) |
| 134 | + self.assertEqual( |
| 135 | + inserted, |
| 136 | + "{'key1':{'key2':{'key3':1}}}\n" |
| 137 | + "{'key1':{'key2':{'key3':2}}}\n" |
| 138 | + "{'key1':{'key2':{'key3':3}}}\n" |
| 139 | + ) |
| 140 | + inserted = self.client.execute(query) |
| 141 | + self.assertEqual(inserted, data) |
| 142 | + |
0 commit comments