예제 #1
0
def test_show_method_prints_object_with_formatting_functions(crudl_mock_model):
    """
    Este test comprueba que, para un modelo y PK dado, el método `show`:
    1. Obtiene ese objeto de la BD mediante el método de `peewee` `get`
    2. Formatea dicho objeto con el método `format_single_element`,
       usando como argumento el método `get_field_names()` del _meta del
       modelo.
    3. Imprime por pantalla el objeto formateado mediante el método
       `print_table`
    """

    from peewee2click import CRUDL

    format_func = 'peewee2click.CRUDL.format_single_element'
    print_func = 'peewee2click.CRUDL.print_table'
    model_mock = MagicMock()
    # Hacky!!! peewee usa el operador == de manera particular, así que devuelvo
    # ambos parámetros para asegurar que la invocación es exactamente así
    model_mock._meta.primary_key.__eq__ = lambda x, y: (x, y,)

    with patch(format_func) as format_mock, patch(print_func) as print_mock:
        CRUDL.show(model_mock, 3)

    model_mock.get.assert_called_once_with(model_mock._meta.primary_key == 3)
    format_mock.assert_called_once_with(
        model_mock.get.return_value,
        sorted(model_mock._meta.fields.keys.return_value))
    print_mock.assert_called_once_with(format_mock.return_value)
예제 #2
0
def test_show_method_returns_false_if_not_existing_object(crudl_mock_model):
    """
    Este test comprueba que el método `show` devuelve False cuando se le pasa
    el pk de un objeto no existente
    """

    from peewee2click import CRUDL

    assert CRUDL.show(crudl_mock_model, 1) is False
예제 #3
0
def test_show_method_returns_true_if_existing_object(crudl_mock_model):
    """
    Este test comprueba que el método `show` devuelve True cuando se le pasa
    el pk de un objeto existente
    """

    from peewee2click import CRUDL

    CRUDL.create(crudl_mock_model, force=True,
                 text_attr="mock", char_attr="", int_attr=1, bool_attr=True)
    assert CRUDL.show(crudl_mock_model, 1) is True