diff --git a/cookbook/tests/edits/test_edits_comment.py b/cookbook/tests/edits/test_edits_comment.py index 11c53316..af3ff903 100644 --- a/cookbook/tests/edits/test_edits_comment.py +++ b/cookbook/tests/edits/test_edits_comment.py @@ -12,7 +12,6 @@ class TestEditsComment(TestViews): self.recipe = Recipe.objects.create( internal=True, - instructions='Do something', working_time=1, waiting_time=1, created_by=auth.get_user(self.user_client_1) diff --git a/cookbook/tests/edits/test_edits_recipe.py b/cookbook/tests/edits/test_edits_recipe.py index 31494b93..6a71292a 100644 --- a/cookbook/tests/edits/test_edits_recipe.py +++ b/cookbook/tests/edits/test_edits_recipe.py @@ -62,15 +62,15 @@ class TestEditsRecipe(TestViews): created_by=auth.get_user(self.user_client_1) ) - url = reverse('edit_internal_recipe', args=[recipe.pk]) + url = reverse('api:recipe-detail', args=[recipe.pk]) r = self.user_client_1.get(url) self.assertEqual(r.status_code, 200) r = self.anonymous_client.get(url) - self.assertEqual(r.status_code, 302) + self.assertEqual(r.status_code, 403) - r = self.user_client_1.post(url, {'name': 'Changed', 'working_time': 15, 'waiting_time': 15, 'ingredients': '[]'}) + r = self.user_client_1.put(url, {'name': 'Changed', 'working_time': 15, 'waiting_time': 15, 'keywords': [], 'steps': []}, content_type='application/json') self.assertEqual(r.status_code, 200) recipe = Recipe.objects.get(pk=recipe.pk) @@ -79,24 +79,19 @@ class TestEditsRecipe(TestViews): Food.objects.create(name='Egg') Unit.objects.create(name='g') - r = self.user_client_1.post(url, - {'name': 'Changed', 'working_time': 15, 'waiting_time': 15, - 'ingredients': '[{"ingredient__name":"Tomato","unit__name":"g","amount":100,"delete":false},{"ingredient__name":"Egg","unit__name":"Piece","amount":"2,5","delete":false}]'}) + r = self.user_client_1.put(url, {'name': 'Changed', 'working_time': 15, 'waiting_time': 15, 'keywords': [], + 'steps': [{'ingredients': [ + {"food": {"name": "test food"}, "unit": {"name": "test unit"}, 'amount': 12, 'note': "test note"}, + {"food": {"name": "test food 2"}, "unit": {"name": "test unit 2"}, 'amount': 42, 'note': "test note 2"} + ]}]}, content_type='application/json') self.assertEqual(r.status_code, 200) - self.assertEqual(2, Ingredient.objects.filter(recipe=recipe).count()) - - r = self.user_client_1.post(url, - {'name': "Test", 'working_time': "Test", 'waiting_time': 15, - 'ingredients': '[{"ingredient__name":"Tomato","unit__name":"g","amount":100,"delete":false},{"ingredient__name":"Egg","unit__name":"Piece","amount":"2,5","delete":false}]'}) - self.assertEqual(r.status_code, 403) + self.assertEqual(2, recipe.steps.first().ingredients.count()) with open('cookbook/tests/resources/image.jpg', 'rb') as file: - r = self.user_client_1.post(url, {'name': "Changed", 'working_time': 15, 'waiting_time': 15, 'image': file}) - self.assertEqual(r.status_code, 200) + pass # TODO new image tests with open('cookbook/tests/resources/image.png', 'rb') as file: - r = self.user_client_1.post(url, {'name': "Changed", 'working_time': 15, 'waiting_time': 15, 'image': file}) - self.assertEqual(r.status_code, 200) + pass # TODO new image tests def test_external_recipe_update(self): storage = Storage.objects.create( diff --git a/cookbook/tests/views/test_views_api.py b/cookbook/tests/views/test_views_api.py index a4baa5f5..39089d02 100644 --- a/cookbook/tests/views/test_views_api.py +++ b/cookbook/tests/views/test_views_api.py @@ -11,7 +11,6 @@ class TestViewsApi(TestViews): recipe = Recipe.objects.create( internal=False, link='test', - instructions='Do something', working_time=1, waiting_time=1, created_by=auth.get_user(self.user_client_1) diff --git a/cookbook/views/edit.py b/cookbook/views/edit.py index 5664f426..f53eb685 100644 --- a/cookbook/views/edit.py +++ b/cookbook/views/edit.py @@ -47,83 +47,6 @@ def convert_recipe(request, pk): @group_required('user') def internal_recipe_update(request, pk): recipe_instance = get_object_or_404(Recipe, pk=pk) - status = 200 - - if request.method == "POST": - form = InternalRecipeForm(request.POST, request.FILES) - form.instance = recipe_instance - - if form.is_valid(): - recipe = recipe_instance - recipe.name = form.cleaned_data['name'] - recipe.instructions = form.cleaned_data['instructions'] - recipe.working_time = form.cleaned_data['working_time'] - recipe.waiting_time = form.cleaned_data['waiting_time'] - - if form.cleaned_data['image']: - recipe.image = form.cleaned_data['image'] - - img = Image.open(recipe.image) - - basewidth = 720 - wpercent = (basewidth / float(img.size[0])) - hsize = int((float(img.size[1]) * float(wpercent))) - img = img.resize((basewidth, hsize), Image.ANTIALIAS) - - im_io = BytesIO() - img.save(im_io, 'PNG', quality=70) - recipe.image = File(im_io, name=f'{uuid.uuid4()}_{recipe.pk}.png') - elif 'image' in form.changed_data and form.cleaned_data['image'] is False: - recipe.image = None - - recipe.save() - - try: - form_ingredients = json.loads(form.cleaned_data['ingredients']) - except simplejson.errors.JSONDecodeError: - form_ingredients = [] - - Ingredient.objects.filter(recipe=recipe_instance).delete() - - for i in form_ingredients: - recipe_ingredient = Ingredient() - recipe_ingredient.recipe = recipe_instance - - if 'note' in i: - recipe_ingredient.note = i['note'] - - if Food.objects.filter(name=i['ingredient__name']).exists(): - recipe_ingredient.ingredient = Food.objects.get(name=i['ingredient__name']) - else: - food = Food() - food.name = i['food__name'] - food.save() - recipe_ingredient.ingredient = food - - if isinstance(i['amount'], str): - try: - recipe_ingredient.amount = float(i['amount'].replace(',', '.')) - except ValueError: - form.add_error("ingredients", _('There was an error converting your ingredients amount to a number: ') + i['unit__name']) - else: - recipe_ingredient.amount = i['amount'] - - if Unit.objects.filter(name=i['unit__name']).exists(): - recipe_ingredient.unit = Unit.objects.get(name=i['unit__name']) - else: - unit = Unit() - unit.name = i['unit__name'] - unit.save() - recipe_ingredient.unit = unit - - recipe_ingredient.save() - - recipe.keywords.set(form.cleaned_data['keywords']) - - messages.add_message(request, messages.SUCCESS, _('Recipe saved!')) - else: - messages.add_message(request, messages.ERROR, _('There was an error saving this recipe!')) - status = 403 return render(request, 'forms/edit_internal_recipe.html', {'recipe': recipe_instance})