From 842051ecc74a4c274d9d290230e3d902b371fc7a Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 2 Jun 2022 21:49:30 +0200 Subject: [PATCH 1/4] Add tests for ParameterTemplate and Parameter --- test/test_part.py | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/test/test_part.py b/test/test_part.py index 988ca16b..1d98901b 100644 --- a/test/test_part.py +++ b/test/test_part.py @@ -422,3 +422,72 @@ def test_set_price(self): self.assertEqual(ip.part, p.pk) ip_price_clean = float(ip.price) self.assertEqual(ip_price_clean, test_price) + + def test_parameters(self): + """ + Test setting and getting Part parameter templates, as well as parameter values + """ + + # Count number of existing Parameter Templates + existingTemplates = len(ParameterTemplate.list(self.api)) + + # Create new parameter template - this will fail, no name given + parametertemplate = ParameterTemplate.create(self.api, data={'units':"kg A"}) + + # result should be None + self.assertIsNone(parametertemplate) + + # Now create a proper parameter template + parametertemplate = ParameterTemplate.create(self.api, data={'name':'Test parameter','units':"kg A"}) + + # result should not be None + self.assertIsNotNone(parametertemplate) + + # Count should be one higher now + self.assertEqual(len(ParameterTemplate.list(self.api)), existingTemplates+1) + + # Grab the first part + p = Part.list(self.api)[0] + + # Count number of parameters + existingParameters = len(p.getParameters()) + + # Define parameter value for this part - without all required values + param = Parameter.create(self.api, data={'template':parametertemplate.pk}) + + # result should be None + self.assertIsNone(param) + + # Define parameter value for this part - without all required values + param = Parameter.create(self.api, data={'data':10}) + + # result should be None + self.assertIsNone(param) + + # Define w. required values - integer + param = Parameter.create(self.api, data={'template':parametertemplate.pk,'data':10}) + + # result should not be None + self.assertIsNotNone(param) + + # Same parameter for same part - should fail + # Define w. required values - string + param = Parameter.create(self.api, data={'template':parametertemplate.pk,'data':'String value'}) + + # result should be None + self.assertIsNone(param) + + # Number of parameters should be one higher than before + self.assertEqual(len(p.getParameters()), existingParameters+1) + + # Delete the parameter + param.delete() + + # Check count + self.assertEqual(len(p.getParameters()), existingParameters) + + # Delete the parameter template + parametertemplate.delete() + + # Check count + self.assertEqual(len(ParameterTemplate.list(self.api)), existingTemplates) \ No newline at end of file From 4e90178ac396c6d8342cf13bfed5411d12b98bd1 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 2 Jun 2022 21:50:50 +0200 Subject: [PATCH 2/4] Add Parameter and ParameterTemplate to imports --- test/test_part.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_part.py b/test/test_part.py index 1d98901b..55cb86e5 100644 --- a/test/test_part.py +++ b/test/test_part.py @@ -13,7 +13,7 @@ from test_api import InvenTreeTestCase # noqa: E402 -from inventree.part import Part, PartAttachment, PartCategory # noqa: E402 +from inventree.part import Part, PartAttachment, PartCategory, Parameter, ParameterTemplate # noqa: E402 from inventree.part import InternalPrice # noqa: E402 From 16a93857563a3543943d8ec96cecedac8e71579c Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 2 Jun 2022 22:10:12 +0200 Subject: [PATCH 3/4] Add missing parameter data --- test/test_part.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/test_part.py b/test/test_part.py index 55cb86e5..a909fd83 100644 --- a/test/test_part.py +++ b/test/test_part.py @@ -453,29 +453,29 @@ def test_parameters(self): existingParameters = len(p.getParameters()) # Define parameter value for this part - without all required values - param = Parameter.create(self.api, data={'template':parametertemplate.pk}) + param = Parameter.create(self.api, data={'part':p.pk, 'template':parametertemplate.pk}) # result should be None self.assertIsNone(param) # Define parameter value for this part - without all required values - param = Parameter.create(self.api, data={'data':10}) + param = Parameter.create(self.api, data={'part':p.pk, 'data':10}) # result should be None self.assertIsNone(param) # Define w. required values - integer - param = Parameter.create(self.api, data={'template':parametertemplate.pk,'data':10}) + param = Parameter.create(self.api, data={'part':p.pk, 'template':parametertemplate.pk,'data':10}) # result should not be None self.assertIsNotNone(param) # Same parameter for same part - should fail # Define w. required values - string - param = Parameter.create(self.api, data={'template':parametertemplate.pk,'data':'String value'}) + param2 = Parameter.create(self.api, data={'part':p.pk, 'template':parametertemplate.pk,'data':'String value'}) # result should be None - self.assertIsNone(param) + self.assertIsNone(param2) # Number of parameters should be one higher than before self.assertEqual(len(p.getParameters()), existingParameters+1) From 1dd3201212cb50c3c0e6f9bc2914e20e8cd3da55 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 3 Jun 2022 07:11:28 +0000 Subject: [PATCH 4/4] Remove delete test (not implemented), fix style, make template name more unique --- test/test_part.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/test/test_part.py b/test/test_part.py index a909fd83..746c7f9a 100644 --- a/test/test_part.py +++ b/test/test_part.py @@ -432,19 +432,19 @@ def test_parameters(self): existingTemplates = len(ParameterTemplate.list(self.api)) # Create new parameter template - this will fail, no name given - parametertemplate = ParameterTemplate.create(self.api, data={'units':"kg A"}) + parametertemplate = ParameterTemplate.create(self.api, data={'units': "kg A"}) # result should be None self.assertIsNone(parametertemplate) # Now create a proper parameter template - parametertemplate = ParameterTemplate.create(self.api, data={'name':'Test parameter','units':"kg A"}) + parametertemplate = ParameterTemplate.create(self.api, data={'name': f'Test parameter no {existingTemplates}', 'units': "kg A"}) # result should not be None self.assertIsNotNone(parametertemplate) # Count should be one higher now - self.assertEqual(len(ParameterTemplate.list(self.api)), existingTemplates+1) + self.assertEqual(len(ParameterTemplate.list(self.api)), existingTemplates + 1) # Grab the first part p = Part.list(self.api)[0] @@ -453,41 +453,35 @@ def test_parameters(self): existingParameters = len(p.getParameters()) # Define parameter value for this part - without all required values - param = Parameter.create(self.api, data={'part':p.pk, 'template':parametertemplate.pk}) + param = Parameter.create(self.api, data={'part': p.pk, 'template': parametertemplate.pk}) # result should be None self.assertIsNone(param) # Define parameter value for this part - without all required values - param = Parameter.create(self.api, data={'part':p.pk, 'data':10}) + param = Parameter.create(self.api, data={'part': p.pk, 'data': 10}) # result should be None self.assertIsNone(param) # Define w. required values - integer - param = Parameter.create(self.api, data={'part':p.pk, 'template':parametertemplate.pk,'data':10}) + param = Parameter.create(self.api, data={'part': p.pk, 'template': parametertemplate.pk, 'data': 10}) # result should not be None self.assertIsNotNone(param) # Same parameter for same part - should fail # Define w. required values - string - param2 = Parameter.create(self.api, data={'part':p.pk, 'template':parametertemplate.pk,'data':'String value'}) + param2 = Parameter.create(self.api, data={'part': p.pk, 'template': parametertemplate.pk, 'data': 'String value'}) # result should be None self.assertIsNone(param2) # Number of parameters should be one higher than before - self.assertEqual(len(p.getParameters()), existingParameters+1) + self.assertEqual(len(p.getParameters()), existingParameters + 1) # Delete the parameter param.delete() # Check count self.assertEqual(len(p.getParameters()), existingParameters) - - # Delete the parameter template - parametertemplate.delete() - - # Check count - self.assertEqual(len(ParameterTemplate.list(self.api)), existingTemplates) \ No newline at end of file