def check_get_packet(oggtest): input_file = io.BytesIO(oggtest.data) page = OggPage(input_file) packet_reader = page.get_packet_reader() for result in oggtest.results: packet = packet_reader.read() eq_(packet, result.data) eq_(len(packet), result.size)
def test_read_one_packet_three_pages(self): index = 12 input_file = io.BytesIO(oggtests[index].data) page = OggPage(input_file) packet_reader = page.get_packet_reader() out = packet_reader.read(1) out += packet_reader.read(255*255*2) out += packet_reader.read(4) self.assertEqual(len(out), oggtests[index].results[0].size) self.assertEqual(out, oggtests[index].results[0].data)
def test_read_one_packet_two_pages_2(self): index = 14 input_file = io.BytesIO(oggtests[index].data) page = OggPage(input_file) packet_reader = page.get_packet_reader() out = packet_reader.read(255*255) self.assertEqual(len(out), oggtests[index].results[0].size) self.assertEqual(out, oggtests[index].results[0].data) out = packet_reader.read(1) self.assertEqual(len(out), 1) self.assertEqual(out, b'h')
def test_read_chunks(self): input_file = io.BytesIO(array('B', [0]*26 + [1, 4] + list(b'pyta') )) page = OggPage(input_file) packet_reader = page.get_packet_reader() #import ipdb; ipdb.set_trace() out = packet_reader.read(2) self.assertEqual(len(out), 2) self.assertEqual(out, b'py') out = packet_reader.read(2) self.assertEqual(len(out), 2) self.assertEqual(out, b'ta')
def test_read_one_packet_two_pages(self): index = 11 input_file = io.BytesIO(oggtests[index].data) page = OggPage(input_file) packet_reader = page.get_packet_reader() #import ipdb; ipdb.set_trace() out = packet_reader.read(1) #for i in range(255): out += packet_reader.read(255*255) out += packet_reader.read(4) self.assertEqual(len(out), oggtests[index].results[0].size) self.assertEqual(out, oggtests[index].results[0].data)
def assert_new_tags(self): new_tags = OggVorbisReader(self.temp_ogg).get_tags() self.assertEqual(new_tags, self.tags) with open(self.ogg_path, 'rb') as old,\ open(self.temp_ogg, 'rb') as new: ogg_old = OggPage(old) ogg_new = OggPage(new) self.assertEqual(ogg_old.crc, ogg_new.crc) while not ogg_old.is_last_page(): ogg_old.next_page() ogg_new.next_page() if ogg_old.number == 1: self.assertNotEqual(ogg_old.crc, ogg_new.crc) else: self.assertEqual(ogg_old.crc, ogg_new.crc) self.assertTrue(ogg_new.is_last_page())
def test_write_many_tags(self): """Write 255 tags with length of 255, to complete fill a ogg page and force to create a new ogg page. """ ogg = OggVorbis(self.temp_ogg) self.tags = {} keys = [''.join(tup) for tup in (list(itertools.product( string.ascii_lowercase[:16], repeat=2)))] for key in keys: self.tags[key] = 'a'*255 #tags = utils.tag_dict(tags) ogg.write_tags(self.tags) #import ipdb; ipdb.set_trace() new_tags = OggVorbisReader(self.temp_ogg).get_tags() self.assertEqual(new_tags, self.tags) with open(self.ogg_path, 'rb') as old,\ open(self.temp_ogg, 'rb') as new: ogg_old = OggPage(old) ogg_new = OggPage(new) self.assertEqual(ogg_old.crc, ogg_new.crc) while not ogg_old.is_last_page(): ogg_old.next_page() ogg_new.next_page() self.assertNotEqual(ogg_old.crc, ogg_new.crc) self.assertFalse(ogg_new.is_last_page()) ogg_new.next_page() self.assertTrue(ogg_new.is_last_page())
def test_write_many_tags(self): """Write 255 tags with length of 255, to complete fill a ogg page and force to create a new ogg page. """ ogg = OggVorbis(self.temp_ogg) self.tags = {} keys = [ ''.join(tup) for tup in ( list(itertools.product(string.ascii_lowercase[:16], repeat=2))) ] for key in keys: self.tags[key] = 'a' * 255 #tags = utils.tag_dict(tags) ogg.write_tags(self.tags) #import ipdb; ipdb.set_trace() new_tags = OggVorbisReader(self.temp_ogg).get_tags() self.assertEqual(new_tags, self.tags) with open(self.ogg_path, 'rb') as old,\ open(self.temp_ogg, 'rb') as new: ogg_old = OggPage(old) ogg_new = OggPage(new) self.assertEqual(ogg_old.crc, ogg_new.crc) while not ogg_old.is_last_page(): ogg_old.next_page() ogg_new.next_page() self.assertNotEqual(ogg_old.crc, ogg_new.crc) self.assertFalse(ogg_new.is_last_page()) ogg_new.next_page() self.assertTrue(ogg_new.is_last_page())