Merge remote-tracking branch 'inventree/master'

This commit is contained in:
Oliver Walters 2022-07-21 15:26:01 +10:00
commit e5adf4a89f
8 changed files with 55 additions and 32 deletions

1
.gitignore vendored
View File

@ -48,6 +48,7 @@ docs/_build
inventree_media inventree_media
inventree_static inventree_static
static_i18n static_i18n
inventree-data
# Local config file # Local config file
config.yaml config.yaml

View File

@ -10,29 +10,21 @@ tasks:
python3 -m venv venv python3 -m venv venv
source venv/bin/activate source venv/bin/activate
pip install invoke pip install invoke
inv install
mkdir dev mkdir dev
inv update inv test-setup
gp sync-done setup_server gp sync-done start_server
- name: Start server - name: Start server
init: gp sync-await setup_server init: gp sync-await start_server
command: | command: |
gp sync-await setup_server gp sync-await start_server
export INVENTREE_DB_ENGINE='sqlite3' export INVENTREE_DB_ENGINE='sqlite3'
export INVENTREE_DB_NAME='/workspace/InvenTree/dev/database.sqlite3' export INVENTREE_DB_NAME='/workspace/InvenTree/dev/database.sqlite3'
export INVENTREE_MEDIA_ROOT='/workspace/InvenTree/inventree-data/media' export INVENTREE_MEDIA_ROOT='/workspace/InvenTree/inventree-data/media'
export INVENTREE_STATIC_ROOT='/workspace/InvenTree/dev/static' export INVENTREE_STATIC_ROOT='/workspace/InvenTree/dev/static'
source venv/bin/activate
rm /workspace/InvenTree/inventree-data -r
git clone https://github.com/inventree/demo-dataset /workspace/InvenTree/inventree-data
invoke delete-data -f
invoke import-records -f /workspace/InvenTree/inventree-data/inventree_data.json
inv server inv server
# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/
ports: ports:
- port: 8000 - port: 8000
onOpen: open-preview onOpen: open-preview

View File

@ -24,7 +24,6 @@ import InvenTree.format
import InvenTree.helpers import InvenTree.helpers
from common.models import InvenTreeSetting from common.models import InvenTreeSetting
from InvenTree.fields import InvenTreeURLField from InvenTree.fields import InvenTreeURLField
from InvenTree.validators import validate_tree_name
logger = logging.getLogger('inventree') logger = logging.getLogger('inventree')
@ -538,7 +537,6 @@ class InvenTreeTree(MPTTModel):
name = models.CharField( name = models.CharField(
blank=False, blank=False,
max_length=100, max_length=100,
validators=[validate_tree_name],
verbose_name=_("Name"), verbose_name=_("Name"),
help_text=_("Name"), help_text=_("Name"),
) )

View File

@ -80,10 +80,7 @@ def validate_sales_order_reference(value):
def validate_tree_name(value): def validate_tree_name(value):
"""Prevent illegal characters in tree item names.""" """Placeholder for legacy function used in migrations."""
for c in "!@#$%^&*'\"\\/[]{}<>,|+=~`\"": # noqa: P103
if c in str(value):
raise ValidationError(_('Illegal character in name ({x})'.format(x=c)))
def validate_overage(value): def validate_overage(value):

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-20 16:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('part', '0080_alter_part_image'),
]
operations = [
migrations.AlterField(
model_name='partcategory',
name='name',
field=models.CharField(help_text='Name', max_length=100, verbose_name='Name'),
),
]

View File

@ -1,6 +1,5 @@
"""Unit tests for the PartCategory model""" """Unit tests for the PartCategory model"""
from django.core.exceptions import ValidationError
from django.test import TestCase from django.test import TestCase
from .models import Part, PartCategory, PartParameter, PartParameterTemplate from .models import Part, PartCategory, PartParameter, PartParameterTemplate
@ -109,19 +108,6 @@ class CategoryTest(TestCase):
part_parameter.pop(item) part_parameter.pop(item)
self.assertEqual(len(part_parameter), 1) self.assertEqual(len(part_parameter), 1)
def test_invalid_name(self):
"""Test that an illegal character is prohibited in a category name"""
cat = PartCategory(name='test/with/illegal/chars', description='Test category', parent=None)
with self.assertRaises(ValidationError) as err:
cat.full_clean()
cat.save() # pragma: no cover
self.assertIn('Illegal character in name', str(err.exception.error_dict.get('name')))
cat.name = 'good name'
cat.save()
def test_delete(self): def test_delete(self):
"""Test that category deletion moves the children properly.""" """Test that category deletion moves the children properly."""
# Delete the 'IC' category and 'Transceiver' should move to be under 'Electronics' # Delete the 'IC' category and 'Transceiver' should move to be under 'Electronics'

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-20 16:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('stock', '0078_alter_stockitem_supplier_part'),
]
operations = [
migrations.AlterField(
model_name='stocklocation',
name='name',
field=models.CharField(help_text='Name', max_length=100, verbose_name='Name'),
),
]

View File

@ -511,6 +511,19 @@ def test(c, database=None):
manage(c, 'test', pty=True) manage(c, 'test', pty=True)
@task(pre=[update])
def setup_test(c):
"""Setup a testing enviroment."""
# Remove old data directory
c.run('rm inventree-data -r')
# Get test data
c.run('git clone https://github.com/inventree/demo-dataset inventree-data')
# Load data
import_records(c, filename='inventree-data/inventree_data.json', clear=True)
@task @task
def coverage(c): def coverage(c):
"""Run code-coverage of the InvenTree codebase, using the 'coverage' code-analysis tools. """Run code-coverage of the InvenTree codebase, using the 'coverage' code-analysis tools.