|
8 | 8 |
|
9 | 9 | pytestmark = pytest.mark.dynamodb |
10 | 10 |
|
11 | | - |
12 | 11 | READING_BASIC = {"device": "foo", "temperature": 42.42, "humidity": 84.84} |
13 | 12 |
|
14 | 13 | MSG_UNKNOWN_SOURCE = { |
@@ -240,44 +239,44 @@ def test_decode_cdc_insert_nested(): |
240 | 239 |
|
241 | 240 | def test_decode_cdc_modify_basic(): |
242 | 241 | assert DynamoDBCDCTranslator(table_name="foo").to_sql(MSG_MODIFY_BASIC) == SQLOperation( |
243 | | - statement="UPDATE foo SET " |
244 | | - "data['humidity']=:humidity, data['temperature']=:temperature, data['location']=:location, " |
245 | | - "data['string_set']=:string_set, data['number_set']=:number_set, data['binary_set']=:binary_set, " |
246 | | - "data['empty_string']=:empty_string, data['null_string']=:null_string " |
| 242 | + statement="UPDATE foo SET data=:typed, aux=:untyped " |
247 | 243 | "WHERE data['device']=:device AND data['timestamp']=:timestamp;", |
248 | 244 | parameters={ |
249 | 245 | "device": "foo", |
250 | 246 | "timestamp": "2024-07-12T01:17:42", |
251 | | - "humidity": 84.84, |
252 | | - "temperature": 55.66, |
253 | | - "location": "Sydney", |
254 | | - "string_set": ["location_1"], |
255 | | - "number_set": [0.34, 1.0, 2.0, 3.0], |
256 | | - "binary_set": ["U3Vubnk="], |
257 | | - "empty_string": "", |
258 | | - "null_string": None, |
| 247 | + "typed": { |
| 248 | + "humidity": 84.84, |
| 249 | + "temperature": 55.66, |
| 250 | + "location": "Sydney", |
| 251 | + "string_set": ["location_1"], |
| 252 | + "number_set": [0.34, 1.0, 2.0, 3.0], |
| 253 | + "binary_set": ["U3Vubnk="], |
| 254 | + "empty_string": "", |
| 255 | + "null_string": None, |
| 256 | + }, |
| 257 | + "untyped": {}, |
259 | 258 | }, |
260 | 259 | ) |
261 | 260 |
|
262 | 261 |
|
263 | 262 | def test_decode_cdc_modify_nested(): |
264 | 263 | assert DynamoDBCDCTranslator(table_name="foo").to_sql(MSG_MODIFY_NESTED) == SQLOperation( |
265 | | - statement="UPDATE foo SET " |
266 | | - "data['tags']=:tags, data['empty_map']=CAST(:empty_map AS OBJECT), data['empty_list']=:empty_list, " |
267 | | - "data['string_set']=:string_set, data['number_set']=:number_set, data['binary_set']=:binary_set, " |
268 | | - "data['somemap']=CAST(:somemap AS OBJECT), data['list_of_objects']=CAST(:list_of_objects AS OBJECT[]) " |
| 264 | + statement="UPDATE foo SET data=:typed, aux=:untyped " |
269 | 265 | "WHERE data['device']=:device AND data['timestamp']=:timestamp;", |
270 | 266 | parameters={ |
271 | 267 | "device": "foo", |
272 | 268 | "timestamp": "2024-07-12T01:17:42", |
273 | | - "tags": ["foo", "bar"], |
274 | | - "empty_map": {}, |
275 | | - "empty_list": [], |
276 | | - "string_set": ["location_1"], |
277 | | - "number_set": [0.34, 1.0, 2.0, 3.0], |
278 | | - "binary_set": ["U3Vubnk="], |
279 | | - "somemap": {"test": 1.0, "test2": 2.0}, |
280 | | - "list_of_objects": [{"foo": "bar"}, {"baz": "qux"}], |
| 269 | + "typed": { |
| 270 | + "tags": ["foo", "bar"], |
| 271 | + "empty_map": {}, |
| 272 | + "empty_list": [], |
| 273 | + "string_set": ["location_1"], |
| 274 | + "number_set": [0.34, 1.0, 2.0, 3.0], |
| 275 | + "binary_set": ["U3Vubnk="], |
| 276 | + "somemap": {"test": 1.0, "test2": 2.0}, |
| 277 | + "list_of_objects": [{"foo": "bar"}, {"baz": "qux"}], |
| 278 | + }, |
| 279 | + "untyped": {}, |
281 | 280 | }, |
282 | 281 | ) |
283 | 282 |
|
|
0 commit comments