MCPcopy Create free account
hub / github.com/MagicStack/asyncpg / test_bitstring

Method test_bitstring

tests/test_codecs.py:560–585  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

558 await self.con.fetchval('select now($1::void)', '')
559
560 def test_bitstring(self):
561 bitlen = random.randint(0, 1000)
562 bs = ''.join(random.choice(('1', '0', ' ')) for _ in range(bitlen))
563 bits = asyncpg.BitString(bs)
564 sanitized_bs = bs.replace(' ', '')
565 self.assertEqual(sanitized_bs,
566 bits.as_string().replace(' ', ''))
567
568 expected_bytelen = \
569 len(sanitized_bs) // 8 + (1 if len(sanitized_bs) % 8 else 0)
570
571 self.assertEqual(len(bits.bytes), expected_bytelen)
572
573 little, big = bits.to_int('little'), bits.to_int('big')
574 self.assertEqual(bits.from_int(little, len(bits), 'little'), bits)
575 self.assertEqual(bits.from_int(big, len(bits), 'big'), bits)
576
577 naive_little = 0
578 for i, c in enumerate(sanitized_bs):
579 naive_little |= int(c) << i
580 naive_big = 0
581 for c in sanitized_bs:
582 naive_big = (naive_big << 1) | int(c)
583
584 self.assertEqual(little, naive_little)
585 self.assertEqual(big, naive_big)
586
587 async def test_interval(self):
588 res = await self.con.fetchval("SELECT '5 years'::interval")

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected