diff --git a/pypro/modulos/facade.py b/pypro/modulos/facade.py
index dd84fe1..44b7abe 100644
--- a/pypro/modulos/facade.py
+++ b/pypro/modulos/facade.py
@@ -10,3 +10,7 @@ def listar_modulos_ordenados() -> List[Modulo]:
"""
return list(Modulo.objects.order_by('order').all())
+
+
+def encontrar_modulo(slug: str) -> Modulo:
+ return Modulo.objects.get(slug=slug)
diff --git a/pypro/modulos/templates/modulos/modulo_detalhe.html b/pypro/modulos/templates/modulos/modulo_detalhe.html
new file mode 100644
index 0000000..b795fc5
--- /dev/null
+++ b/pypro/modulos/templates/modulos/modulo_detalhe.html
@@ -0,0 +1,18 @@
+{% extends 'base/base.html' %}
+{% block title %}{{ modulo.titulo }}{% endblock title %}
+{% block description %}Página com detalhes do módulo {{ modulo.titulo }}{% endblock description %}
+{% block body %}
+
+
+
+
{{ modulo.titulo }}
+
+ - Público
+ - {{ modulo.publico }}
+ - Descrição
+ - {{ modulo.descricao }}
+
+
+
+
+{% endblock body %}
\ No newline at end of file
diff --git a/pypro/modulos/tests/test_modulo_detalhe.py b/pypro/modulos/tests/test_modulo_detalhe.py
new file mode 100644
index 0000000..47b2a10
--- /dev/null
+++ b/pypro/modulos/tests/test_modulo_detalhe.py
@@ -0,0 +1,29 @@
+from django.urls import reverse
+import pytest
+from pypro.django_assertions import assert_contains
+from model_bakery import baker
+
+from pypro.modulos.models import Modulo
+
+
+@pytest.fixture
+def modulo(db):
+ return baker.make(Modulo)
+
+
+@pytest.fixture
+def resp(client, modulo):
+ resp = client.get(reverse('modulos:detalhe', kwargs={'slug': modulo.slug}))
+ return resp
+
+
+def test_titulo(resp, modulo: Modulo):
+ assert_contains(resp, modulo.titulo)
+
+
+def test_descricao(resp, modulo: Modulo):
+ assert_contains(resp, modulo.descricao)
+
+
+def test_publico(resp, modulo: Modulo):
+ assert_contains(resp, modulo.publico)
diff --git a/pypro/modulos/views.py b/pypro/modulos/views.py
index e0e6c96..a3bda63 100644
--- a/pypro/modulos/views.py
+++ b/pypro/modulos/views.py
@@ -1,5 +1,8 @@
from django.shortcuts import render
+from pypro.modulos import facade
+
def detalhe(request, slug):
- pass
+ modulo = facade.encontrar_modulo(slug)
+ return render(request, 'modulos/modulo_detalhe.html', {'modulo': modulo})