Top

pydelivengo.tests.tests_plis module

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright © 2018 Alexandria
#
# Distributed under terms of the MIT license.

from __future__ import absolute_import

from codecs import open

import pytest
import requests_mock

from pydelivengo.exception import PyDelivengoTypeError
from pydelivengo.pydelivengo import PyDelivengo


# ------------------------------------------------------- get_plis -----------------------------------------------------

def test_get_plis():
    """Test get_plis with a mock."""
    with requests_mock.Mocker() as m:
        api_response = open("pydelivengo/tests/assets/get_plis_ok.json", "rb", encoding='utf8').read()
        m.get('https://mydelivengo.laposte.fr/api/v2/plis', text=api_response)

        api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
        result = api.get_plis()

        assert 'data' in result.keys()

        # Check if there are some keys in the result
        data_keys_set = set(result['data'][0].keys())
        assert {'id', 'id_envoi', 'numero', 'date_creation'}.issubset(data_keys_set)


def test_get_plis_type_error():
    """Test get_plis when params is not a dictionary."""
    api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
    with pytest.raises(PyDelivengoTypeError):
        # noinspection PyTypeChecker
        api.get_plis(params='lolcatz')


# ------------------------------------------------------- get_pli ------------------------------------------------------

def test_get_pli():
    """Test get_pli when the pdf is requested."""
    with requests_mock.Mocker() as m:
        api_response = open("pydelivengo/tests/assets/get_pli_pdf_ok.json", "rb", encoding='utf8').read()
        m.get('https://mydelivengo.laposte.fr/api/v2/plis/11437479', text=api_response)

        api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
        result = api.get_pli(11437479, print_pdf=True)

        # Check if 'id', 'plis' and 'documents_supports' are keys of result
        data_keys_set = set(result['data'].keys())
        assert {'id', 'documents_supports'}.issubset(data_keys_set)


def test_get_pli_missing_parameter():
    """Test get_pli when pli_id is none."""
    api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
    with pytest.raises(PyDelivengoTypeError):
        # noinspection PyTypeChecker
        api.get_pli(pli_id=None)


# ----------------------------------------------------- delete_plis ----------------------------------------------------

def test_delete_plis_missing_parameter():
    """Test delete_plis when pli_id is none."""
    api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
    with pytest.raises(PyDelivengoTypeError):
        # noinspection PyTypeChecker
        api.delete_plis(pli_id=None)

Functions

def test_delete_plis_missing_parameter(

)

Test delete_plis when pli_id is none.

def test_delete_plis_missing_parameter():
    """Test delete_plis when pli_id is none."""
    api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
    with pytest.raises(PyDelivengoTypeError):
        # noinspection PyTypeChecker
        api.delete_plis(pli_id=None)

def test_get_pli(

)

Test get_pli when the pdf is requested.

def test_get_pli():
    """Test get_pli when the pdf is requested."""
    with requests_mock.Mocker() as m:
        api_response = open("pydelivengo/tests/assets/get_pli_pdf_ok.json", "rb", encoding='utf8').read()
        m.get('https://mydelivengo.laposte.fr/api/v2/plis/11437479', text=api_response)

        api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
        result = api.get_pli(11437479, print_pdf=True)

        # Check if 'id', 'plis' and 'documents_supports' are keys of result
        data_keys_set = set(result['data'].keys())
        assert {'id', 'documents_supports'}.issubset(data_keys_set)

def test_get_pli_missing_parameter(

)

Test get_pli when pli_id is none.

def test_get_pli_missing_parameter():
    """Test get_pli when pli_id is none."""
    api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
    with pytest.raises(PyDelivengoTypeError):
        # noinspection PyTypeChecker
        api.get_pli(pli_id=None)

def test_get_plis(

)

Test get_plis with a mock.

def test_get_plis():
    """Test get_plis with a mock."""
    with requests_mock.Mocker() as m:
        api_response = open("pydelivengo/tests/assets/get_plis_ok.json", "rb", encoding='utf8').read()
        m.get('https://mydelivengo.laposte.fr/api/v2/plis', text=api_response)

        api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
        result = api.get_plis()

        assert 'data' in result.keys()

        # Check if there are some keys in the result
        data_keys_set = set(result['data'][0].keys())
        assert {'id', 'id_envoi', 'numero', 'date_creation'}.issubset(data_keys_set)

def test_get_plis_type_error(

)

Test get_plis when params is not a dictionary.

def test_get_plis_type_error():
    """Test get_plis when params is not a dictionary."""
    api = PyDelivengo(api_authorization='Loremipsumdolorsitametconsectetu')
    with pytest.raises(PyDelivengoTypeError):
        # noinspection PyTypeChecker
        api.get_plis(params='lolcatz')