def test_decode(self, value, expected_value): field = Repeated(Int32, number=1, packed=False) stream = io.BytesIO(value) data = [] for _ in expected_value: decode_varint(stream) data.append(field.decode(stream)) assert data == expected_value
def test_decode(self, value, expected_value): stream = io.BytesIO(value) number, wire_type = decode_header(stream) assert number == 1 assert wire_type == 2 data = Repeated(Int32, number=1, packed=True).decode(stream) print('\n>>>', data)
class PackedRepeatedEnum(Message): options = Repeated(Option, number=1, packed=packed)
class UnpackedRepeatedMessage(Message): numbers: List[int] = Repeated(Int32, number=1, packed=False)
def as_repeated(cls, *, number: int) -> Repeated: return Repeated(cls, number=number)
def test_encode(self, value, expected_value): assert Repeated(Int32, number=1, packed=True).encode_value(value) == expected_value
def test_invalid_input(self, invalid_input): with pytest.raises(ValueError): Repeated(Int32, number=1, packed=False).validate_value(invalid_input)
def test_valid_input(self, valid_input): Repeated(Int32, number=1, packed=False).validate_value(valid_input)