10000 test input: use explicit package declaration by abn · Pull Request #345 · danielgtaylor/python-betterproto · GitHub
[go: up one dir, main page]

Skip to content

test input: use explicit package declaration #345

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 3, 2022

Conversation

abn
Copy link
Collaborator
@abn abn commented Mar 1, 2022

This change ensures that tests run successfully against new versions
of python-protobuf. Without this change, due to the nature of testing
there will arise conflict exceptions.

This change also removes manual reset of symbol database in binary
compatibility tests as well as ensure sys.path reset happens
reliably.

@abn
Copy link
Collaborator Author
abn commented Mar 1, 2022

Reproducing issue being fixed

podman run --rm -i --entrypoint bash docker.io/python:3.10 <<EOF
set -xe
pip --disable-pip-version-check --quiet install poetry
git clone https://github.com/danielgtaylor/python-betterproto.git
cd python-betterproto/
poetry install
poetry run python -m tests.generate
poetry run pytest tests/
EOF
Console Output

====================================================================================================== test session starts ======================================================================================================
platform linux -- Python 3.10.2, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /python-betterproto, configfile: pytest.ini
plugins: cov-2.12.1, mock-3.6.1, asyncio-0.12.0
collected 375 items                                                                                                                                                                                                             

tests/test_casing.py ........................................................................                                                                                                                             [ 19%]
tests/test_deprecated.py ....                                                                                                                                                                                             [ 20%]
tests/test_features.py .................                                                                                                                                                                                  [ 24%]
tests/test_get_ref_type.py ................................................                                                                                                                                               [ 37%]
tests/test_inputs.py ........X.......X.........x......x.........X............X.......X.........x......x.........X..........x.....x................x............FFFFF.xFFFFFxFFFFFFFFFFFFFFFFxFFF                          [ 83%]
tests/test_version.py .                                                                                                                                                                                                   [ 83%]
tests/grpc/test_grpclib_client.py ........                                                                                                                                                                                [ 85%]
tests/grpc/test_stream_stream.py .....                                                                                                                                                                                    [ 86%]
tests/inputs/bool/test_bool.py .                                                                                                                                                                                          [ 87%]
tests/inputs/casing/test_casing.py ...                                                                                                                                                                                    [ 88%]
tests/inputs/enum/test_enum.py .........                                                                                                                                                                                  [ 90%]
tests/inputs/example_service/test_example_service.py .                                                                                                                                                                    [ 90%]
tests/inputs/google_impl_behavior_equivalence/test_google_impl_behavior_equivalence.py ..                                                                                                                                 [ 91%]
tests/inputs/googletypes_response/test_googletypes_response.py .........xxxxxxxxx                                                                                                                                         [ 96%]
tests/inputs/googletypes_response_embedded/test_googletypes_response_embedded.py .                                                                                                                                        [ 96%]
tests/inputs/import_service_input_message/test_import_service_input_message.py ...                                                                                                                                        [ 97%]
tests/inputs/oneof/test_oneof.py ..                                                                                                                                                                                       [ 97%]
tests/inputs/oneof_default_value_serialization/test_oneof_default_value_serialization.py ...                                                                                                                              [ 98%]
tests/inputs/oneof_enum/test_oneof_enum.py ...                                                                                                                                                                            [ 99%]
tests/inputs/proto3_field_presence/test_proto3_field_presence.py .                                                                                                                                                        [ 99%]
tests/inputs/proto3_field_presence_oneof/test_proto3_field_presence_oneof.py .                                                                                                                                            [ 99%]
tests/inputs/repeated_duration_timestamp/test_repeated_duration_timestamp.py .                                                                                                                                            [100%]

