2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-30 04:26:44 +00:00
InvenTree/InvenTree/part/test_param.py
2020-11-02 15:35:54 -05:00

61 lines
1.8 KiB
Python

# Tests for Part Parameters
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.test import TestCase
import django.core.exceptions as django_exceptions
from .models import PartCategory
from .models import PartParameter, PartParameterTemplate
from .models import PartCategoryParameterTemplate
class TestParams(TestCase):
fixtures = [
'location',
'category',
'part',
'params'
]
def test_str(self):
t1 = PartParameterTemplate.objects.get(pk=1)
self.assertEquals(str(t1), 'Length (mm)')
p1 = PartParameter.objects.get(pk=1)
self.assertEqual(str(p1), 'M2x4 LPHS : Length = 4mm')
c1 = PartCategoryParameterTemplate.objects.get(pk=1)
self.assertEqual(str(c1), 'Mechanical | Length | 2.8')
def test_validate(self):
n = PartParameterTemplate.objects.all().count()
t1 = PartParameterTemplate(name='abcde', units='dd')
t1.save()
self.assertEqual(n + 1, PartParameterTemplate.objects.all().count())
# Test that the case-insensitive name throws a ValidationError
with self.assertRaises(django_exceptions.ValidationError):
t3 = PartParameterTemplate(name='aBcde', units='dd')
t3.full_clean()
t3.save()
n = PartCategoryParameterTemplate.objects.all().count()
self.assertEqual(n, 2)
parent_category = PartCategory.objects.get(pk=8).get_root()
self.assertEqual(parent_category.pk, 7)
c1 = PartCategoryParameterTemplate(category=parent_category,
parameter_template=t1,
default_value='xyz')
c1.save()
self.assertEqual(n + 1, PartCategoryParameterTemplate.objects.filter(category=7).count())