def test_get_message_by_id(self): view = MessageView() response = view.get(HttpRequest(), self.data[0].id) self.assertEqual(HTTPStatus.OK.value, response.status_code) expected = serialize_message(self.data[0]) actual = json.loads(response.content.decode('utf8'))[0] self.assertEqual(expected, actual)
def test_delete_message_by_id_error_message_not_deleted(self): view = MessageView() response = view.delete(HttpRequest(), uuid.uuid4().__str__()) self.assertEqual(HTTPStatus.OK.value, response.status_code) expected = {'status': 'No message deleted'} actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_get_messages_list(self): view = MessageView() response = view.get(HttpRequest()) self.assertEqual(HTTPStatus.OK.value, response.status_code) expected = [serialize_message(a) for a in self.data] actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_delete_message_by_id(self): view = MessageView() response = view.delete(HttpRequest(), self.data[0].id) self.assertEqual(HTTPStatus.OK.value, response.status_code) expected = {'status': 'OK'} actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_post_messages_error_title_is_empty(self): view = MessageView() request = HttpRequest() request.data = {'title': '', 'text': 'test text 3'} response = view.post(request) self.assertEqual(HTTPStatus.BAD_REQUEST.value, response.status_code) expected = {'status': 'error', 'error': {'title': 'title is empty'}} actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_post_messages(self): view = MessageView() request = HttpRequest() request.data = {'title': 'test-title-3', 'text': 'test text 3'} response = view.post(request) self.assertEqual(HTTPStatus.CREATED.value, response.status_code) actual = json.loads(response.content.decode('utf8')) self.assertTrue('id' in actual and actual['id']) self.assertEqual(request.data['title'], actual['title'])
def test_get_message_by_id_error_incorrect_uuid(self): view = MessageView() response = view.get(HttpRequest(), 'c_43a6f6-cc08-457c-af8c-7ff7f94405e6') self.assertEqual( HTTPStatus.BAD_REQUEST.value, response.status_code ) expected = {'status': 'error', 'error': {'id': 'id is incorrect'}} actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_delete_message_by_id_error_during_deletion_message(self): view = MessageView() response = view.delete(HttpRequest(), 'Fake-id') self.assertEqual( HTTPStatus.BAD_REQUEST.value, response.status_code ) expected = {'status': 'error', 'error': {'id': 'id is incorrect'}} actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_put_message_by_id(self): view = MessageView() request = HttpRequest() request.data = self.data[0] request.data.title = 'updated-title-1' request.data.read = True request.data = serialize_message(request.data) response = view.put(request, request.data['id']) self.assertEqual(HTTPStatus.OK.value, response.status_code) expected = {'status': 'OK'} actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
def test_put_message_by_id_error_message_not_updated(self): view = MessageView() request = HttpRequest() request.data = self.data[0] request.data.title = 'updated-title-1' request.data.read = True request.data = {} response = view.put(request, self.data[0].id) self.assertEqual( HTTPStatus.INTERNAL_SERVER_ERROR.value, response.status_code ) expected = { 'status': 'error', 'error': 'Message not updated' } actual = json.loads(response.content.decode('utf8')) self.assertEqual(expected, actual)
from drf_yasg.views import get_schema_view from drf_yasg import openapi from django.contrib import admin from django.urls import path from msg_django_rest import settings from msg_django_rest.core.views import MessageView, CSVExporter schema_view = get_schema_view( openapi.Info( title="API", default_version='v1', description="Test description", terms_of_service="https://www.google.com/policies/terms/", contact=openapi.Contact(email="*****@*****.**"), license=openapi.License(name="BSD License"), ), public=True, permission_classes=(permissions.AllowAny, ), ) urlpatterns = [ path('admin/', admin.site.urls), path('messages/', MessageView.as_view()), path('messages/<str:id>/', MessageView.as_view()), path('csv/', CSVExporter.as_view()), url(r'docs/', TemplateView.as_view(template_name='swagger-ui.html', ), name='swagger-ui'), ] + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS)