fix docstrings 2

This commit is contained in:
Matthias 2022-05-28 02:14:25 +02:00
parent 9b40fddf7c
commit 80510e8ba2
No known key found for this signature in database
GPG Key ID: AB6D0E6C4CB65093
6 changed files with 17 additions and 64 deletions

View File

@ -1897,9 +1897,7 @@ def after_save_stock_item(sender, instance: StockItem, created, **kwargs):
class StockItemAttachment(InvenTreeAttachment):
"""
Model for storing file attachments against a StockItem object.
"""
"""Model for storing file attachments against a StockItem object."""
@staticmethod
def get_api_url():
@ -1980,6 +1978,7 @@ def rename_stock_item_test_result_attachment(instance, filename):
class StockItemTestResult(models.Model):
"""A StockItemTestResult records results of custom tests against individual StockItem objects.
This is useful for tracking unit acceptance tests, and particularly useful when integrated
with automated testing setups.

View File

@ -74,10 +74,7 @@ class StockItemSerializer(InvenTree.serializers.InvenTreeModelSerializer):
"""
def update(self, instance, validated_data):
"""
Custom update method to pass the user information through to the instance
"""
"""Custom update method to pass the user information through to the instance"""
instance._user = self.context['user']
return super().update(instance, validated_data)
@ -276,7 +273,6 @@ class SerializeStockItemSerializer(serializers.Serializer):
def validate_quantity(self, quantity):
"""Validate that the quantity value is correct"""
item = self.context['item']
if quantity < 0:
@ -313,7 +309,6 @@ class SerializeStockItemSerializer(serializers.Serializer):
def validate(self, data):
"""Check that the supplied serial numbers are valid"""
data = super().validate(data)
item = self.context['item']
@ -387,7 +382,6 @@ class InstallStockItemSerializer(serializers.Serializer):
def validate_stock_item(self, stock_item):
"""Validate the selected stock item"""
if not stock_item.in_stock:
# StockItem must be in stock to be "installed"
raise ValidationError(_("Stock item is unavailable"))
@ -403,7 +397,6 @@ class InstallStockItemSerializer(serializers.Serializer):
def save(self):
"""Install the selected stock item into this one"""
data = self.validated_data
stock_item = data['stock_item']
@ -856,7 +849,6 @@ class StockMergeSerializer(serializers.Serializer):
At this point we are confident that the merge can take place
"""
data = self.validated_data
base_item = data['base_item']

View File

@ -78,7 +78,6 @@ class StockItemListTest(StockAPITestCase):
def get_stock(self, **kwargs):
"""Filter stock and return JSON object"""
response = self.client.get(self.list_url, format='json', data=kwargs)
self.assertEqual(response.status_code, status.HTTP_200_OK)
@ -88,14 +87,12 @@ class StockItemListTest(StockAPITestCase):
def test_get_stock_list(self):
"""List *all* StockItem objects."""
response = self.get_stock()
self.assertEqual(len(response), 29)
def test_filter_by_part(self):
"""Filter StockItem by Part reference"""
response = self.get_stock(part=25)
self.assertEqual(len(response), 17)
@ -106,13 +103,11 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_IPN(self):
"""Filter StockItem by IPN reference"""
response = self.get_stock(IPN="R.CH")
self.assertEqual(len(response), 3)
def test_filter_by_location(self):
"""Filter StockItem by StockLocation reference"""
response = self.get_stock(location=5)
self.assertEqual(len(response), 1)
@ -127,7 +122,6 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_depleted(self):
"""Filter StockItem by depleted status"""
response = self.get_stock(depleted=1)
self.assertEqual(len(response), 1)
@ -136,7 +130,6 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_in_stock(self):
"""Filter StockItem by 'in stock' status"""
response = self.get_stock(in_stock=1)
self.assertEqual(len(response), 26)
@ -145,7 +138,6 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_status(self):
"""Filter StockItem by 'status' field"""
codes = {
StockStatus.OK: 27,
StockStatus.DESTROYED: 1,
@ -162,13 +154,11 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_batch(self):
"""Filter StockItem by batch code"""
response = self.get_stock(batch='B123')
self.assertEqual(len(response), 1)
def test_filter_by_serialized(self):
"""Filter StockItem by serialized status"""
response = self.get_stock(serialized=1)
self.assertEqual(len(response), 12)
@ -183,7 +173,6 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_has_batch(self):
"""Test the 'has_batch' filter, which tests if the stock item has been assigned a batch code"""
with_batch = self.get_stock(has_batch=1)
without_batch = self.get_stock(has_batch=0)
@ -200,9 +189,9 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_tracked(self):
"""Test the 'tracked' filter.
This checks if the stock item has either a batch code *or* a serial number
"""
tracked = self.get_stock(tracked=True)
untracked = self.get_stock(tracked=False)
@ -220,7 +209,6 @@ class StockItemListTest(StockAPITestCase):
def test_filter_by_expired(self):
"""Filter StockItem by expiry status"""
# First, we can assume that the 'stock expiry' feature is disabled
response = self.get_stock(expired=1)
self.assertEqual(len(response), 29)
@ -259,7 +247,6 @@ class StockItemListTest(StockAPITestCase):
def test_paginate(self):
"""Test that we can paginate results correctly"""
for n in [1, 5, 10]:
response = self.get_stock(limit=n)
@ -289,7 +276,6 @@ class StockItemListTest(StockAPITestCase):
def test_export(self):
"""Test exporting of Stock data via the API"""
dataset = self.export_data({})
# Check that *all* stock item objects have been exported
@ -342,7 +328,6 @@ class StockItemTest(StockAPITestCase):
"""Test the default location functionality,
if a 'location' is not specified in the creation request.
"""
# The part 'R_4K7_0603' (pk=4) has a default location specified
response = self.client.post(
@ -386,7 +371,6 @@ class StockItemTest(StockAPITestCase):
def test_stock_item_create(self):
"""Test creation of a StockItem via the API"""
# POST with an empty part reference
response = self.client.post(
@ -437,7 +421,6 @@ class StockItemTest(StockAPITestCase):
def test_creation_with_serials(self):
"""Test that serialized stock items can be created via the API."""
trackable_part = part.models.Part.objects.create(
name='My part',
description='A trackable part',
@ -495,8 +478,7 @@ class StockItemTest(StockAPITestCase):
self.assertEqual(trackable_part.get_stock_count(), 10)
def test_default_expiry(self):
"""
Test that the "default_expiry" functionality works via the API.
"""Test that the "default_expiry" functionality works via the API.
- If an expiry_date is specified, use that
- Otherwise, check if the referenced part has a default_expiry defined
@ -507,7 +489,6 @@ class StockItemTest(StockAPITestCase):
- Part <25> has a default_expiry of 10 days
"""
# First test - create a new StockItem without an expiry date
data = {
'part': 4,
@ -546,7 +527,6 @@ class StockItemTest(StockAPITestCase):
def test_purchase_price(self):
"""Test that we can correctly read and adjust purchase price information via the API"""
url = reverse('api-stock-detail', kwargs={'pk': 1})
data = self.get(url, expected_code=200).data
@ -605,7 +585,6 @@ class StockItemTest(StockAPITestCase):
def test_install(self):
"""Test that stock item can be installed into antoher item, via the API"""
# Select the "parent" stock item
parent_part = part.models.Part.objects.get(pk=100)
@ -691,7 +670,6 @@ class StocktakeTest(StockAPITestCase):
def test_action(self):
"""Test each stocktake action endpoint, for validation"""
for endpoint in ['api-stock-count', 'api-stock-add', 'api-stock-remove']:
url = reverse(endpoint)
@ -748,7 +726,6 @@ class StocktakeTest(StockAPITestCase):
def test_transfer(self):
"""Test stock transfers"""
data = {
'items': [
{
@ -886,8 +863,7 @@ class StockTestResultTest(StockAPITestCase):
self.assertEqual(test['user'], self.user.pk)
def test_post_bitmap(self):
"""
2021-08-25
"""2021-08-25
For some (unknown) reason, prior to fix https://github.com/inventree/InvenTree/pull/2018
uploading a bitmap image would result in a failure.
@ -896,7 +872,6 @@ class StockTestResultTest(StockAPITestCase):
As a bonus this also tests the file-upload component
"""
here = os.path.dirname(__file__)
image_file = os.path.join(here, 'fixtures', 'test_image.bmp')
@ -921,9 +896,7 @@ class StockTestResultTest(StockAPITestCase):
class StockAssignTest(StockAPITestCase):
"""Unit tests for the stock assignment API endpoint,
where stock items are manually assigned to a customer
"""
"""Unit tests for the stock assignment API endpoint, where stock items are manually assigned to a customer"""
URL = reverse('api-stock-assign')
@ -1062,7 +1035,6 @@ class StockMergeTest(StockAPITestCase):
def test_missing_data(self):
"""Test responses which are missing required data"""
# Post completely empty
data = self.post(
@ -1088,7 +1060,6 @@ class StockMergeTest(StockAPITestCase):
def test_invalid_data(self):
"""Test responses which have invalid data"""
# Serialized stock items should be rejected
data = self.post(
self.URL,
@ -1170,7 +1141,6 @@ class StockMergeTest(StockAPITestCase):
def test_valid_merge(self):
"""Test valid merging of stock items"""
# Check initial conditions
n = StockItem.objects.filter(part=self.part).count()
self.assertEqual(self.item_1.quantity, 100)

View File

@ -188,7 +188,7 @@ class StockTest(InvenTreeTestCase):
self.assertEqual(s_item.location, self.office)
def test_move(self):
""" Test stock movement functions """
"""Test stock movement functions"""
# Move 4,000 screws to the bathroom
it = StockItem.objects.get(pk=1)
self.assertNotEqual(it.location, self.bathroom)
@ -508,7 +508,6 @@ class StockTest(InvenTreeTestCase):
Ref: https://github.com/inventree/InvenTree/issues/2636
Ref: https://github.com/inventree/InvenTree/issues/2733
"""
# First, we will create a stock location structure
A = StockLocation.objects.create(

View File

@ -72,11 +72,7 @@ class StockItemDetail(InvenTreeRoleMixin, InvenTreePluginViewMixin, DetailView):
model = StockItem
def get_context_data(self, **kwargs):
"""
Add information on the "next" and "previous" StockItem objects,
based on the serial numbers.
"""
"""Add information on the "next" and "previous" StockItem objects, based on the serial numbers."""
data = super().get_context_data(**kwargs)
if self.object.serialized:
@ -97,7 +93,6 @@ class StockItemDetail(InvenTreeRoleMixin, InvenTreePluginViewMixin, DetailView):
def get(self, request, *args, **kwargs):
"""Check if item exists else return to stock index"""
stock_pk = kwargs.get('pk', None)
if stock_pk:
@ -120,7 +115,7 @@ class StockLocationQRCode(QRCodeView):
role_required = ['stock_location.view', 'stock.view']
def get_qr_data(self):
""" Generate QR code data for the StockLocation """
"""Generate QR code data for the StockLocation"""
try:
loc = StockLocation.objects.get(id=self.pk)
return loc.format_barcode()
@ -198,7 +193,7 @@ class StockItemQRCode(QRCodeView):
role_required = 'stock.view'
def get_qr_data(self):
""" Generate QR code data for the StockItem """
"""Generate QR code data for the StockItem"""
try:
item = StockItem.objects.get(id=self.pk)
return item.format_barcode()
@ -237,8 +232,8 @@ class StockItemConvert(AjaxUpdateView):
class StockLocationDelete(AjaxDeleteView):
"""
View to delete a StockLocation
"""View to delete a StockLocation
Presents a deletion confirmation form to the user
"""
@ -250,8 +245,8 @@ class StockLocationDelete(AjaxDeleteView):
class StockItemDelete(AjaxDeleteView):
"""
View to delete a StockItem
"""View to delete a StockItem
Presents a deletion confirmation form to the user
"""
@ -263,8 +258,8 @@ class StockItemDelete(AjaxDeleteView):
class StockItemTrackingDelete(AjaxDeleteView):
"""
View to delete a StockItemTracking object
"""View to delete a StockItemTracking object
Presents a deletion confirmation form to the user
"""

View File

@ -47,7 +47,6 @@ class RuleSetModelTest(TestCase):
def test_model_names(self):
"""Test that each model defined in the rulesets is valid, based on the database schema!"""
available_models = apps.get_models()
available_tables = set()
@ -104,7 +103,6 @@ class RuleSetModelTest(TestCase):
def test_permission_assign(self):
"""Test that the permission assigning works!"""
# Create a new group
group = Group.objects.create(name="Test group")