Exemplo n.º 1
0
    def test_run(self, _mock):
        _mock.return_value = [{
            "detalhes": None,
            "local": "AGF SAO PATRICIO - Sao Paulo/SP",
            "data": "19/07/2016 11:37",
            "situacao": "Postado"
        }]
        data = {
            'callback': 'http://example.com',
            'something': 'XXX',
        }
        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertTrue(changed)

        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertFalse(changed)

        _mock.return_value.append({
            "detalhes": "Encaminhado para UNIDADE DE CORREIOS/BR",
            "local": "AGF SAO PATRICIO - Sao Paulo/SP",
            "data": "20/07/2016 08:46",
            "situacao": "Encaminhado"
        })
        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertTrue(changed)

        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertFalse(changed)
Exemplo n.º 2
0
    def test_run(self, _mock):
        _mock.return_value = [{
            "detalhes": None,
            "local": "AGF SAO PATRICIO - Sao Paulo/SP",
            "data": "19/07/2016 11:37",
            "situacao": "Postado"
        }]
        data = {
            'callback': 'http://example.com',
            'something': 'XXX',
        }
        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertTrue(changed)

        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertFalse(changed)

        _mock.return_value.append({
            "detalhes": "Encaminhado para UNIDADE DE CORREIOS/BR",
            "local": "AGF SAO PATRICIO - Sao Paulo/SP",
            "data": "20/07/2016 08:46",
            "situacao": "Encaminhado"
        })
        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertTrue(changed)

        self._post('test', data)
        changed = PackTracker.run('ect', 'test')
        self.assertFalse(changed)
Exemplo n.º 3
0
def track_packs():
    logger.info('Iniciando tracking de pacotes...')
    db = Database()
    for obj in db.packtrack.get_all():
        provider = obj['servico']
        track = obj['codigo']
        changed = PackTracker.run(provider, track)
        if changed:
            PackTracker.report(provider, track)

    logger.info('Finalizou o tracking de pacotes')
Exemplo n.º 4
0
def track_packs():
    logger.info('Iniciando tracking de pacotes...')
    db = Database()
    for obj in db.packtrack.get_all():
        provider = obj['servico']
        track = obj['codigo']
        changed = PackTracker.run(provider, track)
        if changed:
            PackTracker.report(provider, track)

    logger.info('Finalizou o tracking de pacotes')
Exemplo n.º 5
0
def track_packs():
    logger.info('Iniciando tracking de pacotes...')
    db = Database()
    runTask = PackTracker.correios_check()
    print('runTask: ' + str(runTask))
    if runTask:
        for obj in db.packtrack.get_all():
            provider = obj['servico']
            track = obj['codigo']
            changed = PackTracker.run(provider, track)
            if changed:
                PackTracker.report(provider, track)

    logger.info('Finalizou o tracking de pacotes')
Exemplo n.º 6
0
def track_pack_register(provider, track):
    """
    Registra o rastreamento do pacote. O `callback` é parâmetro obrigatório,
    qualquer outra informação passada será devolvida quando o `callback` for
    chamado.

    {
        "callback": "http://httpbin.org/post",
        "myid": 1,
        "other": "thing"
    }
    """
    if "callback" not in request.json:
        message = "400 callback obrigatorio"
        return make_error(message)

    try:
        result = PackTracker.register(provider, track, request.json)
    except (AttributeError, ValueError):
        message = "400 Falha no registro do %s/%s" % (provider, track)
        logger.exception(message)
        return make_error(message)
    else:
        return format_result({
            'token': result,
        })
Exemplo n.º 7
0
def track_pack(provider, track):
    response.headers['Access-Control-Allow-Origin'] = '*'
    if provider == 'ect':
        auth = (
            request.headers.get('x-correios-usuario'),
            request.headers.get('x-correios-senha'),
        )
        if auth == (None, None):
            auth = None

        try:
            historico = PackTracker.correios(track, auth=auth)
        except (AttributeError, ValueError):
            message = "404 Pacote %s nao encontrado" % track
            logger.exception(message)
        else:
            return format_result({
                'servico': provider,
                'codigo': track,
                'historico': historico,
            })
    else:
        message = '404 Servico %s nao encontrado' % provider
        logger.warning(message)
    return make_error(message)
Exemplo n.º 8
0
    def test_report(self, _mock_requests):

        input_data = {
            'callback': 'http://example.com',
            'something': 'XXX',
        }
        response = self._post('test', input_data)
        token = response['token']

        encomenda = correios.Encomenda('track')
        status = correios.Status(
            local="AGF SAO PATRICIO - Sao Paulo/SP",
            data="19/07/2016 11:37",
            situacao="Postado",
        )
        encomenda.adicionar_status(status)
        with mock.patch('PackTracker.packtrack') as _mock_correios:
            _mock_correios.Correios.track.return_value = encomenda
            changed = PackTracker.run('ect', 'test')
        self.assertTrue(changed)

        PackTracker.report('ect', 'test')

        call = _mock_requests.call_args
        self.assertEqual(('http://example.com', ), call[0])

        data = json.loads(call[1]['data'])

        self.assertEqual(input_data, data['input'])
        self.assertEqual(token, data['token'])
        self.assertEqual([{
            u'detalhes': status.detalhes,
            u'local': status.local,
            u'situacao': status.situacao,
            u'data': status.data,
        }], data['historico'])
Exemplo n.º 9
0
    def test_report(self, _mock_requests):

        input_data = {
            'callback': 'http://example.com',
            'something': 'XXX',
        }
        response = self._post('test', input_data)
        token = response['token']

        encomenda = correios.Encomenda('track')
        status = correios.Status(
            local="AGF SAO PATRICIO - Sao Paulo/SP",
            data="19/07/2016 11:37",
            situacao="Postado",
        )
        encomenda.adicionar_status(status)
        with mock.patch('PackTracker.packtrack') as _mock_correios:
            _mock_correios.Correios.track.return_value = encomenda
            changed = PackTracker.run('ect', 'test')
        self.assertTrue(changed)

        PackTracker.report('ect', 'test')

        call = _mock_requests.call_args
        self.assertEqual(('http://example.com',), call[0])

        data = json.loads(call[1]['data'])

        self.assertEqual(input_data, data['input'])
        self.assertEqual(token, data['token'])
        self.assertEqual([{
            u'detalhes': status.detalhes,
            u'local': status.local,
            u'situacao': status.situacao,
            u'data': status.data,
        }], data['historico'])
Exemplo n.º 10
0
def track_pack(provider, track):
    if provider == 'ect':
        try:
            historico = PackTracker.correios(track)
        except (AttributeError, ValueError):
            message = "404 Pacote %s nao encontrado" % track
            logger.exception(message)
        else:
            return format_result({
                'servico': provider,
                'codigo': track,
                'historico': historico,
            })
    else:
        message = '404 Servico %s nao encontrado' % provider
        logger.warning(message)
    return make_error(message)
Exemplo n.º 11
0
def track_pack(provider, track):
    response.headers['Access-Control-Allow-Origin'] = '*'
    if provider == 'ect':
        try:
            historico = PackTracker.correios(track)
        except (AttributeError, ValueError):
            message = "404 Pacote %s nao encontrado" % track
            logger.exception(message)
        else:
            return format_result({
                'servico': provider,
                'codigo': track,
                'historico': historico,
            })
    else:
        message = '404 Servico %s nao encontrado' % provider
        logger.warning(message)
    return make_error(message)