def test_too_many_fragments_raises(self): """Test exception raised if too many fragments.""" bytestream = b'\xFE\xFF\x00' * 31 # 93 bytes # At most we can have 47 fragments for fragment in fragment_frame(bytestream, nr_fragments=47): pass with pytest.raises(ValueError): for fragment in fragment_frame(bytestream, nr_fragments=48): pass
def test_single_fragment_odd_data(self): """Test 1 fragment from odd data""" bytestream = b'\xFE\xFF\x00' fragments = fragment_frame(bytestream, nr_fragments=1) fragment = next(fragments) assert pytest.raises(StopIteration, next, fragments) assert fragment == bytestream + b'\x00' assert len(fragment) == 4
def test_even_fragment_even_data(self): """Test even fragments from even data""" bytestream = b'\xFE\xFF\x00\xE1' # Each fragment should be 2 bytes fragments = fragment_frame(bytestream, nr_fragments=2) fragment = next(fragments) assert fragment == bytestream[:2] fragment = next(fragments) assert fragment == bytestream[2:] assert pytest.raises(StopIteration, next, fragments)
def test_single_fragment_even_data(self): """Test 1 fragment from even data""" bytestream = b'\xFE\xFF\x00\xE1' fragments = fragment_frame(bytestream, nr_fragments=1) fragment = next(fragments) assert pytest.raises(StopIteration, next, fragments) assert fragment == bytestream assert len(fragment) == 4 assert isinstance(fragment, bytes)
def test_even_fragment_odd_data(self): """Test even fragments from odd data""" bytestream = b'\xFE\xFF\x00' # First fragment should be 1.5 -> 2 bytes, with the final # fragment 1 byte + 1 byte padding fragments = fragment_frame(bytestream, nr_fragments=2) fragment = next(fragments) assert fragment == b'\xFE\xFF' fragment = next(fragments) assert fragment == b'\x00\x00' assert pytest.raises(StopIteration, next, fragments)
def test_odd_fragments_odd_data(self): """Test odd fragments from odd data""" bytestream = b'\xFE\xFF\x00' * 31 # 93 bytes assert len(bytestream) % 2 == 1 # Each fragment should be 13.3 -> 14 bytes, with the final # fragment 9 bytes + 1 byte padding fragments = fragment_frame(bytestream, nr_fragments=7) for ii in range(6): fragment = next(fragments) assert len(fragment) == 14 fragment = next(fragments) assert len(fragment) == 10 assert pytest.raises(StopIteration, next, fragments)
def test_odd_fragments_even_data(self): """Test odd fragments from even data""" bytestream = b'\xFE\xFF\x00\xE1' * 31 # 124 bytes assert len(bytestream) % 2 == 0 # Each fragment should be 17.7 -> 18 bytes, with the final # fragment 16 bytes fragments = fragment_frame(bytestream, nr_fragments=7) for ii in range(6): fragment = next(fragments) assert len(fragment) == 18 fragment = next(fragments) assert len(fragment) == 16 assert pytest.raises(StopIteration, next, fragments)
def time_fragment_single(self): """Time fragmenting each frame into 1 fragment.""" for ii in range(self.no_runs): for fragment in fragment_frame(self.test_data[0], 1): pass
def time_fragment_ten(self): """Time fragmenting each frame into 10 fragments.""" for ii in range(self.no_runs): for fragment in fragment_frame(self.test_data[0], 10): pass