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_static
static_i18n
inventree-data
# Local config file
config.yaml

View File

@ -10,29 +10,21 @@ tasks:
python3 -m venv venv
source venv/bin/activate
pip install invoke
inv install
mkdir dev
inv update
gp sync-done setup_server
inv test-setup
gp sync-done start_server
- name: Start server
init: gp sync-await setup_server
init: gp sync-await start_server
command: |
gp sync-await setup_server
gp sync-await start_server
export INVENTREE_DB_ENGINE='sqlite3'
export INVENTREE_DB_NAME='/workspace/InvenTree/dev/database.sqlite3'
export INVENTREE_MEDIA_ROOT='/workspace/InvenTree/inventree-data/media'
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
# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/
ports:
- port: 8000
onOpen: open-preview

View File

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

View File

@ -80,10 +80,7 @@ def validate_sales_order_reference(value):
def validate_tree_name(value):
"""Prevent illegal characters in tree item names."""
for c in "!@#$%^&*'\"\\/[]{}<>,|+=~`\"": # noqa: P103
if c in str(value):
raise ValidationError(_('Illegal character in name ({x})'.format(x=c)))
"""Placeholder for legacy function used in migrations."""
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"""
from django.core.exceptions import ValidationError
from django.test import TestCase
from .models import Part, PartCategory, PartParameter, PartParameterTemplate
@ -109,19 +108,6 @@ class CategoryTest(TestCase):
part_parameter.pop(item)
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):
"""Test that category deletion moves the children properly."""
# 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)
@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
def coverage(c):
"""Run code-coverage of the InvenTree codebase, using the 'coverage' code-analysis tools.