From fbb46f48eddd6e82b67e0959e7d7570bf45ccf70 Mon Sep 17 00:00:00 2001 From: Michael Rest Date: Sun, 24 May 2020 18:21:14 +0200 Subject: [PATCH] Workbackup --- lactorapi/settings.py | 9 ++++++--- parameter/apps.py | 2 +- parameter/tests/test_views.py | 8 ++++---- parameter/views.py | 27 +++++++++++++++------------ status/models.py | 3 ++- status/serializers.py | 2 +- status/tests/test_models.py | 4 ++-- 7 files changed, 31 insertions(+), 24 deletions(-) diff --git a/lactorapi/settings.py b/lactorapi/settings.py index 16441a0..917c005 100644 --- a/lactorapi/settings.py +++ b/lactorapi/settings.py @@ -57,7 +57,10 @@ REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. 'DEFAULT_PERMISSION_CLASSES': [], - 'TEST_REQUEST_DEFAULT_FORMAT': 'json' + 'TEST_REQUEST_DEFAULT_FORMAT': 'json', + + #Needed vor REST-Swagger after 3.10 + 'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema' } ROOT_URLCONF = 'lactorapi.urls' @@ -118,9 +121,9 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization # https://docs.djangoproject.com/en/2.1/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'de-de' -TIME_ZONE = 'UTC' +TIME_ZONE = 'Europe/Berlin' USE_I18N = True diff --git a/parameter/apps.py b/parameter/apps.py index da6eb3a..056933e 100644 --- a/parameter/apps.py +++ b/parameter/apps.py @@ -1,4 +1,4 @@ from django.apps import AppConfig -class ParameterConfig(AppConfig): +class ParameterConfig (AppConfig): name = 'parameter' diff --git a/parameter/tests/test_views.py b/parameter/tests/test_views.py index 4f12635..6011609 100644 --- a/parameter/tests/test_views.py +++ b/parameter/tests/test_views.py @@ -25,7 +25,7 @@ class GetAllParmetersTest (TestCase): response = client.get (reverse ('get_post_parameter')) # get data from db parameter = Parameter.objects.all () - serializer = ParameterSerializer (parameter, many=True) + serializer = ParameterSerializer (parameter, many = True) self.assertEqual (response.data, serializer.data) self.assertEqual (response.status_code, status.HTTP_200_OK) @@ -33,7 +33,7 @@ class GetAllParmetersTest (TestCase): class GetSingleParameterTest (TestCase): """ Test module for GET single ParameterTest API """ - def setUp(self): + def setUp (self): self.parameter1 = Parameter.objects.create ( key = 'TestParameter1', value = 123) @@ -56,15 +56,15 @@ class GetSingleParameterTest (TestCase): reverse ('get_delete_update_parameter', kwargs = {'key': 'BadParam'})) self.assertEqual (response.status_code, status.HTTP_404_NOT_FOUND) + class CreateNewParameterTest (TestCase): """ Test module for inserting a new parameter """ def setUp (self): self.valid_payload = { 'key' : 'Parameter1', 'value' : 123} - #FixMe self.invalid_payload = { 'key' : 'Parameter2', - 'value' : 0} + 'value' : ''} def test_create_valid_parameter (self): diff --git a/parameter/views.py b/parameter/views.py index 4d6ee77..183acd0 100644 --- a/parameter/views.py +++ b/parameter/views.py @@ -6,13 +6,13 @@ from .models import Parameter from .serializers import ParameterSerializer -#@api_view(['GET', 'DELETE', 'PUT']) -@api_view(['GET', 'PUT']) +#@api_view (['GET', 'DELETE', 'PUT']) +@api_view (['GET', 'PUT']) def get_delete_update_parameter (request, key): try: parameter = Parameter.objects.get (key = key) except Parameter.DoesNotExist: - return Response (status=status.HTTP_404_NOT_FOUND) + return Response (status = status.HTTP_404_NOT_FOUND) # get value of a single Parameter if request.method == 'GET': @@ -26,24 +26,27 @@ def get_delete_update_parameter (request, key): serializer = ParameterSerializer (parameter, data = request.data) if serializer.is_valid (): serializer.save () - return Response(serializer.data, status=status.HTTP_204_NO_CONTENT) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response(serializer.data, status = status.HTTP_204_NO_CONTENT) + return Response(serializer.errors, status = status.HTTP_400_BAD_REQUEST) -@api_view(['GET', 'POST']) +@api_view (['GET', 'POST']) def get_post_parameter (request): # get all Parameter if request.method == 'GET': parameter = Parameter.objects.all () - serializer = ParameterSerializer (parameter, many=True) + serializer = ParameterSerializer (parameter, many = True) return Response (serializer.data) # insert a new record for a Parameter elif request.method == 'POST': - data = { 'key': request.data.get ('key'), - 'value': int (request.data.get ('value')) - } + try: + data = { 'key': request.data.get ('key'), + 'value': int (request.data.get ('value')) + } + except: + return Response ('Invalid Value', status = status.HTTP_400_BAD_REQUEST) serializer = ParameterSerializer (data = data) if serializer.is_valid () and data ['key'] > '' : serializer.save () - return Response (serializer.data, status=status.HTTP_201_CREATED) - return Response( serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response (serializer.data, status = status.HTTP_201_CREATED) + return Response( serializer.errors, status = status.HTTP_400_BAD_REQUEST) diff --git a/status/models.py b/status/models.py index a590f56..0c183d2 100644 --- a/status/models.py +++ b/status/models.py @@ -7,9 +7,10 @@ class Status (models.Model): """ key = models.CharField (primary_key = True, max_length = 20) value = models.IntegerField (null = False) + ts = models.DateTimeField (auto_now_add = True) def get_value (self): - return self.value + return self.value, self.ts def __repr__(self): return self.key + ' is added.' diff --git a/status/serializers.py b/status/serializers.py index 9af568d..e373948 100644 --- a/status/serializers.py +++ b/status/serializers.py @@ -5,4 +5,4 @@ from .models import Status class StatusSerializer (serializers.ModelSerializer): class Meta: model = Status - fields = ('key', 'value') + fields = ('key', 'value', 'ts') diff --git a/status/tests/test_models.py b/status/tests/test_models.py index 45e6dee..89194b3 100644 --- a/status/tests/test_models.py +++ b/status/tests/test_models.py @@ -13,8 +13,8 @@ class StatusTest (TestCase): def test_parameter (self): - state1 = Status.objects.get (key = 'TestStatus1') - state2 = Status.objects.get (key = 'TestStatus2') + state1, ts1 = Status.objects.get (key = 'TestStatus1') + state2, ts2 = Status.objects.get (key = 'TestStatus2') self.assertEqual ( state1.get_value (), 123) self.assertEqual (