def test_posting_list_serialization_with_crazy_utf8_character(posting_list, shipping_label): shipping_label.receiver.neighborhood = 'Olho D’Água' posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert xml.startswith(b'<?xml version="1.0" encoding="ISO-8859-1"?><correioslog>')
def test_posting_list_serialization(posting_list, shipping_label): posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert xml.startswith(b'<?xml version="1.0" encoding="ISO-8859-1"?><correioslog>') assert b"<codigo_servico_adicional>019</codigo_servico_adicional>" not in xml assert b"<valor_declarado>10,29</valor_declarado>" not in xml
def test_limit_size_city_name(posting_list, shipping_label): shipping_label.receiver.city = 'Porto Alegre (Rio Grande do Sul)' shipping_label.sender.city = 'Santa Maria (Rio Grande do Sul)' posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert b"<cidade_destinatario><![CDATA[Porto Alegre (Rio Grande do Su]]></cidade_destinatario>" in xml assert b"<cidade_remetente><![CDATA[Santa Maria (Rio Grande do Sul]]></cidade_remetente>" in xml
def test_declared_value(posting_list, shipping_label): shipping_label.extra_services.append(ExtraService.get(EXTRA_SERVICE_VD)) shipping_label.real_value = 10.29 posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert shipping_label.service == Service.get(SERVICE_PAC) assert b"<codigo_servico_adicional>019</codigo_servico_adicional>" in xml assert b"<valor_declarado>18,50</valor_declarado>" in xml
def test_declared_value(extra_service_vd, code, posting_list, shipping_label): shipping_label.extra_services.append(ExtraService.get(extra_service_vd)) shipping_label.real_value = 10.29 posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert shipping_label.service == Service.get(SERVICE_PAC) assert b'<codigo_servico_adicional>%b</codigo_servico_adicional>' % code in xml assert b'<valor_declarado>19,50</valor_declarado>' in xml
def test_declared_value_without_insurance_extra_service( posting_list, shipping_label): shipping_label.real_value = 10.29 posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert shipping_label.service == Service.get(SERVICE_PAC) assert b"<codigo_servico_adicional>19</codigo_servico_adicional>" not in xml assert b"<codigo_servico_adicional>64</codigo_servico_adicional>" not in xml assert b"<codigo_servico_adicional>65</codigo_servico_adicional>" not in xml assert b"<valor_declarado>000,00</valor_declarado>" in xml
def test_posting_list_serialization_max_length(field, value, max_length, posting_list, shipping_label): assert len(value) > max_length setattr(shipping_label.receiver, field, value) posting_list.add_shipping_label(shipping_label) serializer = PostingListSerializer() document = serializer.get_document(posting_list) serializer.validate(document) xml = serializer.get_xml(document) assert value.encode("ISO-8859-1") not in xml assert value[:max_length].encode("ISO-8859-1") in xml