=========================================================================================================== FAILURES ============================================================================================================
_______________________________________________________________________________________________ test_binary_compatibility[nested] _______________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.nested' from '/python-betterproto/tests/output_betterproto/ne...onFile(json='{\n  "nested": {\n    "count": 150\n  },\n  "sibling": {}\n}\n', test_name='nested', file_name='nested')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/nested/nested_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnested.proto\"t\n\x04Test\x12\x1c\n\x06nested\x18\x01 \x01(\x0b\x32\x0c.Test.Nested\x12\x19\n\x07sibling\x18\x02 \x01(\x0b\x32\x08.Sibling\x12\x1a\n\x08sibling2\x18\x03 \x01(\x0b\x32\x08.Sibling\x1a\x17\n\x06Nested\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"\x16\n\x07Sibling\x12\x0b\n\x03\x66oo\x18\x01 \x01(\x05\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b95cbdc0>, desc_name = 'Test', file_name = 'nested.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "nested.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
____________________________________________________________________________________________ test_binary_compatibility[oneof_empty] _____________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.oneof_empty' from '/python-betterproto/tests/output_betterpro...e(json='{\n  "maybe2": {\n    "sometimes": "now"\n  }\n}\n', test_name='oneof_empty', file_name='oneof_empty_maybe2')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/oneof_empty/oneof_empty_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11oneof_empty.proto\"\t\n\x07Nothing\"!\n\x0cMaybeNothing\x12\x11\n\tsometimes\x18* \x01(\t\"n\n\x04Test\x12\x1b\n\x07nothing\x18\x01 \x01(\x0b\x32\x08.NothingH\x00\x12\x1f\n\x06maybe1\x18\x02 \x01(\x0b\x32\r.MaybeNothingH\x00\x12\x1f\n\x06maybe2\x18\x03 \x01(\x0b\x32\r.MaybeNothingH\x00\x42\x07\n\x05\x65mptyb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9641660>, desc_name = 'Test', file_name = 'oneof_empty.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "oneof_empty.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
__________________________________________________________________________________________ test_binary_compatibility[deprecated_field] __________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.deprecated_field' from '/python-betterproto/tests/output_bett...estCaseJsonFile(json='{\n  "v": 10,\n  "value": 10\n}\n', test_name='deprecated_field', file_name='deprecated_field')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/deprecated_field/deprecated_field_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x64\x65precated_field.proto\"$\n\x04Test\x12\r\n\x01v\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\r\n\x05value\x18\x02 \x01(\x05\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b943b8b0>, desc_name = 'Test', file_name = 'deprecated_field.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "deprecated_field.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
___________________________________________________________________________________________ test_binary_compatibility[repeatedpacked] ___________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.repeatedpacked' from '/python-betterproto/tests/output_better...": ["1", "2", "-1", "-2"],\n  "fixed": [1.0, 2.7, 3.4]\n}\n', test_name='repeatedpacked', file_name='repeatedpacked')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/repeatedpacked/repeatedpacked_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14repeatedpacked.proto\"5\n\x04Test\x12\x0e\n\x06\x63ounts\x18\x01 \x03(\x05\x12\x0e\n\x06signed\x18\x02 \x03(\x12\x12\r\n\x05\x66ixed\x18\x03 \x03(\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9640a90>, desc_name = 'Test', file_name = 'repeatedpacked.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "repeatedpacked.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________ test_binary_compatibility[proto3_field_presence] ________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.proto3_field_presence' from '/python-betterproto/tests/output...,\n  "test7": "0",\n  "test8": 0\n}\n', test_name='proto3_field_presence', file_name='proto3_field_presence_missing')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/proto3_field_presence/proto3_field_presence_pb2.py:19: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bproto3_field_presence.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x19\n\tInnerTest\x12\x0c\n\x04test\x18\x01 \x01(\t\"\xc7\x02\n\x04Test\x12\x12\n\x05test1\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05test2\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x12\n\x05test3\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x12\n\x05test4\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x12\x1e\n\x05test5\x18\x05 \x01(\x0b\x32\n.InnerTestH\x04\x88\x01\x01\x12\x1d\n\x05test6\x18\x06 \x01(\x0e\x32\t.TestEnumH\x05\x88\x01\x01\x12\x12\n\x05test7\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x12\n\x05test8\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12.\n\x05test9\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x08\x88\x01\x01\x42\x08\n\x06_test1B\x08\n\x06_test2B\x08\n\x06_test3B\x08\n\x06_test4B\x08\n\x06_test5B\x08\n\x06_test6B\x08\n\x06_test7B\x08\n\x06_test8B\x08\n\x06_test9*\x18\n\x08TestEnum\x12\x05\n\x01\x41\x10\x00\x12\x05\n\x01\x42\x10\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b95c36d0>, desc_name = 'Test', file_name = 'proto3_field_presence.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "proto3_field_presence.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
________________________________________________________________________________________________ test_binary_compatibility[bool] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.bool' from '/python-betterproto/tests/output_betterproto/bool...> at 0x7ff9b93dd240>, json_data=[TestCaseJsonFile(json='{\n  "value": true\n}\n', test_name='bool', file_name='bool')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/bool/bool_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nbool.proto\"\x15\n\x04Test\x12\r\n\x05value\x18\x01 \x01(\x08\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b942e800>, desc_name = 'Test', file_name = 'bool.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "bool.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[signed] _______________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.signed' from '/python-betterproto/tests/output_betterproto/si...,\n  "negative32": -150,\n  "string64": "150",\n  "negative64": "-150"\n}\n', test_name='signed', file_name='signed')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/signed/signed_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0csigned.proto\"R\n\x04Test\x12\x10\n\x08signed32\x18\x01 \x01(\x11\x12\x12\n\nnegative32\x18\x02 \x01(\x11\x12\x10\n\x08string64\x18\x03 \x01(\x12\x12\x12\n\nnegative64\x18\x04 \x01(\x12\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b950f310>, desc_name = 'Test', file_name = 'signed.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "signed.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[oneof] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.oneof' from '/python-betterproto/tests/output_betterproto/one..., file_name='oneof'), TestCaseJsonFile(json='{\n  "pitier": "Mr. T"\n}\n', test_name='oneof', file_name='oneof_name')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/oneof/oneof_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0boneof.proto\"|\n\x04Test\x12\x10\n\x06pitied\x18\x01 \x01(\x05H\x00\x12\x10\n\x06pitier\x18\x02 \x01(\tH\x00\x12\x1c\n\x14just_a_regular_field\x18\x03 \x01(\x05\x12\x10\n\x06\x64rinks\x18\x0b \x01(\x05H\x01\x12\x12\n\x08\x62\x61r_name\x18\x0c \x01(\tH\x01\x42\x05\n\x03\x66ooB\x05\n\x03\x62\x61rb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b95c1330>, desc_name = 'Test', file_name = 'oneof.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "oneof.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
____________________________________________________________________________________ test_binary_compatibility[proto3_field_presence_oneof] _____________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.proto3_field_presence_oneof' from '/python-betterproto/tests/...File(json='{\n  "nested": {}\n}\n', test_name='proto3_field_presence_oneof', file_name='proto3_field_presence_oneof')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/proto3_field_presence_oneof/proto3_field_presence_oneof_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto3_field_presence_oneof.proto\"Q\n\x04Test\x12\x19\n\x06nested\x18\x01 \x01(\x0b\x32\x07.NestedH\x00\x12&\n\rwith_optional\x18\x02 \x01(\x0b\x32\r.WithOptionalH\x00\x42\x06\n\x04kind\"#\n\x0bInnerNested\x12\x0e\n\x01\x61\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x04\n\x02_a\"%\n\x06Nested\x12\x1b\n\x05inner\x18\x01 \x01(\x0b\x32\x0c.InnerNested\"$\n\x0cWithOptional\x12\x0e\n\x01\x62\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x04\n\x02_bb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b94a3400>, desc_name = 'Test', file_name = 'proto3_field_presence_oneof.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "proto3_field_presence_oneof.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[int32] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.int32' from '/python-betterproto/tests/output_betterproto/int...n_data=[TestCaseJsonFile(json='{\n  "positive": 150,\n  "negative": -150\n}\n', test_name='int32', file_name='int32')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/int32/int32_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bint32.proto\"*\n\x04Test\x12\x10\n\x08positive\x18\x01 \x01(\x05\x12\x10\n\x08negative\x18\x02 \x01(\x05\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b943b850>, desc_name = 'Test', file_name = 'int32.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(d
1E0A
esc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "int32.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
____________________________________________________________________________________ test_binary_compatibility[field_name_identical_to_type] ____________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.field_name_identical_to_type' from '/python-betterproto/tests...": "001a",\n    "bool": true\n}', test_name='field_name_identical_to_type', file_name='field_name_identical_to_type')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/field_name_identical_to_type/field_name_identical_to_type_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"field_name_identical_to_type.proto\"L\n\x04Test\x12\x0b\n\x03int\x18\x01 \x01(\x05\x12\r\n\x05\x66loat\x18\x02 \x01(\x02\x12\x0b\n\x03str\x18\x03 \x01(\t\x12\r\n\x05\x62ytes\x18\x04 \x01(\x0c\x12\x0c\n\x04\x62ool\x18\x05 \x01(\x08\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9573040>, desc_name = 'Test', file_name = 'field_name_identical_to_type.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '

F438
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "field_name_identical_to_type.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
______________________________________________________________________________________________ test_binary_compatibility[repeated] ______________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.repeated' from '/python-betterproto/tests/output_betterproto/...data=[TestCaseJsonFile(json='{\n  "names": ["one", "two", "three"]\n}\n', test_name='repeated', file_name='repeated')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/repeated/repeated_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0erepeated.proto\"\x15\n\x04Test\x12\r\n\x05names\x18\x01 \x03(\tb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b95d6f50>, desc_name = 'Test', file_name = 'repeated.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "repeated.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
__________________________________________________________________________________________ test_binary_compatibility[recursivemessage] __________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.recursivemessage' from '/python-betterproto/tests/output_bett...e": "Douglas Adams"\n    },\n    "number": 42\n  }\n}\n', test_name='recursivemessage', file_name='recursivemessage')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/recursivemessage/recursivemessage_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16recursivemessage.proto\"O\n\x04Test\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x05\x63hild\x18\x02 \x01(\x0b\x32\x05.Test\x12#\n\x0cintermediate\x18\x03 \x01(\x0b\x32\r.Intermediate\"4\n\x0cIntermediate\x12\x0e\n\x06number\x18\x01 \x01(\x05\x12\x14\n\x05\x63hild\x18\x02 \x01(\x0b\x32\x05.Testb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b96f64a0>, desc_name = 'Test', file_name = 'recursivemessage.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "recursivemessage.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[fixed] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.fixed' from '/python-betterproto/tests/output_betterproto/fix...3648,\n  "baz": "18446744073709551615",\n  "qux": "-9223372036854775808"\n}\n', test_name='fixed', file_name='fixed')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/fixed/fixed_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x66ixed.proto\":\n\x04Test\x12\x0b\n\x03\x66oo\x18\x01 \x01(\x07\x12\x0b\n\x03\x62\x61r\x18\x02 \x01(\x0f\x12\x0b\n\x03\x62\x61z\x18\x03 \x01(\x06\x12\x0b\n\x03qux\x18\x04 \x01(\x10\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b94a0430>, desc_name = 'Test', file_name = 'fixed.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "fixed.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[float] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.float' from '/python-betterproto/tests/output_betterproto/flo...Four": 3.14,\n    "negThree": -3.0,\n    "negThreePointOneFour": -3.14\n  }\n', test_name='float', file_name='float')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/float/float_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x66loat.proto\"\x99\x01\n\x04Test\x12\x10\n\x08positive\x18\x01 \x01(\x01\x12\x10\n\x08negative\x18\x02 \x01(\x01\x12\x0b\n\x03nan\x18\x03 \x01(\x01\x12\r\n\x05three\x18\x04 \x01(\x01\x12\x1c\n\x14three_point_one_four\x18\x05 \x01(\x01\x12\x11\n\tneg_three\x18\x06 \x01(\x01\x12 \n\x18neg_three_point_one_four\x18\x07 \x01(\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b93e9660>, desc_name = 'Test', file_name = 'float.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "float.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_____________________________________________________________________________________________ test_binary_compatibility[deprecated] _____________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.deprecated' from '/python-betterproto/tests/output_betterprot...json_data=[TestCaseJsonFile(json='{\n  "v": 10,\n  "value": 10\n}\n', test_name='deprecated', file_name='deprecated')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/deprecated/deprecated_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x64\x65precated.proto\"(\n\x04Test\x12\r\n\x01v\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x18\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b95c3fd0>, desc_name = 'Test', file_name = 'deprecated.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "deprecated.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
____________________________________________________________________________________ test_binary_compatibility[repeated_duration_timestamp] _____________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.repeated_duration_timestamp' from '/python-betterproto/tests/...tions": ["1.200s", "1.200s"]\n}\n', test_name='repeated_duration_timestamp', file_name='repeated_duration_timestamp')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/repeated_duration_timestamp/repeated_duration_timestamp_pb2.py:19: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!repeated_duration_timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"_\n\x04Test\x12)\n\x05times\x18\x01 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\tdurations\x18\x02 \x03(\x0b\x32\x19.google.protobuf.Durationb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9571cf0>, desc_name = 'Test', file_name = 'repeated_duration_timestamp.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "repeated_duration_timestamp.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
________________________________________________________________________________________________ test_binary_compatibility[enum] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.enum' from '/python-betterproto/tests/output_betterproto/enum...",\n  "choices": [\n    "ZERO",\n    "ONE",\n    "THREE",\n    "FOUR"\n  ]\n}\n', test_name='enum', file_name='enum')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/enum/enum_pb2.py:18: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nenum.proto\"9\n\x04Test\x12\x17\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x07.Choice\x12\x18\n\x07\x63hoices\x18\x02 \x03(\x0e\x32\x07.Choice*0\n\x06\x43hoice\x12\x08\n\x04ZERO\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x08\n\x04\x46OUR\x10\x04\x12\t\n\x05THREE\x10\x03\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b94200d0>, desc_name = 'Test', file_name = 'enum.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "enum.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
____________________________________________________________________________________________ test_binary_compatibility[nestedtwice] _____________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.nestedtwice' from '/python-betterproto/tests/output_betterpro...dleBottom": [{"a": "hello"}],\n      "bar": true\n    }\n  }\n}\n', test_name='nestedtwice', file_name='nestedtwice')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/nestedtwice/nestedtwice_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11nestedtwice.proto\"\xda\x02\n\x04Test\x12\x16\n\x03top\x18\x01 \x01(\x0b\x32\t.Test.Top\x1a\xb9\x02\n\x03Top\x12\x0c\n\x04name\x18\x01 \x01(\t\x12 \n\x06middle\x18\x02 \x01(\x0b\x32\x10.Test.Top.Middle\x1a\x81\x02\n\x06Middle\x12\'\n\x06\x62ottom\x18\x02 \x03(\x0b\x32\x17.Test.Top.Middle.Bottom\x12/\n\nenumBottom\x18\x03 \x03(\x0e\x32\x1b.Test.Top.Middle.EnumBottom\x12\x39\n\x0ftopMiddleBottom\x18\x04 \x03(\x0b\x32 .Test.Top.Middle.TopMiddleBottom\x12\x0b\n\x03\x62\x61r\x18\x05 \x01(\x08\x1a\x1c\n\x0fTopMiddleBottom\x12\t\n\x01\x61\x18\x01 \x01(\t\x1a\x15\n\x06\x42ottom\x12\x0b\n\x03\x66oo\x18\x01 \x01(\t\"\x1a\n\nEnumBottom\x12\x05\n\x01\x41\x10\x00\x12\x05\n\x01\x42\x10\x01J\x04\x08\x01\x10\x02\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b942e6b0>, desc_name = 'Test', file_name = 'nestedtwice.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "nestedtwice.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[double] _______________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.double' from '/python-betterproto/tests/output_betterproto/do...x7ff9b953bf40>, json_data=[TestCaseJsonFile(json='{\n  "count": 123.45\n}\n', test_name='double', file_name='double')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen imp
10000
ortlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/double/double_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x64ouble.proto\"\x15\n\x04Test\x12\r\n\x05\x63ount\x18\x01 \x01(\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b94a0be0>, desc_name = 'Test', file_name = 'double.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "double.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
______________________________________________________________________________________ test_binary_compatibility[namespace_builtin_types] _______________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.namespace_builtin_types' from '/python-betterproto/tests/outp...-for-map",\n  "bool": "value-for-bool"\n}', test_name='namespace_builtin_types', file_name='namespace_builtin_types')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/namespace_builtin_types/namespace_builtin_types_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dnamespace_builtin_types.proto\"\xeb\x01\n\x04Test\x12\x0b\n\x03int\x18\x01 \x01(\t\x12\r\n\x05\x66loat\x18\x02 \x01(\t\x12\x0f\n\x07\x63omplex\x18\x03 \x01(\t\x12\x0c\n\x04list\x18\x04 \x01(\t\x12\r\n\x05tuple\x18\x05 \x01(\t\x12\r\n\x05range\x18\x06 \x01(\t\x12\x0b\n\x03str\x18\x07 \x01(\t\x12\x11\n\tbytearray\x18\x08 \x01(\t\x12\r\n\x05\x62ytes\x18\t \x01(\t\x12\x12\n\nmemoryview\x18\n \x01(\t\x12\x0b\n\x03set\x18\x0b \x01(\t\x12\x11\n\tfrozenset\x18\x0c \x01(\t\x12\x0b\n\x03map\x18\r \x01(\t\x12\x0c\n\x04\x64ict\x18\x0e \x01(\t\x12\x0c\n\x04\x62ool\x18\x0f \x01(\tb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b96f4850>, desc_name = 'Test', file_name = 'namespace_builtin_types.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "namespace_builtin_types.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_____________________________________________________________________________________________ test_binary_compatibility[mapmessage] _____________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.mapmessage' from '/python-betterproto/tests/output_betterprot..."count": 1\n    },\n    "bar": {\n      "count": 2\n    }\n  }\n}\n', test_name='mapmessage', file_name='mapmessage')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/mapmessage/mapmessage_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10mapmessage.proto\"^\n\x04Test\x12\x1f\n\x05items\x18\x01 \x03(\x0b\x32\x10.Test.ItemsEntry\x1a\x35\n\nItemsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x16\n\x05value\x18\x02 \x01(\x0b\x32\x07.Nested:\x02\x38\x01\"\x17\n\x06Nested\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9572a10>, desc_name = 'Test', file_name = 'mapmessage.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "mapmessage.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
________________________________________________________________________________________________ test_binary_compatibility[ref] _________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.ref' from '/python-betterproto/tests/output_betterproto/ref/_...ata=[TestCaseJsonFile(json='{\n  "greeting": {\n    "greeting": "hello"\n  }\n}\n', test_name='ref', file_name='ref')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/ref/ref_pb2.py:18: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tref.proto\x1a\x15repeatedmessage.proto\".\n\x04Test\x12&\n\x08greeting\x18\x01 \x01(\x0b\x32\x14.repeatedmessage.Subb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b950c8e0>, desc_name = 'Test', file_name = 'ref.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "ref.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
________________________________________________________________________________________________ test_binary_compatibility[map] _________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.map' from '/python-betterproto/tests/output_betterproto/map/_...son='{\n  "counts": {\n    "item1": 1,\n    "item2": 2,\n    "item3": 3\n  }\n}\n', test_name='map', file_name='map')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/map/map_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tmap.proto\"X\n\x04Test\x12!\n\x06\x63ounts\x18\x01 \x03(\x0b\x32\x11.Test.CountsEntry\x1a-\n\x0b\x43ountsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b93e9510>, desc_name = 'Test', file_name = 'map.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "map.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
___________________________________________________________________________________________ test_binary_compatibility[empty_repeated] ___________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.empty_repeated' from '/python-betterproto/tests/output_better...ta=[TestCaseJsonFile(json='{\n  "msg": [{"values":[]}]\n}\n', test_name='empty_repeated', file_name='empty_repeated')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/empty_repeated/empty_repeated_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x65mpty_repeated.proto\"\x1a\n\x08MessageA\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1e\n\x04Test\x12\x16\n\x03msg\x18\x01 \x03(\x0b\x32\t.MessageAb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b96f4640>, desc_name = 'Test', file_name = 'empty_repeated.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "empty_repeated.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[bytes] ________________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.bytes' from '/python-betterproto/tests/output_betterproto/byt...>, json_data=[TestCaseJsonFile(json='{\n  "data": "SGVsbG8sIFdvcmxkIQ=="\n}\n', test_name='bytes', file_name='bytes')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/bytes/bytes_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x62ytes.proto\"\x14\n\x04Test\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9421330>, desc_name = 'Test', file_name = 'bytes.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "bytes.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
____________________________________________________________________________________________ test_binary_compatibility[googletypes] _____________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.googletypes' from '/python-betterproto/tests/output_betterpro...\n  "duration": "1.200s",\n  "important": 10,\n  "empty": {}\n}\n', test_name='googletypes', file_name='googletypes')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/googletypes/googletypes_pb2.py:21: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11googletypes.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xdd\x01\n\x04Test\x12)\n\x05maybe\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12&\n\x02ts\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x08\x64uration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\timportant\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12%\n\x05\x65mpty\x18\x05 \x01(\x0b\x32\x16.google.protobuf.Emptyb\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b942e1a0>, desc_name = 'Test', file_name = 'googletypes.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "googletypes.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_______________________________________________________________________________________________ test_binary_compatibility[casing] _______________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.casing' from '/python-betterproto/tests/output_betterproto/ca...ata=[TestCaseJsonFile(json='{\n  "camelCase": 1,\n  "snakeCase": "ONE"\n}\n', test_name='casing', file_name='casing')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat, test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/casing/casing_pb2.py:18: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63\x61sing.proto\"{\n\x04Test\x12\x11\n\tcamelCase\x18\x01 \x01(\x05\x12\x1c\n\nsnake_case\x18\x02 \x01(\x0e\x32\x08.my_enum\x12/\n\x12snake_case_message\x18\x03 \x01(\x0b\x32\x13.snake_case_message\x12\x11\n\tUPPERCASE\x18\x04 \x01(\x05\"\x14\n\x12snake_case_message*%\n\x07my_enum\x12\x08\n\x04ZERO\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x07\n\x03TWO\x10\x02\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b91d8700>, desc_name = 'Test', file_name = 'casing.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "casing.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
_____________________________________________________________________________________________ test_binary_compatibility[oneof_enum] _____________________________________________________________________________________________

repeat = 1
test_data = TestData(plugin_module=<module 'tests.output_betterproto.oneof_enum' from '/python-betterproto/tests/output_betterprot...aseJsonFile(json='{\n  "move": {\n    "x": 2,\n    "y": 3\n  }\n}\n', test_name='oneof_enum', file_name='oneof_enum')])

    @pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
    def test_binary_compatibility(repeat,
6377
 test_data: TestData) -> None:
        plugin_module, reference_module, json_data = test_data
    
        for sample in json_data:
>           reference_instance = Parse(sample.json, reference_module().Test())

tests/test_inputs.py:207: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/oneof_enum/oneof_enum_pb2.py:18: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10oneof_enum.proto\"B\n\x04Test\x12\x19\n\x06signal\x18\x01 \x01(\x0e\x32\x07.SignalH\x00\x12\x15\n\x04move\x18\x02 \x01(\x0b\x32\x05.MoveH\x00\x42\x08\n\x06\x61\x63tion\"\x1c\n\x04Move\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05*\x1e\n\x06Signal\x12\x08\n\x04PASS\x10\x00\x12\n\n\x06RESIGN\x10\x01\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <google.protobuf.descriptor_pool.DescriptorPool object at 0x7ff9b9d0a380>, desc = <google.protobuf.descriptor.Descriptor object at 0x7ff9b9422c50>, desc_name = 'Test', file_name = 'oneof_enum.proto'

    def _CheckConflictRegister(self, desc, desc_name, file_name):
      """Check if the descriptor name conflicts with another of the same name.
    
      Args:
        desc: Descriptor of a message, enum, service, extension or enum value.
        desc_name (str): the full name of desc.
        file_name (str): The file name of descriptor.
      """
      for register, descriptor_type in [
          (self._descriptors, descriptor.Descriptor),
          (self._enum_descriptors, descriptor.EnumDescriptor),
          (self._service_descriptors, descriptor.ServiceDescriptor),
          (self._toplevel_extensions, descriptor.FieldDescriptor),
          (self._top_enum_values, descriptor.EnumValueDescriptor)]:
        if desc_name in register:
          old_desc = register[desc_name]
          if isinstance(old_desc, descriptor.EnumValueDescriptor):
            old_file = old_desc.type.file.name
          else:
            old_file = old_desc.file.name
    
          if not isinstance(desc, descriptor_type) or (
              old_file != file_name):
            error_msg = ('Conflict register for file "' + file_name +
                         '": ' + desc_name +
                         ' is already defined in file "' +
                         old_file + '". Please fix the conflict by adding '
                         'package name on the proto file, or use different '
                         'name for the duplication.')
            if isinstance(desc, descriptor.EnumValueDescriptor):
              error_msg += ('\nNote: enum values appear as '
                            'siblings of the enum type instead of '
                            'children of it.')
    
>           raise TypeError(error_msg)
E           TypeError: Conflict register for file "oneof_enum.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding package name on the proto file, or use different name for the duplication.

/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:191: TypeError
==================================================================================================== short test summary info ====================================================================================================
FAILED tests/test_inputs.py::test_binary_compatibility[nested] - TypeError: Conflict register for file "nested.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by ad...
FAILED tests/test_inputs.py::test_binary_compatibility[oneof_empty] - TypeError: Conflict register for file "oneof_empty.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conf...
FAILED tests/test_inputs.py::test_binary_compatibility[deprecated_field] - TypeError: Conflict register for file "deprecated_field.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fi...
FAILED tests/test_inputs.py::test_binary_compatibility[repeatedpacked] - TypeError: Conflict register for file "repeatedpacked.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix th...
FAILED tests/test_inputs.py::test_binary_compatibility[proto3_field_presence] - TypeError: Conflict register for file "proto3_field_presence.proto": Test is already defined in file "google_impl_behavior_equivalence.proto"....
FAILED tests/test_inputs.py::test_binary_compatibility[bool] - TypeError: Conflict register for file "bool.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding...
FAILED tests/test_inputs.py::test_binary_compatibility[signed] - TypeError: Conflict register for file "signed.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by ad...
FAILED tests/test_inputs.py::test_binary_compatibility[oneof] - TypeError: Conflict register for file "oneof.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by addi...
FAILED tests/test_inputs.py::test_binary_compatibility[proto3_field_presence_oneof] - TypeError: Conflict register for file "proto3_field_presence_oneof.proto": Test is already defined in file "google_impl_behavior_equival...
FAILED tests/test_inputs.py::test_binary_compatibility[int32] - TypeError: Conflict register for file "int32.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by addi...
FAILED tests/test_inputs.py::test_binary_compatibility[field_name_identical_to_type] - TypeError: Conflict register for file "field_name_identical_to_type.proto": Test is already defined in file "google_impl_behavior_equiv...
FAILED tests/test_inputs.py::test_binary_compatibility[repeated] - TypeError: Conflict register for file "repeated.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict b...
FAILED tests/test_inputs.py::test_binary_compatibility[recursivemessage] - TypeError: Conflict register for file "recursivemessage.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fi...
FAILED tests/test_inputs.py::test_binary_compatibility[fixed] - TypeError: Conflict register for file "fixed.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by addi...
FAILED tests/test_inputs.py::test_binary_compatibility[float] - TypeError: Conflict register for file "float.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by addi...
FAILED tests/test_inputs.py::test_binary_compatibility[deprecated] - TypeError: Conflict register for file "deprecated.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the confli...
FAILED tests/test_inputs.py::test_binary_compatibility[repeated_duration_timestamp] - TypeError: Conflict register for file "repeated_duration_timestamp.proto": Test is already defined in file "google_impl_behavior_equival...
FAILED tests/test_inputs.py::test_binary_compatibility[enum] - TypeError: Conflict register for file "enum.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding...
FAILED tests/test_inputs.py::test_binary_compatibility[nestedtwice] - TypeError: Conflict register for file "nestedtwice.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conf...
FAILED tests/test_inputs.py::test_binary_compatibility[double] - TypeError: Conflict register for file "double.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by ad...
FAILED tests/test_inputs.py::test_binary_compatibility[namespace_builtin_types] - TypeError: Conflict register for file "namespace_builtin_types.proto": Test is already defined in file "google_impl_behavior_equivalence.pro...
FAILED tests/test_inputs.py::test_binary_compatibility[mapmessage] - TypeError: Conflict register for file "mapmessage.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the confli...
FAILED tests/test_inputs.py::test_binary_compatibility[ref] - TypeError: Conflict register for file "ref.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding p...
FAILED tests/test_inputs.py::test_binary_compatibility[map] - TypeError: Conflict register for file "map.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by adding p...
FAILED tests/test_inputs.py::test_binary_compatibility[empty_repeated] - TypeError: Conflict register for file "empty_repeated.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix th...
FAILED tests/test_inputs.py::test_binary_compatibility[bytes] - TypeError: Conflict register for file "bytes.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by addi...
FAILED tests/test_inputs.py::test_binary_compatibility[googletypes] - TypeError: Conflict register for file "googletypes.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conf...
FAILED tests/test_inputs.py::test_binary_compatibility[casing] - TypeError: Conflict register for file "casing.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the conflict by ad...
FAILED tests/test_inputs.py::test_binary_compatibility[oneof_enum] - TypeError: Conflict register for file "oneof_enum.proto": Test is already defined in file "google_impl_behavior_equivalence.proto". Please fix the confli...
===================================================================================== 29 failed, 321 passed, 19 xfailed, 6 xpassed in 5.54s =====================================================================================

Snippet:

tests/test_inputs.py:154: in <lambda>
    reference_module=lambda: importlib.import_module(
/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1050: in _gcd_import
    ???
<frozen importlib._bootstrap>:1027: in _find_and_load
    ???
<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked
    ???
<frozen importlib._bootstrap>:688: in _load_unlocked
    ???
<frozen importlib._bootstrap_external>:883: in exec_module
    ???
<frozen importlib._bootstrap>:241: in _call_with_frames_removed
    ???
tests/output_reference/nested/nested_pb2.py:17: in <module>
    DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnested.proto\"t\n\x04Test\x12\x1c\n\x06nested\x18\x01 \x01(\x0b\x32\x0c.Test.Nested\x12\x19\n\x07sibling\x18\x02 \x01(\x0b\x32\x08.Sibling\x12\x1a\n\x08sibling2\x18\x03 \x01(\x0b\x32\x08.Sibling\x1a\x17\n\x06Nested\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\"\x16\n\x07Sibling\x12\x0b\n\x03\x66oo\x18\x01 \x01(\x05\x62\x06proto3')
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:219: in AddSerializedFile
    file_desc = self._ConvertFileProtoToFileDescriptor(file_desc_proto)
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:774: in _ConvertFileProtoToFileDescriptor
    message_desc = self._ConvertMessageDescriptor(
/root/.cache/pypoetry/virtualenvs/betterproto-XNkX87yZ-py3.10/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py:918: in _ConvertMessageDescriptor
    self._CheckConflictRegister(desc, desc.full_name, desc.file.name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

It seems that resetting the pool did not do the trick anymore. An alternative fix might be to monkeypatch the Default() method. However, that failed to correctly referece the google types.

@abn abn A851 force-pushed the fix-test-conflicts branch from 611b539 to 5d97bda Compare March 1, 2022 18:02
@abn
Copy link
Collaborator Author
abn commented Mar 1, 2022

The CI test failure seems to be non-deterministic. Anyone have ideas around what might be causing it? I suspect it has to do with the order of the test cases somehow.

Fixed this as this was an issue with how imports work.

abn added 2 commits March 1, 2022 22:03
This change ensures that tests run successfully against new versions
of python-protobuf. Without this change, due to the nature of testing
there will arise conflict exceptions.

This change also removes manual reset of symbol database in binary
compatibility tests as well as ensure `sys.path` reset happens
reliably.
@Gobot1234 Gobot1234 merged commit bd69862 into danielgtaylor:master Mar 3, 2022
@abn abn deleted the fix-test-conflicts branch March 3, 2022 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0