Add books
This commit is contained in:
parent
d0a2dfeddc
commit
2e3f2029d3
10
app/libros/urls.py
Normal file
10
app/libros/urls.py
Normal file
@ -0,0 +1,10 @@
|
||||
# app/libros/urls.py
|
||||
|
||||
from django.urls import path
|
||||
from app.libros.views import ping, LibrosList
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path("ping/", ping, name="ping"),
|
||||
path("api/libros/", LibrosList.as_view()),
|
||||
]
|
@ -1,11 +1,22 @@
|
||||
# app/libros/views.py
|
||||
|
||||
from django.http import JsonResponse
|
||||
from django.http import JsonResponse
|
||||
from rest_framework.views import APIView # nuevo
|
||||
from rest_framework.response import Response # nuevo
|
||||
from rest_framework import status # nuevo
|
||||
from .serializers import LibroSerializer # nuevo
|
||||
|
||||
|
||||
def ping(request):
|
||||
data = {"ping": "pong!"}
|
||||
return JsonResponse(data)
|
||||
|
||||
def ping(request):
|
||||
data = {"ping": "pong!"}
|
||||
return JsonResponse(data)
|
||||
|
||||
class LibrosList(APIView):
|
||||
|
||||
def post(self, request):
|
||||
serializer = LibroSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
@ -1,10 +1,9 @@
|
||||
# proyecto/urls.py
|
||||
|
||||
from django.contrib import admin
|
||||
from django.urls import path
|
||||
|
||||
from app.libros.views import ping
|
||||
|
||||
from django.urls import path, include
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path('ping/', ping, name="ping"),
|
||||
path("admin/", admin.site.urls),
|
||||
path("", include("app.libros.urls")),
|
||||
]
|
30
tests/libros/test_views.py
Normal file
30
tests/libros/test_views.py
Normal file
@ -0,0 +1,30 @@
|
||||
# tests/libros/test_views.py
|
||||
|
||||
import pytest
|
||||
from app.libros.models import Libros
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_add_movie(client):
|
||||
# Given
|
||||
libros = Libros.objects.all()
|
||||
assert len(libros) == 0
|
||||
|
||||
# When
|
||||
resp = client.post(
|
||||
"/api/libros/",
|
||||
{
|
||||
"title": "El fin de la eternidad",
|
||||
"genre": "Ciencia Ficción",
|
||||
"author": "Isaac Asimov",
|
||||
"year": "1955",
|
||||
},
|
||||
content_type="application/json"
|
||||
)
|
||||
|
||||
# Then
|
||||
assert resp.status_code == 201
|
||||
assert resp.data["title"] == "El fin de la eternidad"
|
||||
|
||||
libros = Libros.objects.all()
|
||||
assert len(libros) == 1
|
Loading…
Reference in New Issue
Block a user