Skip to content

Commit

Permalink
Merge branch 'master' into add-flake8
Browse files Browse the repository at this point in the history
  • Loading branch information
osantana committed Aug 12, 2016
2 parents f70fed7 + 89a5bf6 commit 718dd10
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 7 deletions.
25 changes: 25 additions & 0 deletions correios/models/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,28 @@
72: {'code': "SPM", 'name': "DR - SÃO PAULO"},
75: {'code': "TO", 'name': "DR - TOCANTINS"},
}

TRACKING_EVENT_TYPES = {
"ERROR": "Evento de erro", # custom event type for "Not Found" error
"BDE": "Baixa de distribuição externa",
"BDI": "Baixa de distribuição interna",
"BDR": "Baixa corretiva",
"BLQ": "Bloqueio de objetos",
"CAR": "Conferência de lista de registro",
"CD": "Conferência de nota de despacho",
"CMT": "Chegada de um meio de transporte",
"CO": "Coleta de objetos",
"CUN": "Conferência de lista de registro",
"DO": "Expedição de nota de despacho",
"EST": "Estorno",
"FC": "Função complementar",
"IDC": "Indenização de objetos",
"LDI": "Lista de distribuição interna",
"LDE": "Lista de distribuição externa",
"OEC": "Lista de Objetos Entregues ao Carteiro",
"PAR": "Conferência Unidade Internacional",
"PMT": "Partida Meio de Transporte",
"PO": "Postagem (exceção)",
"RO": "Expedição de Lista de Registro",
"TRI": "Triagem",
}
10 changes: 6 additions & 4 deletions correios/models/posting.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
PostingListError, InvalidPackageDimensionsError,
InvalidPackageWeightError)
from .address import Address, ZipCode
from .data import TRACKING_EVENT_TYPES
from .user import Service, ExtraService, PostingCard
from .user import Contract # noqa: F401

Expand All @@ -45,9 +46,6 @@
MIN_SIZE, MAX_SIZE = 29, 200 # cm
MAX_CYLINDER_SIZE = 28
INSURANCE_VALUE_THRESHOLD = 50 # R$
EVENT_TYPES = ('BDE', 'BDI', 'BDR', 'BLQ', 'CAR', 'CD', 'CMT', 'CO', 'CUN',
'DO', 'EST', 'ERROR', 'FC', 'IDC', 'LDI', 'LDE', 'OEC', 'PAR', 'PMT',
'PO', 'RO', 'TRI')


class EventStatus:
Expand All @@ -58,11 +56,15 @@ def __init__(self, event_type: str, status: int):
def _validate_type(self, event_type):
event_type = event_type.upper()

if event_type not in EVENT_TYPES:
if event_type not in TRACKING_EVENT_TYPES:
raise InvalidEventStatusError("{} is not valid".format(event_type))

return event_type

@property
def display_event_type(self):
return TRACKING_EVENT_TYPES[self.type]

def __str__(self):
return '({}, {})'.format(self.type, self.status)

Expand Down
7 changes: 4 additions & 3 deletions tests/test_posting_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
InvalidTrackingCodeError, InvalidPackageSequenceError,
InvalidPackageDimensionsError, PostingListError,
InvalidPackageWeightError)
from correios.models.data import SERVICE_SEDEX, EXTRA_SERVICE_RR, EXTRA_SERVICE_AR
from correios.models.posting import (EventStatus, EVENT_TYPES, NotFoundTrackingEvent,
from correios.models.data import SERVICE_SEDEX, EXTRA_SERVICE_RR, EXTRA_SERVICE_AR, TRACKING_EVENT_TYPES
from correios.models.posting import (EventStatus, NotFoundTrackingEvent,
Package, PostingList, ShippingLabel, TrackingCode,
TrackingEvent)
from correios.models.user import Service, ExtraService
Expand Down Expand Up @@ -344,12 +344,13 @@ def test_basic_not_found_tracking_event():
assert tracking_event.comment == "Not found"


@pytest.mark.parametrize("event_type", EVENT_TYPES)
@pytest.mark.parametrize("event_type", list(TRACKING_EVENT_TYPES.keys()))
def test_basic_event_status(event_type):
event_status = EventStatus(event_type, 1)

assert event_status.type == event_type
assert event_status.status == 1
assert event_status.display_event_type == TRACKING_EVENT_TYPES[event_type]

assert str(event_status) == "({}, 1)".format(event_type)
assert repr(event_status) == "<EventStatus({!r}, 1)>".format(event_type)
Expand Down

0 comments on commit 718dd10

Please sign in to comment.