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)
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
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