mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-04 07:05:41 +00:00 
			
		
		
		
	fix migration coverage for company
This commit is contained in:
		@@ -14,11 +14,11 @@ So a simplified version of the migration is implemented.
 | 
			
		||||
TESTING = 'test' in sys.argv
 | 
			
		||||
 | 
			
		||||
def clear():
 | 
			
		||||
    if not TESTING:
 | 
			
		||||
    if not TESTING:  # pragma: no cover
 | 
			
		||||
        os.system('cls' if os.name == 'nt' else 'clear')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def reverse_association(apps, schema_editor):
 | 
			
		||||
def reverse_association(apps, schema_editor):  # pragma: no cover
 | 
			
		||||
    """
 | 
			
		||||
    This is the 'reverse' operation of the manufacturer reversal.
 | 
			
		||||
    This operation is easier:
 | 
			
		||||
@@ -108,7 +108,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
 | 
			
		||||
        if len(row) > 0:
 | 
			
		||||
            return row[0]
 | 
			
		||||
        return ''
 | 
			
		||||
        return ''  # pragma: no cover
 | 
			
		||||
 | 
			
		||||
    cursor = connection.cursor()
 | 
			
		||||
 | 
			
		||||
@@ -139,7 +139,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
        """ Attempt to link Part to an existing Company """
 | 
			
		||||
 | 
			
		||||
        # Matches a company name directly
 | 
			
		||||
        if name in companies.keys():
 | 
			
		||||
        if name in companies.keys():  # pragma: no cover
 | 
			
		||||
            print(" - Part[{pk}]: '{n}' maps to existing manufacturer".format(pk=part_id, n=name))
 | 
			
		||||
 | 
			
		||||
            manufacturer_id = companies[name]
 | 
			
		||||
@@ -150,7 +150,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
            return True
 | 
			
		||||
 | 
			
		||||
        # Have we already mapped this 
 | 
			
		||||
        if name in links.keys():
 | 
			
		||||
        if name in links.keys():  # pragma: no cover
 | 
			
		||||
            print(" - Part[{pk}]: Mapped '{n}' - manufacturer <{c}>".format(pk=part_id, n=name, c=links[name]))
 | 
			
		||||
 | 
			
		||||
            manufacturer_id = links[name]
 | 
			
		||||
@@ -196,10 +196,10 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
            # Case-insensitive matching
 | 
			
		||||
            ratio = fuzz.partial_ratio(name.lower(), text.lower())
 | 
			
		||||
 | 
			
		||||
            if ratio > threshold:
 | 
			
		||||
            if ratio > threshold:  # pragma: no cover
 | 
			
		||||
                matches.append({'name': name, 'match': ratio})
 | 
			
		||||
 | 
			
		||||
        if len(matches) > 0:
 | 
			
		||||
        if len(matches) > 0:  # pragma: no cover
 | 
			
		||||
            return [match['name'] for match in sorted(matches, key=lambda item: item['match'], reverse=True)]
 | 
			
		||||
        else:
 | 
			
		||||
            return []
 | 
			
		||||
@@ -212,12 +212,12 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
        name = get_manufacturer_name(part_id)
 | 
			
		||||
 | 
			
		||||
        # Skip empty names
 | 
			
		||||
        if not name or len(name) == 0:
 | 
			
		||||
        if not name or len(name) == 0:  # pragma: no cover
 | 
			
		||||
            print(" - Part[{pk}]: No manufacturer_name provided, skipping".format(pk=part_id))
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        # Can be linked to an existing manufacturer
 | 
			
		||||
        if link_part(part_id, name):
 | 
			
		||||
        if link_part(part_id, name):  # pragma: no cover
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        # Find a list of potential matches
 | 
			
		||||
@@ -226,12 +226,12 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
        clear()
 | 
			
		||||
 | 
			
		||||
        # Present a list of options
 | 
			
		||||
        if not TESTING:
 | 
			
		||||
        if not TESTING:  # pragma: no cover
 | 
			
		||||
            print("----------------------------------")
 | 
			
		||||
    
 | 
			
		||||
        print("Checking part [{pk}] ({idx} of {total})".format(pk=part_id, idx=idx+1, total=total))
 | 
			
		||||
    
 | 
			
		||||
        if not TESTING:
 | 
			
		||||
        if not TESTING:  # pragma: no cover
 | 
			
		||||
            print("Manufacturer name: '{n}'".format(n=name))
 | 
			
		||||
            print("----------------------------------")
 | 
			
		||||
            print("Select an option from the list below:")
 | 
			
		||||
@@ -249,7 +249,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
            if TESTING:
 | 
			
		||||
                # When running unit tests, simply select the name of the part
 | 
			
		||||
                response = '0'
 | 
			
		||||
            else:
 | 
			
		||||
            else:  # pragma: no cover
 | 
			
		||||
                response = str(input("> ")).strip()
 | 
			
		||||
 | 
			
		||||
            # Attempt to parse user response as an integer
 | 
			
		||||
@@ -263,7 +263,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
                    return
 | 
			
		||||
 | 
			
		||||
                # Options 1) - n) select an existing manufacturer
 | 
			
		||||
                else:
 | 
			
		||||
                else:  # pragma: no cover
 | 
			
		||||
                    n = n - 1
 | 
			
		||||
 | 
			
		||||
                    if n < len(matches):
 | 
			
		||||
@@ -287,7 +287,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
                    else:
 | 
			
		||||
                        print("Please select a valid option")
 | 
			
		||||
 | 
			
		||||
            except ValueError:
 | 
			
		||||
            except ValueError:  # pragma: no cover
 | 
			
		||||
                # User has typed in a custom name!
 | 
			
		||||
 | 
			
		||||
                if not response or len(response) == 0:
 | 
			
		||||
@@ -312,7 +312,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
    print("")
 | 
			
		||||
    clear()
 | 
			
		||||
 | 
			
		||||
    if not TESTING:
 | 
			
		||||
    if not TESTING:  # pragma: no cover
 | 
			
		||||
        print("---------------------------------------")
 | 
			
		||||
        print("The SupplierPart model needs to be migrated,")
 | 
			
		||||
        print("as the new 'manufacturer' field maps to a 'Company' reference.")
 | 
			
		||||
@@ -339,7 +339,7 @@ def associate_manufacturers(apps, schema_editor):
 | 
			
		||||
    for index, row in enumerate(results):
 | 
			
		||||
        pk, MPN, SKU, manufacturer_id, manufacturer_name = row
 | 
			
		||||
 | 
			
		||||
        if manufacturer_id is not None:
 | 
			
		||||
        if manufacturer_id is not None:  # pragma: no cover
 | 
			
		||||
            print(f" - SupplierPart <{pk}> already has a manufacturer associated (skipping)")
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def reverse_empty_email(apps, schema_editor):
 | 
			
		||||
def reverse_empty_email(apps, schema_editor):  # pragma: no cover
 | 
			
		||||
    Company = apps.get_model('company', 'Company')
 | 
			
		||||
    for company in Company.objects.all():
 | 
			
		||||
        if company.email == None:
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ def migrate_currencies(apps, schema_editor):
 | 
			
		||||
 | 
			
		||||
        suffix = suffix.strip().upper()
 | 
			
		||||
 | 
			
		||||
        if suffix not in currency_codes:
 | 
			
		||||
        if suffix not in currency_codes:  # pragma: no cover
 | 
			
		||||
            logger.warning(f"Missing suffix: '{suffix}'")
 | 
			
		||||
 | 
			
		||||
            while suffix not in currency_codes:
 | 
			
		||||
@@ -78,7 +78,7 @@ def migrate_currencies(apps, schema_editor):
 | 
			
		||||
    if count > 0:
 | 
			
		||||
        logger.info(f"Updated {count} SupplierPriceBreak rows")
 | 
			
		||||
 | 
			
		||||
def reverse_currencies(apps, schema_editor):
 | 
			
		||||
def reverse_currencies(apps, schema_editor):  # pragma: no cover
 | 
			
		||||
    """
 | 
			
		||||
    Reverse the "update" process.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,12 +15,12 @@ def supplierpart_make_manufacturer_parts(apps, schema_editor):
 | 
			
		||||
        for supplier_part in supplier_parts:
 | 
			
		||||
            print(f'{supplier_part.supplier.name[:15].ljust(15)} | {supplier_part.SKU[:15].ljust(15)}\t', end='')
 | 
			
		||||
 | 
			
		||||
            if supplier_part.manufacturer_part:
 | 
			
		||||
            if supplier_part.manufacturer_part:  # pragma: no cover
 | 
			
		||||
                print(f'[ERROR: MANUFACTURER PART ALREADY EXISTS]')
 | 
			
		||||
                continue
 | 
			
		||||
 | 
			
		||||
            part = supplier_part.part
 | 
			
		||||
            if not part:
 | 
			
		||||
            if not part:  # pragma: no cover
 | 
			
		||||
                print(f'[ERROR: SUPPLIER PART IS NOT CONNECTED TO PART]')
 | 
			
		||||
                continue
 | 
			
		||||
            
 | 
			
		||||
@@ -67,7 +67,7 @@ def supplierpart_make_manufacturer_parts(apps, schema_editor):
 | 
			
		||||
 | 
			
		||||
        print(f'{"-"*10}\nDone\n')
 | 
			
		||||
 | 
			
		||||
def supplierpart_populate_manufacturer_info(apps, schema_editor):
 | 
			
		||||
def supplierpart_populate_manufacturer_info(apps, schema_editor):  # pragma: no cover
 | 
			
		||||
    Part = apps.get_model('part', 'Part')
 | 
			
		||||
    ManufacturerPart = apps.get_model('company', 'ManufacturerPart')
 | 
			
		||||
    SupplierPart = apps.get_model('company', 'SupplierPart')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user