From 3a87cd866c68a040343941d3cb5e563b85fcd428 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 8 Aug 2019 23:32:34 +1000 Subject: [PATCH] Tests for part creation - Need more tests for POST action --- InvenTree/part/test_views.py | 28 +++++++++++++++++++++++++--- InvenTree/part/views.py | 6 +++--- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/InvenTree/part/test_views.py b/InvenTree/part/test_views.py index c042a6a861..9e51679e9a 100644 --- a/InvenTree/part/test_views.py +++ b/InvenTree/part/test_views.py @@ -85,10 +85,10 @@ class PartDetailTest(PartViewTestCase): self.assertIn('streaming_content', dir(response)) -class PartEditTest(PartViewTestCase): - """ Tests for Part editing form """ +class PartTests(PartViewTestCase): + """ Tests for Part forms """ - def test_get_edit(self): + def test_part_edit(self): response = self.client.get(reverse('part-edit', args=(1,)), HTTP_X_REQUESTED_WITH='XMLHttpRequest') self.assertEqual(response.status_code, 200) @@ -101,6 +101,28 @@ class PartEditTest(PartViewTestCase): self.assertIn('html_form', data) self.assertIn('"title":', data) + def test_part_create(self): + """ Launch form to create a new part """ + response = self.client.get(reverse('part-create'), {'category': 1}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + self.assertEqual(response.status_code, 200) + + # And again, with an invalid category + response = self.client.get(reverse('part-create'), {'category': 9999}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + self.assertEqual(response.status_code, 200) + + # And again, with no category + response = self.client.get(reverse('part-create'), {'name': 'Test part'}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + self.assertEqual(response.status_code, 200) + + def test_part_duplicate(self): + """ Launch form to duplicate part """ + + # First try with an invalid part + response = self.client.get(reverse('part-duplicate', args=(9999,)), HTTP_X_REQUESTED_WITH='XMLHttpRequest') + self.assertEqual(response.status_code, 200) + + response = self.client.get(reverse('part-duplicate', args=(1,)), HTTP_X_REQUESTED_WITH='XMLHttpRequest') + self.assertEqual(response.status_code, 200) class PartAttachmentTests(PartViewTestCase): diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index 74adc490b8..b7bed73003 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -295,7 +295,7 @@ class PartDuplicate(AjaxCreateView): def get_part_to_copy(self): try: return Part.objects.get(id=self.kwargs['pk']) - except Part.DoesNotExist: + except (Part.DoesNotExist, ValueError): return None def get_context_data(self): @@ -419,7 +419,7 @@ class PartCreate(AjaxCreateView): if cat_id: try: context['category'] = PartCategory.objects.get(pk=cat_id) - except PartCategory.DoesNotExist: + except (PartCategory.DoesNotExist, ValueError): pass return context @@ -494,7 +494,7 @@ class PartCreate(AjaxCreateView): category = PartCategory.objects.get(pk=self.get_category_id()) initials['category'] = category initials['keywords'] = category.default_keywords - except PartCategory.DoesNotExist: + except (PartCategory.DoesNotExist, ValueError): pass # Allow initial data to be passed through as arguments