diff --git a/correios/client.py b/correios/client.py
index c862719..ed4ffb2 100644
--- a/correios/client.py
+++ b/correios/client.py
@@ -421,17 +421,17 @@ def _get_sender_info_element(self, posting_list):
xml_utils.SubElement(sender_info, "numero_contrato", text=str(contract.number))
xml_utils.SubElement(sender_info, "numero_diretoria", text=str(contract.regional_direction_number))
xml_utils.SubElement(sender_info, "codigo_administrativo", text=str(posting_card.administrative_code))
- xml_utils.SubElement(sender_info, "nome_remetente", cdata=sender.name)
- xml_utils.SubElement(sender_info, "logradouro_remetente", cdata=sender.street)
- xml_utils.SubElement(sender_info, "numero_remetente", cdata=sender.number)
- xml_utils.SubElement(sender_info, "complemento_remetente", cdata=sender.complement)
- xml_utils.SubElement(sender_info, "bairro_remetente", cdata=sender.neighborhood)
+ xml_utils.SubElement(sender_info, "nome_remetente", cdata=str(sender.name))
+ xml_utils.SubElement(sender_info, "logradouro_remetente", cdata=str(sender.street))
+ xml_utils.SubElement(sender_info, "numero_remetente", cdata=str(sender.number) or 'S/n')
+ xml_utils.SubElement(sender_info, "complemento_remetente", cdata=str(sender.complement))
+ xml_utils.SubElement(sender_info, "bairro_remetente", cdata=str(sender.neighborhood))
xml_utils.SubElement(sender_info, "cep_remetente", cdata=str(sender.zip_code))
xml_utils.SubElement(sender_info, "cidade_remetente", cdata=str(sender.city)[:30])
xml_utils.SubElement(sender_info, "uf_remetente", cdata=str(sender.state))
xml_utils.SubElement(sender_info, "telefone_remetente", cdata=sender.phone.short)
xml_utils.SubElement(sender_info, "fax_remetente", cdata="")
- xml_utils.SubElement(sender_info, "email_remetente", cdata=sender.email)
+ xml_utils.SubElement(sender_info, "email_remetente", cdata=str(sender.email))
return sender_info
def _get_shipping_label_element(self, shipping_label: ShippingLabel):
diff --git a/tests/test_client.py b/tests/test_client.py
index 4f6ce13..1b359d3 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -359,6 +359,17 @@ def test_sn_informed_on_receiver_number(posting_list, shipping_label):
assert b"S/N" in xml
+@pytest.mark.skipif(not correios, reason="API Client support disabled")
+def test_sn_informed_on_sender_number(posting_list, shipping_label):
+ shipping_label.sender.raw_number = ''
+ posting_list.add_shipping_label(shipping_label)
+ serializer = correios.PostingListSerializer()
+ document = serializer.get_document(posting_list)
+ serializer.validate(document)
+ xml = serializer.get_xml(document)
+ assert b"" in xml
+
+
@pytest.mark.skipif(not correios, reason="API Client support disabled")
def test_fail_empty_posting_list_serialization(posting_list):
serializer = correios.PostingListSerializer()