MCPcopy
hub / github.com/MagicStack/asyncpg / test_record_duplicate_colnames

Method test_record_duplicate_colnames

tests/test_record.py:311–339  ·  view source on GitHub ↗

Test that Record handles duplicate column names.

(self)

Source from the content-addressed store, hash-verified

309 self.assertEqual(list(r.values()), [])
310
311 async def test_record_duplicate_colnames(self):
312 """Test that Record handles duplicate column names."""
313
314 records_descs = [
315 [('a', 1)],
316 [('a', 1), ('a', 2)],
317 [('a', 1), ('b', 2), ('a', 3)],
318 [('a', 1), ('b', 2), ('a', 3), ('c', 4), ('b', 5)],
319 ]
320
321 for desc in records_descs:
322 items = collections.OrderedDict(desc)
323
324 query = 'SELECT ' + ', '.join(
325 ['{} as {}'.format(p[1], p[0]) for p in desc])
326
327 with self.subTest(query=query):
328 r = await self.con.fetchrow(query)
329 for idx, (field, val) in enumerate(desc):
330 self.assertEqual(r[idx], val)
331 self.assertEqual(r[field], items[field])
332
333 expected_repr = '<Record {}>'.format(
334 ' '.join('{}={}'.format(p[0], p[1]) for p in desc))
335 self.assertEqual(repr(r), expected_repr)
336
337 self.assertEqual(list(r.items()), desc)
338 self.assertEqual(list(r.values()), [p[1] for p in desc])
339 self.assertEqual(list(r.keys()), [p[0] for p in desc])
340
341 async def test_record_isinstance(self):
342 """Test that Record works with isinstance."""

Callers

nothing calls this directly

Calls 1

fetchrowMethod · 0.45

Tested by

no test coverage detected