Coverage report: 52%

Files Functions Classes

coverage.py v7.15.2, created at 2026-10-07 17:47 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
src/backend/InvenTree/InvenTree/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/admin.py CustomRateAdmin   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/admin.py ReadOnlyScheduleAdmin   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/admin.py InvenTreeUserSessionAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/admin.py (no class)   90% 30 3 0   100% 0 0   90%
src/backend/InvenTree/InvenTree/api.py LicenseViewSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py LicenseView   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionViewSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionViewSerializer.VersionSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionViewSerializer.LinkSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionView   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionInformationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionInformationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py VersionTextView   100% 9 0 0   100% 4 0   100%
src/backend/InvenTree/InvenTree/api.py InfoApiSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py InfoApiSerializer.SettingsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py InfoApiSerializer.CustomizeSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py InfoView   60% 15 6 0   50% 6 1   57%
src/backend/InvenTree/InvenTree/api.py NotFoundView   86% 7 1 0   100% 0 0   86%
src/backend/InvenTree/InvenTree/api.py BulkRequestSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py BulkOperationMixin   76% 17 4 0   70% 10 3   74%
src/backend/InvenTree/InvenTree/api.py BulkCreateMixin   8% 37 34 0   4% 24 1   7%
src/backend/InvenTree/InvenTree/api.py BulkUpdateMixin   11% 19 17 0   0% 2 0   10%
src/backend/InvenTree/InvenTree/api.py ParameterListMixin   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py CommonBulkDeleteMixin   11% 9 8 0   0% 2 0   9%
src/backend/InvenTree/InvenTree/api.py BulkDeleteMixin   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py BulkDeleteViewsetMixin   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py ListCreateDestroyAPIView   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py APISearchViewSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py APISearchView   46% 39 21 0   31% 16 1   42%
src/backend/InvenTree/InvenTree/api.py GenericMetadataView   89% 19 2 0   75% 8 2   85%
src/backend/InvenTree/InvenTree/api.py SimpleGenericMetadataView   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/api.py MetadataRedirectView   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/api.py TreeMixin   43% 14 8 0   75% 4 1   50%
src/backend/InvenTree/InvenTree/api.py (no class)   98% 230 4 0   83% 12 2   98%
src/backend/InvenTree/InvenTree/api_version.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/apps.py InvenTreeConfig   61% 146 57 0   53% 70 23   58%
src/backend/InvenTree/InvenTree/apps.py (no class)   100% 39 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/auth_overrides.py CustomLoginForm   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/InvenTree/auth_overrides.py CustomSignupForm   0% 14 14 0   0% 8 0   0%
src/backend/InvenTree/InvenTree/auth_overrides.py RegistrationMixin   0% 30 30 0   0% 16 0   0%
src/backend/InvenTree/InvenTree/auth_overrides.py CustomAccountAdapter   0% 11 11 0   0% 4 0   0%
src/backend/InvenTree/InvenTree/auth_overrides.py CustomSocialAccountAdapter   0% 11 11 0   0% 6 0   0%
src/backend/InvenTree/InvenTree/auth_overrides.py CustomHeadlessAdapter   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/InvenTree/auth_overrides.py (no class)   93% 45 3 0   25% 4 1   88%
src/backend/InvenTree/InvenTree/backends.py InvenTreeMaintenanceModeBackend   76% 25 6 0   100% 6 0   81%
src/backend/InvenTree/InvenTree/backends.py InvenTreeMailLoggingBackend   0% 36 36 0   0% 14 0   0%
src/backend/InvenTree/InvenTree/backends.py InvenTreeErrorMailBackend   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/backends.py (no class)   100% 24 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/backup.py (no class)   43% 94 54 0   8% 26 2   35%
src/backend/InvenTree/InvenTree/cache.py (no class)   87% 79 10 0   54% 26 8   79%
src/backend/InvenTree/InvenTree/config.py (no class)   69% 293 90 0   49% 124 35   63%
src/backend/InvenTree/InvenTree/conversion.py (no class)   45% 139 76 0   16% 44 5   38%
src/backend/InvenTree/InvenTree/exceptions.py (no class)   77% 71 16 0   62% 26 10   73%
src/backend/InvenTree/InvenTree/exchange.py InvenTreeExchange   62% 37 14 0   43% 14 6   57%
src/backend/InvenTree/InvenTree/exchange.py (no class)   100% 12 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/fields.py InvenTreeRestURLField   70% 10 3 0   50% 6 1   62%
src/backend/InvenTree/InvenTree/fields.py InvenTreeURLField   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/fields.py InvenTreeModelMoneyField   67% 15 5 0   75% 4 1   68%
src/backend/InvenTree/InvenTree/fields.py InvenTreeMoneyField   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/fields.py DatePickerFormField   0% 6 6 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/fields.py RoundingDecimalFormField   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/fields.py RoundingDecimalField   50% 4 2 0   100% 0 0   50%
src/backend/InvenTree/InvenTree/fields.py InvenTreeNotesField   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/fields.py InvenTreeOutputOption   100% 5 0 0   100% 2 0   100%
src/backend/InvenTree/InvenTree/fields.py OutputConfiguration   83% 12 2 0   75% 8 2   80%
src/backend/InvenTree/InvenTree/fields.py (no class)   94% 69 4 0   83% 12 2   93%
src/backend/InvenTree/InvenTree/filters.py InvenTreeDateFilter   100% 5 0 0   100% 2 0   100%
src/backend/InvenTree/InvenTree/filters.py InvenTreeSearchFilter   83% 24 4 0   75% 16 4   80%
src/backend/InvenTree/InvenTree/filters.py InvenTreeOrderingFilter   96% 28 1 0   94% 18 1   96%
src/backend/InvenTree/InvenTree/filters.py NumberOrNullFilter   82% 11 2 0   50% 4 2   73%
src/backend/InvenTree/InvenTree/filters.py NumericInFilter   73% 11 3 0   83% 6 1   76%
src/backend/InvenTree/InvenTree/filters.py (no class)   100% 24 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/format.py (no class)   90% 49 5 0   67% 18 6   84%
src/backend/InvenTree/InvenTree/helpers.py (no class)   45% 518 286 0   23% 220 37   38%
src/backend/InvenTree/InvenTree/helpers_api.py RetrieveUpdateDestroyModelViewSet   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/helpers_api.py RetrieveDestroyModelViewSet   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/helpers_api.py InvenTreeApiRouter   71% 7 2 0   100% 2 0   78%
src/backend/InvenTree/InvenTree/helpers_api.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/helpers_email.py (no class)   64% 53 19 0   35% 34 12   53%
src/backend/InvenTree/InvenTree/helpers_mfa.py (no class)   0% 8 8 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/helpers_mixin.py ClassValidationMixin   45% 20 11 0   25% 12 3   38%
src/backend/InvenTree/InvenTree/helpers_mixin.py ClassProviderMixin   67% 9 3 0   75% 4 1   69%
src/backend/InvenTree/InvenTree/helpers_mixin.py get_shared_class_instance_state_mixin.SharedClassStateMixinClass   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/helpers_mixin.py (no class)   100% 25 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/helpers_model.py (no class)   43% 133 76 0   21% 38 6   38%
src/backend/InvenTree/InvenTree/logging.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/magic_login.py GetSimpleLoginSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/magic_login.py GetSimpleLoginView   67% 18 6 0   50% 2 1   65%
src/backend/InvenTree/InvenTree/magic_login.py (no class)   85% 27 4 0   100% 0 0   85%
src/backend/InvenTree/InvenTree/metadata.py InvenTreeMetadata   84% 197 32 0   77% 140 20   81%
src/backend/InvenTree/InvenTree/metadata.py (no class)   100% 22 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/middleware.py AuthRequiredMiddleware   61% 28 11 0   57% 14 4   60%
src/backend/InvenTree/InvenTree/middleware.py Check2FAMiddleware   17% 23 19 0   17% 12 2   17%
src/backend/InvenTree/InvenTree/middleware.py InvenTreeRemoteUserMiddleware   67% 3 1 0   50% 2 1   60%
src/backend/InvenTree/InvenTree/middleware.py InvenTreeExceptionProcessor   0% 11 11 0   0% 6 0   0%
src/backend/InvenTree/InvenTree/middleware.py InvenTreeRequestCacheMiddleware   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/middleware.py InvenTreeHostSettingsMiddleware   65% 23 8 0   50% 10 3   61%
src/backend/InvenTree/InvenTree/middleware.py InvenTreeVersionHeaderMiddleware   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/middleware.py (no class)   92% 74 6 0   71% 14 2   89%
src/backend/InvenTree/InvenTree/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/migrations/0001_initial.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py CleanMixin   98% 46 1 0   89% 18 2   95%
src/backend/InvenTree/InvenTree/mixins.py ListAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py ListCreateAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py CreateAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py RetrieveAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py RetrieveUpdateAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py CustomDestroyModelMixin   25% 4 3 0   100% 0 0   25%
src/backend/InvenTree/InvenTree/mixins.py CustomRetrieveUpdateDestroyAPIView   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py CustomRetrieveUpdateDestroyAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py RetrieveUpdateDestroyAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py RetrieveDestroyAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py UpdateAPI   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py DataImportExportSerializerMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py OutputOptionsMixin   100% 16 0 0   83% 6 1   95%
src/backend/InvenTree/InvenTree/mixins.py SerializerContextMixin   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/mixins.py (no class)   100% 40 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py DiffMixin   82% 17 3 0   100% 10 0   89%
src/backend/InvenTree/InvenTree/models.py PluginValidationMixin   47% 32 17 0   40% 10 4   45%
src/backend/InvenTree/InvenTree/models.py MetadataMixin   67% 18 6 0   50% 12 4   60%
src/backend/InvenTree/InvenTree/models.py MetadataMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py ReferenceIndexingMixin   66% 71 24 0   50% 26 7   62%
src/backend/InvenTree/InvenTree/models.py ReferenceIndexingMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py ReferenceIndexingMixin.generate_reference.ReferenceFormatter   50% 4 2 0   50% 2 1   50%
src/backend/InvenTree/InvenTree/models.py ContentTypeMixin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/models.py InvenTreeModel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeModel.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeMetadataModel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeMetadataModel.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreePermissionCheckMixin   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeParameterMixin   21% 29 23 0   25% 12 1   22%
src/backend/InvenTree/InvenTree/models.py InvenTreeParameterMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeAttachmentMixin   43% 14 8 0   50% 2 1   44%
src/backend/InvenTree/InvenTree/models.py InvenTreeTree   19% 116 94 0   24% 54 5   21%
src/backend/InvenTree/InvenTree/models.py InvenTreeTree.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeTree.MPTTMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py PathStringMixin   32% 62 42 0   23% 26 2   30%
src/backend/InvenTree/InvenTree/models.py PathStringMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeNotesMixin   67% 6 2 0   50% 2 1   62%
src/backend/InvenTree/InvenTree/models.py InvenTreeNotesMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeTagsMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeTagsMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeBarcodeMixin   5% 41 39 0   0% 18 0   3%
src/backend/InvenTree/InvenTree/models.py InvenTreeBarcodeMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py InvenTreeImageMixin   40% 10 6 0   33% 6 2   38%
src/backend/InvenTree/InvenTree/models.py InvenTreeImageMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/models.py (no class)   95% 221 10 0   50% 10 3   94%
src/backend/InvenTree/InvenTree/permissions.py OASTokenMixin   88% 8 1 0   75% 4 1   83%
src/backend/InvenTree/InvenTree/permissions.py InvenTreeRoleScopeMixin   67% 12 4 0   50% 4 2   62%
src/backend/InvenTree/InvenTree/permissions.py InvenTreeTokenMatchesOASRequirements   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/InvenTree/permissions.py ModelPermission   100% 6 0 0   75% 4 1   90%
src/backend/InvenTree/InvenTree/permissions.py RolePermission   17% 18 15 0   10% 10 1   14%
src/backend/InvenTree/InvenTree/permissions.py RolePermissionOrReadOnly   64% 11 4 0   38% 8 1   53%
src/backend/InvenTree/InvenTree/permissions.py StaffRolePermissionOrReadOnly   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py IsSuperuserOrSuperScope   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py IsSuperuserOrReadOnlyOrScope   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py IsAuthenticatedOrReadScope   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py IsStaffOrReadOnlyScope   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py IsAdminOrAdminScope   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py AllowAnyOrReadScope   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/permissions.py UserSettingsPermissionsOrScope   62% 13 5 0   50% 2 1   60%
src/backend/InvenTree/InvenTree/permissions.py GlobalSettingsPermissions   75% 8 2 0   100% 2 0   80%
src/backend/InvenTree/InvenTree/permissions.py DataImporterPermission   17% 12 10 0   0% 8 0   10%
src/backend/InvenTree/InvenTree/permissions.py ContentTypePermission   80% 5 1 0   50% 2 1   71%
src/backend/InvenTree/InvenTree/permissions.py (no class)   94% 94 6 0   89% 18 2   93%
src/backend/InvenTree/InvenTree/profiling.py (no class)   0% 60 60 0   0% 8 0   0%
src/backend/InvenTree/InvenTree/ready.py (no class)   82% 105 19 0   59% 44 18   75%
src/backend/InvenTree/InvenTree/sanitizer.py (no class)   56% 16 7 0   0% 4 0   45%
src/backend/InvenTree/InvenTree/schema.py ExtendedOAuth2Scheme   88% 8 1 0   83% 6 1   86%
src/backend/InvenTree/InvenTree/schema.py ExtendedAutoSchema   80% 66 13 0   85% 34 1   82%
src/backend/InvenTree/InvenTree/schema.py exclude_from_schema.LegacyView   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/schema.py (no class)   97% 94 3 0   92% 36 3   95%
src/backend/InvenTree/InvenTree/sentry.py (no class)   50% 40 20 0   10% 10 1   42%
src/backend/InvenTree/InvenTree/serializers.py OptionalField   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/serializers.py FilterableSerializerMixin   95% 86 4 0   87% 68 9   92%
src/backend/InvenTree/InvenTree/serializers.py EmptySerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/serializers.py TreePathSerializer   86% 7 1 0   83% 6 1   85%
src/backend/InvenTree/InvenTree/serializers.py TreePathSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeMoneySerializer   78% 23 5 0   83% 6 1   79%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeCurrencySerializer   93% 14 1 0   90% 10 1   92%
src/backend/InvenTree/InvenTree/serializers.py DependentField   9% 35 32 0   0% 20 0   5%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeModelSerializer   67% 72 24 0   62% 32 2   65%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeTaggitSerializer   67% 6 2 0   50% 2 1   62%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeAttachmentSerializerField   100% 3 0 0   100% 2 0   100%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeImageSerializerField   67% 3 1 0   50% 2 1   60%
src/backend/InvenTree/InvenTree/serializers.py InvenTreeDecimalField   62% 8 3 0   25% 4 1   50%
src/backend/InvenTree/InvenTree/serializers.py CustomStatusSerializerMixin   36% 11 7 0   33% 6 2   35%
src/backend/InvenTree/InvenTree/serializers.py NotesFieldMixin   100% 7 0 0   83% 6 1   92%
src/backend/InvenTree/InvenTree/serializers.py ContentTypeField   84% 37 6 0   78% 18 4   82%
src/backend/InvenTree/InvenTree/serializers.py (no class)   100% 100 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/setting/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/setting/db_backend.py (no class)   59% 74 30 0   30% 44 11   48%
src/backend/InvenTree/InvenTree/setting/ldap.py (no class)   8% 26 24 0   0% 10 0   6%
src/backend/InvenTree/InvenTree/setting/locales.py (no class)   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/setting/markdown.py (no class)   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/setting/spectacular.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/setting/storages.py StorageBackends   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/setting/storages.py (no class)   67% 24 8 0   50% 6 3   63%
src/backend/InvenTree/InvenTree/setting/tracing.py (no class)   65% 17 6 0   33% 6 2   57%
src/backend/InvenTree/InvenTree/setting/worker.py (no class)   82% 22 4 0   50% 12 6   71%
src/backend/InvenTree/InvenTree/settings.py (no class)   75% 384 95 0   41% 128 44   67%
src/backend/InvenTree/InvenTree/sso.py (no class)   22% 65 51 0   0% 28 0   15%
src/backend/InvenTree/InvenTree/status.py (no class)   88% 40 5 0   50% 18 9   76%
src/backend/InvenTree/InvenTree/status_codes.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/tasks.py ScheduledTask   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/tasks.py TaskRegister   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/tasks.py (no class)   42% 456 263 0   29% 120 15   40%
src/backend/InvenTree/InvenTree/template.py InvenTreeTemplateLoader   83% 6 1 0   50% 2 1   75%
src/backend/InvenTree/InvenTree/template.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/templatetags/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/templatetags/inventree_extras.py (no class)   54% 92 42 0   10% 20 2   46%
src/backend/InvenTree/InvenTree/test_helpers/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/test_helpers/sample_tasks.py (no class)   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/InvenTree/tracing.py (no class)   21% 104 82 0   0% 38 0   15%
src/backend/InvenTree/InvenTree/unit_test.py UserMixin   0% 44 44 0   0% 34 0   0%
src/backend/InvenTree/InvenTree/unit_test.py PluginMixin   0% 5 5 0   0% 2 0   0%
src/backend/InvenTree/InvenTree/unit_test.py ExchangeRateMixin   0% 7 7 0   0% 2 0   0%
src/backend/InvenTree/InvenTree/unit_test.py TestQueryMixin   0% 15 15 0   0% 10 0   0%
src/backend/InvenTree/InvenTree/unit_test.py PluginRegistryMixin   0% 13 13 0   0% 4 0   0%
src/backend/InvenTree/InvenTree/unit_test.py InvenTreeTestCase   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/unit_test.py InvenTreeAPITestCase   0% 133 133 0   0% 60 0   0%
src/backend/InvenTree/InvenTree/unit_test.py AdminTestCase   0% 10 10 0   0% 2 0   0%
src/backend/InvenTree/InvenTree/unit_test.py InvenTreeAPIPerformanceTestCase   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/InvenTree/unit_test.py (no class)   54% 162 75 0   0% 50 0   41%
src/backend/InvenTree/InvenTree/urls.py (no class)   92% 51 4 0   50% 10 5   85%
src/backend/InvenTree/InvenTree/validators.py AllowedURLValidator   0% 8 8 0   0% 6 0   0%
src/backend/InvenTree/InvenTree/validators.py (no class)   72% 36 10 0   38% 8 3   66%
src/backend/InvenTree/InvenTree/version.py (no class)   76% 153 37 0   47% 34 12   71%
src/backend/InvenTree/InvenTree/views.py (no class)   40% 5 3 0   0% 2 0   29%
src/backend/InvenTree/InvenTree/wsgi.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/admin.py BuildAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/admin.py BuildItemAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/admin.py BuildLineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/admin.py (no class)   100% 17 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildFilter   45% 42 23 0   42% 12 1   44%
src/backend/InvenTree/build/api.py BuildFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildListOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildList   57% 7 3 0   100% 0 0   57%
src/backend/InvenTree/build/api.py BuildDetail   25% 4 3 0   0% 2 0   17%
src/backend/InvenTree/build/api.py BuildUnallocate   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildLineFilter   75% 20 5 0   60% 10 2   70%
src/backend/InvenTree/build/api.py BuildLineFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildLineMixin   83% 6 1 0   100% 2 0   88%
src/backend/InvenTree/build/api.py BuildLineOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildLineList   75% 8 2 0   100% 2 0   80%
src/backend/InvenTree/build/api.py BuildLineDetail   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildOrderContextMixin   100% 12 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildOutputCreate   33% 6 4 0   100% 0 0   33%
src/backend/InvenTree/build/api.py BuildOutputScrap   50% 12 6 0   100% 0 0   50%
src/backend/InvenTree/build/api.py BuildOutputComplete   30% 10 7 0   100% 0 0   30%
src/backend/InvenTree/build/api.py BuildOutputDelete   50% 12 6 0   100% 0 0   50%
src/backend/InvenTree/build/api.py BuildFinish   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildAutoAllocate   30% 10 7 0   100% 0 0   30%
src/backend/InvenTree/build/api.py BuildAllocate   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildConsume   25% 12 9 0   100% 0 0   25%
src/backend/InvenTree/build/api.py BuildIssue   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildHold   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildCancel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildItemMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildItemDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildItemFilter   0% 10 10 0   0% 4 0   0%
src/backend/InvenTree/build/api.py BuildItemFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildItemOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py BuildItemList   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/build/api.py (no class)   100% 222 0 0   100% 0 0   100%
src/backend/InvenTree/build/apps.py BuildConfig   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/apps.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/build/events.py BuildEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/events.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/build/filters.py (no class)   67% 6 2 0   100% 0 0   67%
src/backend/InvenTree/build/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0001_initial.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0002_auto_20190520_2204.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0002_auto_20190520_2204.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0003_auto_20190525_2355.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0003_auto_20190525_2355.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0004_auto_20190525_2356.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0004_auto_20190525_2356.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0005_auto_20190604_2217.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0005_auto_20190604_2217.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0006_auto_20190913_1407.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0006_auto_20190913_1407.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0007_auto_20191118_2321.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0007_auto_20191118_2321.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0008_auto_20200201_1247.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0008_auto_20200201_1247.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0009_auto_20200210_1032.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0009_auto_20200210_1032.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0010_auto_20200318_1027.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0010_auto_20200318_1027.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0011_auto_20200406_0123.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0011_auto_20200406_0123.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0012_build_sales_order.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0012_build_sales_order.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0013_auto_20200425_0507.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0013_auto_20200425_0507.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0014_auto_20200425_1243.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0014_auto_20200425_1243.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0015_auto_20200425_1350.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0015_auto_20200425_1350.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0016_auto_20200426_0551.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0016_auto_20200426_0551.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0017_auto_20200426_0612.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0017_auto_20200426_0612.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0018_build_reference.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0018_build_reference.py (no class)   71% 14 4 0   50% 4 2   67%
src/backend/InvenTree/build/migrations/0019_auto_20201019_1302.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0019_auto_20201019_1302.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0020_auto_20201019_1325.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0020_auto_20201019_1325.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0021_auto_20201020_0908_squashed_0026_auto_20201023_1228.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0022_buildorderattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0022_buildorderattachment.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0023_auto_20201110_0911.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0023_auto_20201110_0911.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0024_auto_20201201_1023.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0024_auto_20201201_1023.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0025_build_target_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0025_build_target_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0026_auto_20210216_1539.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0026_auto_20210216_1539.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0027_auto_20210404_2016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0027_auto_20210404_2016.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0028_builditem_bom_item.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0028_builditem_bom_item.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0029_auto_20210601_1525.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0029_auto_20210601_1525.py (no class)   28% 25 18 0   0% 6 0   23%
src/backend/InvenTree/build/migrations/0030_alter_build_reference.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0030_alter_build_reference.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0031_build_reference_int.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0031_build_reference_int.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0032_auto_20211014_0632.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0032_auto_20211014_0632.py (no class)   45% 20 11 0   17% 6 1   38%
src/backend/InvenTree/build/migrations/0033_auto_20211128_0151.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0033_auto_20211128_0151.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0034_alter_build_reference_int.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0034_alter_build_reference_int.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0035_alter_build_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0035_alter_build_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0036_auto_20220707_1101.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0036_auto_20220707_1101.py (no class)   73% 26 7 0   33% 6 2   66%
src/backend/InvenTree/build/migrations/0037_build_priority.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0037_build_priority.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0038_alter_build_responsible.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0038_alter_build_responsible.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0039_auto_20230317_0816.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0039_auto_20230317_0816.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0040_auto_20230404_1310.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0040_auto_20230404_1310.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0041_alter_build_title.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0041_alter_build_title.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0042_alter_build_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0042_alter_build_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0043_buildline.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0043_buildline.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0044_auto_20230528_1410.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0044_auto_20230528_1410.py (no class)   47% 34 18 0   21% 14 3   40%
src/backend/InvenTree/build/migrations/0045_builditem_build_line.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0045_builditem_build_line.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0046_auto_20230606_1033.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0046_auto_20230606_1033.py (no class)   44% 32 18 0   17% 12 2   36%
src/backend/InvenTree/build/migrations/0047_auto_20230606_1058.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0047_auto_20230606_1058.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0048_build_project_code.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0048_build_project_code.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0049_alter_builditem_build_line.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0049_alter_builditem_build_line.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0050_auto_20240508_0138.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0050_auto_20240508_0138.py (no class)   80% 10 2 0   50% 2 1   75%
src/backend/InvenTree/build/migrations/0051_delete_buildorderattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0051_delete_buildorderattachment.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0052_build_status_custom_key_alter_build_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0052_build_status_custom_key_alter_build_status.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0053_alter_build_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0053_alter_build_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0054_build_start_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0054_build_start_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0055_auto_20250221_1230.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0055_auto_20250221_1230.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0056_alter_build_link.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0056_alter_build_link.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0057_build_external.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0057_build_external.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0058_buildline_consumed.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0058_buildline_consumed.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0059_build_tags.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/0059_build_tags.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/build/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py BuildReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py Build   1% 420 414 0   1% 214 1   1%
src/backend/InvenTree/build/models.py Build.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py Build.MPTTMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py Build.BuildItemTypes   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py BuildLineReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py BuildLine   6% 16 15 0   0% 4 0   5%
src/backend/InvenTree/build/models.py BuildLine.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py BuildItem   1% 82 81 0   0% 42 0   1%
src/backend/InvenTree/build/models.py BuildItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/models.py (no class)   97% 221 7 0   0% 6 0   94%
src/backend/InvenTree/build/serializers.py BuildSerializer   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildOutputSerializer   0% 16 16 0   0% 14 0   0%
src/backend/InvenTree/build/serializers.py BuildOutputSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildOutputQuantitySerializer   0% 9 9 0   0% 6 0   0%
src/backend/InvenTree/build/serializers.py BuildOutputQuantitySerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildOutputCreateSerializer   11% 35 31 0   7% 14 1   10%
src/backend/InvenTree/build/serializers.py BuildOutputCreateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildOutputDeleteSerializer   0% 5 5 0   0% 2 0   0%
src/backend/InvenTree/build/serializers.py BuildOutputDeleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildOutputScrapSerializer   0% 5 5 0   0% 2 0   0%
src/backend/InvenTree/build/serializers.py BuildOutputScrapSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildOutputCompleteSerializer   0% 16 16 0   0% 12 0   0%
src/backend/InvenTree/build/serializers.py BuildOutputCompleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildIssueSerializer   50% 2 1 0   100% 0 0   50%
src/backend/InvenTree/build/serializers.py BuildIssueSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildHoldSerializer   50% 2 1 0   100% 0 0   50%
src/backend/InvenTree/build/serializers.py BuildHoldSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildCancelSerializer   17% 6 5 0   100% 0 0   17%
src/backend/InvenTree/build/serializers.py BuildCancelSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py OverallocationChoice   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildCompleteSerializer   8% 26 24 0   0% 12 0   5%
src/backend/InvenTree/build/serializers.py BuildCompleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildUnallocationSerializer   14% 7 6 0   0% 2 0   11%
src/backend/InvenTree/build/serializers.py BuildUnallocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildAllocationItemSerializer   12% 26 23 0   14% 14 0   12%
src/backend/InvenTree/build/serializers.py BuildAllocationItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildAllocationSerializer   17% 23 19 0   12% 8 1   16%
src/backend/InvenTree/build/serializers.py BuildAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildAutoAllocationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildAutoAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildItemSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildLineSerializer   88% 24 3 0   50% 4 2   82%
src/backend/InvenTree/build/serializers.py BuildLineSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildConsumeAllocationSerializer   0% 9 9 0   0% 4 0   0%
src/backend/InvenTree/build/serializers.py BuildConsumeAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildConsumeLineItemSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildConsumeLineItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py BuildConsumeSerializer   0% 25 25 0   0% 14 0   0%
src/backend/InvenTree/build/serializers.py BuildConsumeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/serializers.py (no class)   100% 236 0 0   100% 0 0   100%
src/backend/InvenTree/build/status_codes.py BuildStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/status_codes.py BuildStatusGroups   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/build/status_codes.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/build/tasks.py (no class)   22% 192 149 0   0% 66 0   17%
src/backend/InvenTree/build/validators.py (no class)   56% 9 4 0   100% 0 0   56%
src/backend/InvenTree/common/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py ParameterTemplateAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py ParameterAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py SelectionListEntryInlineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py SelectionListAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py AttachmentAdmin   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/common/admin.py DataOutputAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/common/admin.py BarcodeScanResultAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/common/admin.py ProjectCodeAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py SettingsAdmin   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/common/admin.py UserSettingsAdmin   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/common/admin.py WebhookAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/admin.py NotificationEntryAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/common/admin.py NotificationMessageAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/common/admin.py NewsFeedEntryAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/common/admin.py ReadOnlyAdmin   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/common/admin.py (no class)   100% 80 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py CsrfExemptMixin   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py WebhookView   16% 32 27 0   0% 8 0   12%
src/backend/InvenTree/common/api.py CurrencyViewSet   74% 19 5 0   75% 4 1   74%
src/backend/InvenTree/common/api.py SettingsList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py GlobalSettingsList   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py GlobalSettingsDetail   100% 4 0 0   100% 2 0   100%
src/backend/InvenTree/common/api.py UserSettingsList   79% 14 3 0   50% 2 1   75%
src/backend/InvenTree/common/api.py UserSettingsDetail   100% 4 0 0   100% 2 0   100%
src/backend/InvenTree/common/api.py NotificationMessageViewSet   61% 18 7 0   50% 2 1   60%
src/backend/InvenTree/common/api.py NewsFeedViewSet   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ConfigViewSet   100% 5 0 0   100% 2 0   100%
src/backend/InvenTree/common/api.py NotesImageList   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/common/api.py ProjectCodeList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ProjectCodeDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py TagFilter   100% 4 0 0   100% 2 0   100%
src/backend/InvenTree/common/api.py TagFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py TagMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py TagList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py TagDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py CustomUnitViewset   88% 8 1 0   50% 2 1   80%
src/backend/InvenTree/common/api.py ErrorMessageViewSet   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py BackgroundTaskDetail   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py BackgroundTaskOverview   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py PendingTaskList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ScheduledTaskList   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py FailedTaskList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py FlagList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py FlagDetail   80% 5 1 0   50% 2 1   71%
src/backend/InvenTree/common/api.py ContentTypeList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ContentTypeDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ContentTypeModelDetail   89% 9 1 0   50% 2 1   82%
src/backend/InvenTree/common/api.py AttachmentFilter   100% 9 0 0   100% 6 0   100%
src/backend/InvenTree/common/api.py AttachmentFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py AttachmentMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py AttachmentList   12% 8 7 0   0% 6 0   7%
src/backend/InvenTree/common/api.py AttachmentDetail   12% 16 14 0   0% 6 0   9%
src/backend/InvenTree/common/api.py ParameterTemplateFilter   23% 62 48 0   27% 22 2   24%
src/backend/InvenTree/common/api.py ParameterTemplateFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterTemplateMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterTemplateList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterTemplateDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterFilter   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ParameterDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py IconList   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py SelectionListMixin   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py SelectionListList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py SelectionListDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py EntryMixin   57% 7 3 0   0% 2 0   44%
src/backend/InvenTree/common/api.py SelectionEntryList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py SelectionEntryDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py DataOutputViewSet   62% 8 3 0   50% 2 1   60%
src/backend/InvenTree/common/api.py EmailViewSet   86% 7 1 0   50% 2 1   78%
src/backend/InvenTree/common/api.py HealthCheckStatusSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py HealthCheckView   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ObservabilityEndSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/api.py ObservabilityEnd   18% 11 9 0   50% 2 1   23%
src/backend/InvenTree/common/api.py (no class)   100% 372 0 0   100% 0 0   100%
src/backend/InvenTree/common/apps.py CommonConfig   50% 12 6 0   33% 6 2   44%
src/backend/InvenTree/common/apps.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/common/currency.py (no class)   50% 116 58 0   28% 54 9   43%
src/backend/InvenTree/common/filters.py TagsFilter   100% 9 0 0   100% 6 0   100%
src/backend/InvenTree/common/filters.py (no class)   56% 118 52 0   41% 32 5   53%
src/backend/InvenTree/common/icons.py Icon   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/icons.py IconPack   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/icons.py (no class)   66% 44 15 0   30% 10 1   59%
src/backend/InvenTree/common/migrations/0001_initial.py CreateModelOrSkip   50% 8 4 0   100% 0 0   50%
src/backend/InvenTree/common/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0001_initial.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0002_auto_20190902_2304.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0002_auto_20190902_2304.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0003_auto_20190902_2310.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0003_auto_20190902_2310.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0004_inventreesetting.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0004_inventreesetting.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0005_auto_20190915_1256.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0005_auto_20190915_1256.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0006_auto_20200203_0951.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0006_auto_20200203_0951.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0007_colortheme.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0007_colortheme.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0008_remove_inventreesetting_description.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0008_remove_inventreesetting_description.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0009_delete_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0009_delete_currency.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0010_migrate_currency_setting.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0010_migrate_currency_setting.py (no class)   79% 14 3 0   25% 4 1   67%
src/backend/InvenTree/common/migrations/0011_auto_20210722_2114.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0011_auto_20210722_2114.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0012_notificationentry.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0012_notificationentry.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0013_webhookendpoint_webhookmessage.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0013_webhookendpoint_webhookmessage.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0014_notificationmessage.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0014_notificationmessage.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0015_newsfeedentry.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0015_newsfeedentry.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0016_alter_notificationentry_updated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0016_alter_notificationentry_updated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0017_notesimage.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0017_notesimage.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0018_projectcode.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0018_projectcode.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0019_projectcode_metadata.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0019_projectcode_metadata.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0020_customunit.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0020_customunit.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0021_auto_20230805_1748.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0021_auto_20230805_1748.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0022_projectcode_responsible.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0022_projectcode_responsible.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0023_auto_20240602_1332.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0023_auto_20240602_1332.py (no class)   36% 36 23 0   6% 18 1   26%
src/backend/InvenTree/common/migrations/0024_notesimage_model_id_notesimage_model_type.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0024_notesimage_model_id_notesimage_model_type.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0025_attachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0025_attachment.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0026_auto_20240608_1238.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0026_auto_20240608_1238.py (no class)   37% 43 27 0   19% 16 1   32%
src/backend/InvenTree/common/migrations/0027_alter_customunit_symbol.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0027_alter_customunit_symbol.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0028_colortheme_user_obj.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0028_colortheme_user_obj.py (no class)   67% 15 5 0   50% 2 1   65%
src/backend/InvenTree/common/migrations/0029_inventreecustomuserstatemodel.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0029_inventreecustomuserstatemodel.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0030_barcodescanresult.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0030_barcodescanresult.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0031_auto_20241026_0024.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0031_auto_20241026_0024.py (no class)   71% 17 5 0   33% 6 2   61%
src/backend/InvenTree/common/migrations/0032_selectionlist_selectionlistentry_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0032_selectionlist_selectionlistentry_and_more.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0033_delete_colortheme.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0033_delete_colortheme.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0034_alter_inventreecustomuserstatemodel_unique_together_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0034_alter_inventreecustomuserstatemodel_unique_together_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0035_auto_20250221_1513.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0035_auto_20250221_1513.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0036_alter_attachment_link.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0036_alter_attachment_link.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0037_dataoutput.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0037_dataoutput.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0038_alter_attachment_model_type.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0038_alter_attachment_model_type.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0039_emailthread_emailmessage.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0039_emailthread_emailmessage.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0040_parametertemplate_parameter.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0040_parametertemplate_parameter.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0041_auto_20251203_1244.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0041_auto_20251203_1244.py (no class)   50% 52 26 0   25% 12 3   45%
src/backend/InvenTree/common/migrations/0042_attachment_is_image_attachment_thumbnail.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0042_attachment_is_image_attachment_thumbnail.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0043_auto_20260518_1206.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0043_auto_20260518_1206.py (no class)   68% 25 8 0   12% 8 1   55%
src/backend/InvenTree/common/migrations/0044_notificationmessage_charfield_pk.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/0044_notificationmessage_charfield_pk.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/common/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py RenderMeta   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/common/models.py RenderChoices   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py MetaMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py MetaMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py UpdatedUserMixin   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/common/models.py UpdatedUserMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py ProjectCode   50% 2 1 0   100% 0 0   50%
src/backend/InvenTree/common/models.py ProjectCode.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py BaseInvenTreeSetting   66% 369 124 0   63% 176 33   65%
src/backend/InvenTree/common/models.py BaseInvenTreeSetting.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py InvenTreeSetting   79% 19 4 0   70% 10 3   76%
src/backend/InvenTree/common/models.py InvenTreeSetting.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py InvenTreeUserSetting   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/common/models.py InvenTreeUserSetting.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py PriceBreak   0% 6 6 0   100% 0 0   0%
src/backend/InvenTree/common/models.py PriceBreak.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py VerificationMethod   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py WebhookEndpoint   0% 21 21 0   0% 14 0   0%
src/backend/InvenTree/common/models.py WebhookMessage   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py NotificationEntry   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py NotificationEntry.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py NotificationMessage   75% 4 1 0   100% 0 0   75%
src/backend/InvenTree/common/models.py NewsFeedEntry   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py NotesImage   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py CustomUnit   59% 22 9 0   50% 6 1   57%
src/backend/InvenTree/common/models.py CustomUnit.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py Attachment   3% 116 112 0   2% 54 1   3%
src/backend/InvenTree/common/models.py Attachment.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py Attachment.ModelChoices   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py InvenTreeCustomUserStateModel   0% 28 28 0   0% 22 0   0%
src/backend/InvenTree/common/models.py InvenTreeCustomUserStateModel.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py SelectionList   8% 12 11 0   0% 6 0   6%
src/backend/InvenTree/common/models.py SelectionList.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py SelectionListEntry   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/common/models.py SelectionListEntry.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py ParameterTemplate   28% 36 26 0   17% 24 4   23%
src/backend/InvenTree/common/models.py ParameterTemplate.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py ParameterTemplate.ModelChoices   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py Parameter   2% 66 65 0   0% 28 0   1%
src/backend/InvenTree/common/models.py Parameter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py Parameter.ModelChoices   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py BarcodeScanResult   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py BarcodeScanResult.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py DataOutput   0% 12 12 0   0% 4 0   0%
src/backend/InvenTree/common/models.py DataOutput.DataOutputTypes   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py Priority   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py NoDeleteQuerySet   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/common/models.py NoDeleteManager   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py EmailMessage   0% 11 11 0   0% 6 0   0%
src/backend/InvenTree/common/models.py EmailMessage.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py EmailMessage.EmailStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py EmailMessage.EmailDirection   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py EmailMessage.DeliveryOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py EmailThread   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py EmailThread.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/models.py (no class)   89% 599 68 0   13% 30 2   85%
src/backend/InvenTree/common/notifications.py NotificationBody   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/notifications.py InvenTreeNotificationBodies   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/notifications.py (no class)   79% 94 20 0   54% 54 11   70%
src/backend/InvenTree/common/serializers.py SettingsValueField   62% 16 6 0   58% 12 3   61%
src/backend/InvenTree/common/serializers.py SettingsSerializer   40% 15 9 0   40% 10 0   40%
src/backend/InvenTree/common/serializers.py GlobalSettingsSerializer   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py GlobalSettingsSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py UserSettingsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py UserSettingsSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py CurrencyExchangeSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py GenericReferencedSettingSerializer   67% 9 3 0   0% 2 0   55%
src/backend/InvenTree/common/serializers.py GenericReferencedSettingSerializer.__init__.CustomMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py NotificationMessageSerializer   77% 13 3 0   50% 6 3   68%
src/backend/InvenTree/common/serializers.py NotificationMessageSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py NewsFeedEntrySerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py NewsFeedEntrySerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ConfigSerializer   100% 8 0 0   100% 6 0   100%
src/backend/InvenTree/common/serializers.py NotesImageSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py NotesImageSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ProjectCodeSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ProjectCodeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py TagSerializer   100% 5 0 0   100% 2 0   100%
src/backend/InvenTree/common/serializers.py TagSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py CustomStateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py CustomStateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py FlagSerializer   100% 7 0 0   100% 4 0   100%
src/backend/InvenTree/common/serializers.py ContentTypeSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ContentTypeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py CustomUnitSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py CustomUnitSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py AllUnitListResponseSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py AllUnitListResponseSerializer.Unit   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ErrorMessageSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ErrorMessageSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py TaskDetailSerializer   100% 13 0 0   75% 4 1   94%
src/backend/InvenTree/common/serializers.py TaskOverviewSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py PendingTaskSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py PendingTaskSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ScheduledTaskSerializer   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ScheduledTaskSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py FailedTaskSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py FailedTaskSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py AttachmentSerializer   78% 18 4 0   50% 10 5   68%
src/backend/InvenTree/common/serializers.py AttachmentSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ParameterTemplateSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ParameterTemplateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py ParameterSerializer   0% 18 18 0   0% 8 0   0%
src/backend/InvenTree/common/serializers.py ParameterSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py IconSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py IconPackageSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py SelectionEntrySerializer   80% 5 1 0   50% 2 1   71%
src/backend/InvenTree/common/serializers.py SelectionEntrySerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py SelectionListSerializer   80% 5 1 0   50% 2 1   71%
src/backend/InvenTree/common/serializers.py SelectionListSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py DataOutputSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py DataOutputSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py EmailMessageSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py EmailMessageSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py TestEmailSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py TestEmailSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/serializers.py (no class)   100% 260 0 0   100% 0 0   100%
src/backend/InvenTree/common/setting/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/setting/system.py BaseURLValidator   25% 8 6 0   0% 4 0   17%
src/backend/InvenTree/common/setting/system.py SystemSetId   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/setting/system.py (no class)   50% 84 42 0   8% 12 1   45%
src/backend/InvenTree/common/setting/type.py SettingsKeyType   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/setting/type.py InvenTreeSettingsKeyType   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/setting/type.py (no class)   70% 10 3 0   50% 2 1   67%
src/backend/InvenTree/common/setting/user.py (no class)   100% 11 0 0   50% 2 1   92%
src/backend/InvenTree/common/settings.py GlobalWarningCode   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/common/settings.py (no class)   54% 76 35 0   46% 24 5   52%
src/backend/InvenTree/common/tasks.py (no class)   26% 125 92 0   0% 36 0   20%
src/backend/InvenTree/common/validators.py (no class)   51% 93 46 0   29% 34 6   45%
src/backend/InvenTree/company/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py CompanyAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py SupplierPriceBreakInline   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py SupplierPartAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py ManufacturerPartAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py SupplierPriceBreakAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py AddressAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py ContactAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/admin.py (no class)   100% 35 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py CompanyFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py CompanyFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py CompanyMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py CompanyList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py CompanyDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ContactList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ContactDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py AddressList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py AddressDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ManufacturerPartFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ManufacturerPartFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ManufacturerOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ManufacturerPartMixin   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ManufacturerPartList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py ManufacturerPartDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPartFilter   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/company/api.py SupplierPartFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPartOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPartMixin   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPartList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPartDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPriceBreakFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPriceBreakFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPriceBreakMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPriceBreakOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPriceBreakList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py SupplierPriceBreakDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/api.py (no class)   100% 125 0 0   100% 0 0   100%
src/backend/InvenTree/company/apps.py CompanyConfig   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/apps.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/filters.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0001_initial.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0002_auto_20190520_2204.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0002_auto_20190520_2204.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0003_remove_supplierpart_minimum.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0003_remove_supplierpart_minimum.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0004_auto_20190525_2354.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0004_auto_20190525_2354.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0005_auto_20190525_2356.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0005_auto_20190525_2356.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0006_supplierpricebreak_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0006_supplierpricebreak_currency.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0007_remove_supplierpart_lead_time.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0007_remove_supplierpart_lead_time.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0008_auto_20190913_1407.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0008_auto_20190913_1407.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0009_auto_20191118_2323.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0009_auto_20191118_2323.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0010_auto_20200201_1231.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0010_auto_20200201_1231.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0011_auto_20200318_1114.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0011_auto_20200318_1114.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0012_auto_20200318_1114.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0012_auto_20200318_1114.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0013_auto_20200406_0131.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0013_auto_20200406_0131.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0014_auto_20200407_0116.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0014_auto_20200407_0116.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0015_company_is_manufacturer.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0015_company_is_manufacturer.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0016_auto_20200412_2330.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0016_auto_20200412_2330.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0017_auto_20200413_0320.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0017_auto_20200413_0320.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0018_supplierpart_manufacturer.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0018_supplierpart_manufacturer.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py (no class)   11% 175 155 0   2% 56 1   9%
src/backend/InvenTree/company/migrations/0020_auto_20200413_0839.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0020_auto_20200413_0839.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0021_remove_supplierpart_manufacturer_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0021_remove_supplierpart_manufacturer_name.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0022_auto_20200613_1045.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0022_auto_20200613_1045.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0023_auto_20200808_0715.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0023_auto_20200808_0715.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0024_unique_name_email_constraint.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0024_unique_name_email_constraint.py (no class)   53% 17 8 0   12% 8 1   40%
src/backend/InvenTree/company/migrations/0025_auto_20201110_1001.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0025_auto_20201110_1001.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0026_auto_20201110_1011.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0026_auto_20201110_1011.py (no class)   37% 65 41 0   15% 20 3   32%
src/backend/InvenTree/company/migrations/0027_remove_supplierpricebreak_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0027_remove_supplierpricebreak_currency.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0028_remove_supplierpricebreak_cost.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0028_remove_supplierpricebreak_cost.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0029_company_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0029_company_currency.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0030_auto_20201112_1112.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0030_auto_20201112_1112.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0031_auto_20210103_2215.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0031_auto_20210103_2215.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0032_auto_20210403_1837.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0032_auto_20210403_1837.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0033_auto_20210410_1528.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0033_auto_20210410_1528.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0034_manufacturerpart.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0034_manufacturerpart.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0035_supplierpart_update_1.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0035_supplierpart_update_1.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0036_supplierpart_update_2.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0036_supplierpart_update_2.py (no class)   19% 72 58 0   5% 22 1   16%
src/backend/InvenTree/company/migrations/0037_supplierpart_update_3.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0037_supplierpart_update_3.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0038_manufacturerpartparameter.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0038_manufacturerpartparameter.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0039_auto_20210701_0509.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0039_auto_20210701_0509.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0040_alter_company_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0040_alter_company_currency.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0041_alter_company_options.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0041_alter_company_options.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0042_supplierpricebreak_updated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0042_supplierpricebreak_updated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0043_manufacturerpartattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0043_manufacturerpartattachment.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0044_auto_20220607_2204.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0044_auto_20220607_2204.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0045_alter_company_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0045_alter_company_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0046_alter_company_image.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0046_alter_company_image.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0047_supplierpart_pack_size.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0047_supplierpart_pack_size.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0048_auto_20220913_0312.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0048_auto_20220913_0312.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0049_company_metadata.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0049_company_metadata.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0050_alter_company_website.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0050_alter_company_website.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0051_alter_supplierpricebreak_price.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0051_alter_supplierpricebreak_price.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0052_alter_supplierpricebreak_updated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0052_alter_supplierpricebreak_updated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0053_supplierpart_updated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0053_supplierpart_updated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0054_companyattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0054_companyattachment.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0055_auto_20230317_0816.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0055_auto_20230317_0816.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0056_alter_company_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0056_alter_company_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0057_auto_20230427_2033.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0057_auto_20230427_2033.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0058_auto_20230515_0004.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0058_auto_20230515_0004.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0059_supplierpart_pack_units.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0059_supplierpart_pack_units.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0060_auto_20230519_0344.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0060_auto_20230519_0344.py (no class)   48% 23 12 0   25% 8 2   42%
src/backend/InvenTree/company/migrations/0061_remove_supplierpart_pack_size.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0061_remove_supplierpart_pack_size.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0062_contact_metadata.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0062_contact_metadata.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0063_auto_20230502_1956.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0063_auto_20230502_1956.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0064_move_address_field_to_address_model.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0064_move_address_field_to_address_model.py (no class)   45% 20 11 0   17% 6 1   38%
src/backend/InvenTree/company/migrations/0065_remove_company_address.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0065_remove_company_address.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0066_auto_20230616_2059.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0066_auto_20230616_2059.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0067_alter_supplierpricebreak_price_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0067_alter_supplierpricebreak_price_currency.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0068_auto_20231120_1108.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0068_auto_20231120_1108.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0069_company_active.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0069_company_active.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0070_remove_manufacturerpartattachment_manufacturer_part_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0070_remove_manufacturerpartattachment_manufacturer_part_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0071_manufacturerpart_notes_supplierpart_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0071_manufacturerpart_notes_supplierpart_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0072_auto_20250221_1236.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0072_auto_20250221_1236.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0073_alter_address_link_alter_company_link_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0073_alter_address_link_alter_company_link_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0074_alter_manufacturerpart_link.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0074_alter_manufacturerpart_link.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0075_company_tax_id.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0075_company_tax_id.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0076_alter_company_image.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0076_alter_company_image.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0077_delete_manufacturerpartparameter.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0077_delete_manufacturerpartparameter.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0078_supplierpart_primary.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0078_supplierpart_primary.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0079_auto_20260212_1054.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0079_auto_20260212_1054.py (no class)   53% 19 9 0   17% 6 1   44%
src/backend/InvenTree/company/migrations/0080_company_tags.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/0080_company_tags.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/company/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py CompanyReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py Company   18% 17 14 0   25% 4 1   19%
src/backend/InvenTree/company/models.py Company.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py Contact   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py Contact.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py Address   7% 14 13 0   0% 8 0   5%
src/backend/InvenTree/company/models.py Address.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py ManufacturerPart   6% 17 16 0   0% 4 0   5%
src/backend/InvenTree/company/models.py ManufacturerPart.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py SupplierPart   1% 78 77 0   0% 36 0   1%
src/backend/InvenTree/company/models.py SupplierPart.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py SupplierPriceBreak   50% 2 1 0   100% 0 0   50%
src/backend/InvenTree/company/models.py SupplierPriceBreak.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/models.py (no class)   95% 186 10 0   0% 6 0   92%
src/backend/InvenTree/company/serializers.py CompanyBriefSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py CompanyBriefSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py AddressSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py AddressSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py AddressBriefSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py AddressBriefSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py CompanySerializer   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py CompanySerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py ContactSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py ContactSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py ManufacturerPartSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py ManufacturerPartSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py SupplierPriceBreakBriefSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py SupplierPriceBreakBriefSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py SupplierPartSerializer   43% 28 16 0   30% 10 1   39%
src/backend/InvenTree/company/serializers.py SupplierPartSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py SupplierPriceBreakSerializer   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/company/serializers.py SupplierPriceBreakSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/company/serializers.py (no class)   100% 110 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/apps.py DataExporterConfig   86% 7 1 0   100% 0 0   86%
src/backend/InvenTree/data_exporter/apps.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/mixins.py DataExportSerializerMixin   12% 58 51 0   9% 34 1   11%
src/backend/InvenTree/data_exporter/mixins.py DataExportViewMixin   10% 105 94 0   12% 34 4   11%
src/backend/InvenTree/data_exporter/mixins.py (no class)   100% 38 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/serializers.py DataExportOptionsSerializer   0% 24 24 0   0% 14 0   0%
src/backend/InvenTree/data_exporter/serializers.py DataExportOptionsSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/serializers.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/data_exporter/tasks.py (no class)   24% 25 19 0   0% 6 0   19%
src/backend/InvenTree/generic/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/enums.py StringEnum   50% 2 1 0   100% 0 0   50%
src/backend/InvenTree/generic/enums.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/generic/events.py BaseEventEnum   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/events.py (no class)   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/__init__.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/api.py StatusViewSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/api.py StatusView   68% 25 8 0   62% 16 4   66%
src/backend/InvenTree/generic/states/api.py AllStatusViews   61% 18 7 0   40% 10 2   54%
src/backend/InvenTree/generic/states/api.py CustomStateList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/api.py CustomStateDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/api.py (no class)   100% 46 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/custom.py (no class)   75% 12 3 0   100% 0 0   75%
src/backend/InvenTree/generic/states/fields.py CustomChoiceField   57% 28 12 0   25% 4 1   53%
src/backend/InvenTree/generic/states/fields.py ExtraCustomChoiceField   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/generic/states/fields.py InvenTreeCustomStatusModelField   92% 26 2 0   80% 10 2   89%
src/backend/InvenTree/generic/states/fields.py ExtraInvenTreeCustomStatusModelField   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/fields.py InvenTreeCustomStatusSerializerMixin   64% 56 20 0   50% 34 5   59%
src/backend/InvenTree/generic/states/fields.py (no class)   100% 36 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/serializers.py GenericStateValueSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/serializers.py GenericStateValueSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/serializers.py GenericStateClassSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/serializers.py GenericStateClassSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/serializers.py (no class)   100% 16 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/states.py BaseEnum   27% 15 11 0   38% 8 3   30%
src/backend/InvenTree/generic/states/states.py StatusCode   52% 81 39 0   47% 36 11   50%
src/backend/InvenTree/generic/states/states.py ColorEnum   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/states.py StatusCodeMixin   21% 39 31 0   12% 16 2   18%
src/backend/InvenTree/generic/states/states.py (no class)   100% 62 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/tags.py (no class)   50% 14 7 0   0% 2 0   44%
src/backend/InvenTree/generic/states/transition.py TransitionMethod   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/generic/states/transition.py StateTransitionMixin   25% 20 15 0   10% 10 1   20%
src/backend/InvenTree/generic/states/transition.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/generic/states/validators.py CustomStatusCodeValidator   83% 6 1 0   50% 4 2   70%
src/backend/InvenTree/generic/states/validators.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/generic/templatetags/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/generic/templatetags/generic.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/importer/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/admin.py DataImportColumnMapAdmin   0% 7 7 0   0% 4 0   0%
src/backend/InvenTree/importer/admin.py DataImportSessionAdmin   0% 8 8 0   0% 4 0   0%
src/backend/InvenTree/importer/admin.py DataImportRowAdmin   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/importer/admin.py (no class)   100% 20 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImporterPermissionMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImporterModelSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImporterModelList   100% 6 0 0   100% 2 0   100%
src/backend/InvenTree/importer/api.py DataImportSessionMixin   62% 8 3 0   50% 2 1   60%
src/backend/InvenTree/importer/api.py DataImportSessionList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImportSessionDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImportSessionAcceptFields   12% 8 7 0   0% 6 0   7%
src/backend/InvenTree/importer/api.py DataImportSessionAcceptRows   67% 12 4 0   25% 4 1   56%
src/backend/InvenTree/importer/api.py DataImportSessionChildMixin   62% 8 3 0   50% 2 1   60%
src/backend/InvenTree/importer/api.py DataImportColumnMappingList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImportColumnMappingDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImportRowList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py DataImportRowDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/api.py (no class)   100% 65 0 0   100% 0 0   100%
src/backend/InvenTree/importer/apps.py ImporterConfig   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/apps.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0001_initial.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0002_dataimportsession_field_overrides.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0002_dataimportsession_field_overrides.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0003_dataimportsession_field_filters.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0003_dataimportsession_field_filters.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0004_alter_dataimportsession_model_type.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0004_alter_dataimportsession_model_type.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0005_dataimportsession_update_records.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0005_dataimportsession_update_records.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0006_dataimportcolumnmap_lookup_field.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0006_dataimportcolumnmap_lookup_field.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0007_dataimportsession_completed_row_count_history_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/0007_dataimportsession_completed_row_count_history_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/importer/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/mixins.py DataImportSerializerMixin   16% 31 26 0   8% 24 2   13%
src/backend/InvenTree/importer/mixins.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/importer/models.py DataImportSession   0% 138 138 0   0% 66 0   0%
src/backend/InvenTree/importer/models.py DataImportSession.ModelChoices   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/models.py DataImportColumnMap   0% 40 40 0   0% 26 0   0%
src/backend/InvenTree/importer/models.py DataImportRow   0% 173 173 0   0% 86 0   0%
src/backend/InvenTree/importer/models.py (no class)   100% 101 0 0   100% 0 0   100%
src/backend/InvenTree/importer/operations.py (no class)   22% 45 35 0   0% 16 0   16%
src/backend/InvenTree/importer/registry.py DataImportSerializerRegister   56% 9 4 0   50% 6 3   53%
src/backend/InvenTree/importer/registry.py (no class)   100% 26 0 0   100% 4 0   100%
src/backend/InvenTree/importer/serializers.py DataImportColumnMapSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/serializers.py DataImportColumnMapSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/serializers.py DataImportSessionSerializer   55% 31 14 0   43% 14 6   51%
src/backend/InvenTree/importer/serializers.py DataImportSessionSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/serializers.py DataImportRowSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/serializers.py DataImportRowSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/serializers.py DataImportAcceptRowSerializer   16% 19 16 0   7% 14 1   12%
src/backend/InvenTree/importer/serializers.py DataImportAcceptRowSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/serializers.py (no class)   100% 43 0 0   100% 0 0   100%
src/backend/InvenTree/importer/status_codes.py DataImportStatusCode   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/importer/status_codes.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/importer/tasks.py (no class)   30% 27 19 0   0% 4 0   26%
src/backend/InvenTree/importer/validators.py (no class)   43% 30 17 0   14% 14 2   34%
src/backend/InvenTree/machine/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/machine/admin.py MachineSettingInline   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/machine/admin.py MachineConfigAdmin   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/machine/admin.py (no class)   100% 13 0 0   100% 0 0   100%
src/backend/InvenTree/machine/api.py MachineList   100% 3 0 0   100% 2 0   100%
src/backend/InvenTree/machine/api.py MachineDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/api.py MachineSettingList   14% 7 6 0   0% 2 0   11%
src/backend/InvenTree/machine/api.py MachineSettingDetail   50% 8 4 0   0% 2 0   40%
src/backend/InvenTree/machine/api.py MachineRestart   25% 4 3 0   100% 0 0   25%
src/backend/InvenTree/machine/api.py MachineTypesList   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/machine/api.py MachineDriverList   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/machine/api.py RegistryStatusView   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/machine/api.py (no class)   98% 56 1 0   50% 2 1   97%
src/backend/InvenTree/machine/apps.py MachineConfig   82% 11 2 0   75% 4 1   80%
src/backend/InvenTree/machine/apps.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/machine/machine_type.py MachineStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/machine_type.py MachineProperty   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/machine_type.py BaseDriver   0% 7 7 0   0% 2 0   0%
src/backend/InvenTree/machine/machine_type.py BaseMachineType   0% 93 93 0   0% 40 0   0%
src/backend/InvenTree/machine/machine_type.py (no class)   97% 63 2 0   50% 2 1   95%
src/backend/InvenTree/machine/machine_types/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/machine/machine_types/label_printer.py LabelPrinterBaseDriver   0% 18 18 0   0% 2 0   0%
src/backend/InvenTree/machine/machine_types/label_printer.py LabelPrinterBaseDriver.PrintingOptionsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/machine_types/label_printer.py LabelPrinterStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/machine_types/label_printer.py LabelPrinterMachine   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/machine/machine_types/label_printer.py (no class)   100% 51 0 0   100% 0 0   100%
src/backend/InvenTree/machine/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/migrations/0001_initial.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/machine/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/models.py MachineConfig   32% 28 19 0   17% 12 2   28%
src/backend/InvenTree/machine/models.py MachineSetting   24% 17 13 0   25% 12 1   24%
src/backend/InvenTree/machine/models.py MachineSetting.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/models.py MachineSetting.ConfigType   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/models.py (no class)   100% 50 0 0   100% 0 0   100%
src/backend/InvenTree/machine/registry.py MachineRegistry   47% 200 106 0   33% 86 10   43%
src/backend/InvenTree/machine/registry.py (no class)   90% 86 9 0   83% 12 2   89%
src/backend/InvenTree/machine/serializers.py MachinePropertySerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachinePropertySerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineConfigSerializer   82% 11 2 0   50% 4 2   73%
src/backend/InvenTree/machine/serializers.py MachineConfigSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineConfigCreateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineConfigCreateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineSettingSerializer   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py BaseMachineClassSerializer   83% 6 1 0   50% 2 1   75%
src/backend/InvenTree/machine/serializers.py BaseMachineClassSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineTypeSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineTypeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineDriverSerializer   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/machine/serializers.py MachineDriverSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineRegistryErrorSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineRegistryErrorSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineRegistryStatusSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineRegistryStatusSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineRestartSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py MachineRestartSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/machine/serializers.py (no class)   100% 77 0 0   100% 0 0   100%
src/backend/InvenTree/machine/tasks.py (no class)   67% 15 5 0   0% 4 0   53%
src/backend/InvenTree/manage.py (no class)   0% 15 15 0   0% 2 0   0%
src/backend/InvenTree/order/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py GeneralExtraLineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py GeneralExtraLineMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py PurchaseOrderLineItemInlineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py PurchaseOrderAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py SalesOrderLineItemInlineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py SalesOrderAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py PurchaseOrderLineItemAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py PurchaseOrderExtraLineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py SalesOrderLineItemAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py SalesOrderExtraLineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py SalesOrderShipmentAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py SalesOrderAllocationAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py ReturnOrderAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py ReturnOrderLineItemAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py ReturnOrdeerExtraLineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py TransferOrderLineItemInlineAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py TransferOrderAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/admin.py (no class)   100% 78 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py GeneralExtraLineListOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py GeneralExtraLineList   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py OrderCreateMixin   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py OrderFilter   93% 28 2 0   75% 8 2   89%
src/backend/InvenTree/order/api.py LineItemFilter   100% 4 0 0   100% 2 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderFilter   0% 5 5 0   100% 0 0   0%
src/backend/InvenTree/order/api.py PurchaseOrderFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderContextMixin   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderHold   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderCancel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderComplete   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderIssue   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderReceive   33% 6 4 0   100% 0 0   33%
src/backend/InvenTree/order/api.py PurchaseOrderLineItemFilter   31% 16 11 0   25% 8 2   29%
src/backend/InvenTree/order/api.py PurchaseOrderLineItemFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderLineItemOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderLineItemMixin   50% 6 3 0   0% 2 0   38%
src/backend/InvenTree/order/api.py PurchaseOrderLineItemList   11% 18 16 0   0% 8 0   8%
src/backend/InvenTree/order/api.py PurchaseOrderLineItemDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderExtraLineList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py PurchaseOrderExtraLineDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderFilter   0% 8 8 0   0% 2 0   0%
src/backend/InvenTree/order/api.py SalesOrderFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderLineItemFilter   35% 20 13 0   30% 10 1   33%
src/backend/InvenTree/order/api.py SalesOrderLineItemFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderLineItemMixin   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderLineItemOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderLineItemList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderLineItemDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderExtraLineList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderExtraLineDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderContextMixin   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderHold   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderCancel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderIssue   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderComplete   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderAllocateSerials   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderAllocate   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderAutoAllocate   23% 13 10 0   100% 0 0   23%
src/backend/InvenTree/order/api.py SalesOrderAllocationFilter   29% 14 10 0   33% 6 0   30%
src/backend/InvenTree/order/api.py SalesOrderAllocationFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderAllocationMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderAllocationOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderAllocationList   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/order/api.py SalesOrderAllocationDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderShipmentFilter   100% 15 0 0   100% 8 0   100%
src/backend/InvenTree/order/api.py SalesOrderShipmentFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderShipmentMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderShipmentList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderShipmentDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py SalesOrderShipmentComplete   50% 16 8 0   100% 0 0   50%
src/backend/InvenTree/order/api.py ReturnOrderFilter   0% 8 8 0   0% 2 0   0%
src/backend/InvenTree/order/api.py ReturnOrderFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderMixin   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderContextMixin   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderCancel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderHold   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderComplete   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderIssue   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderReceive   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderLineItemFilter   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/order/api.py ReturnOrderLineItemFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderLineItemMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderLineItemOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderLineItemList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderLineItemDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderExtraLineList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py ReturnOrderExtraLineDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderFilter   12% 8 7 0   0% 2 0   10%
src/backend/InvenTree/order/api.py TransferOrderFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderMixin   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderContextMixin   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderCancel   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderHold   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderComplete   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderIssue   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocateSerials   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocate   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocationFilter   36% 11 7 0   50% 4 0   40%
src/backend/InvenTree/order/api.py TransferOrderAllocationFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocationMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocationOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocationList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderAllocationDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderLineItemFilter   35% 20 13 0   30% 10 1   33%
src/backend/InvenTree/order/api.py TransferOrderLineItemFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderLineItemMixin   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderLineItemOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderLineItemList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py TransferOrderLineItemDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/api.py OrderCalendarExport   0% 62 62 0   0% 38 0   0%
src/backend/InvenTree/order/api.py (no class)   100% 518 0 0   100% 0 0   100%
src/backend/InvenTree/order/apps.py OrderConfig   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/apps.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/order/events.py PurchaseOrderEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/events.py SalesOrderEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/events.py ReturnOrderEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/events.py TransferOrderEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/events.py (no class)   100% 26 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0001_initial.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0002_auto_20190604_2224.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0002_auto_20190604_2224.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0003_auto_20190604_2226.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0003_auto_20190604_2226.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0004_purchaseorder_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0004_purchaseorder_status.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0005_purchaseorderlineitem_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0005_purchaseorderlineitem_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0006_auto_20190605_2056.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0006_auto_20190605_2056.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0007_auto_20190605_2138.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0007_auto_20190605_2138.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0008_auto_20190605_2140.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0008_auto_20190605_2140.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0009_auto_20190606_2133.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0009_auto_20190606_2133.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0010_purchaseorderlineitem_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0010_purchaseorderlineitem_notes.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0011_auto_20190615_1928.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0011_auto_20190615_1928.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0012_auto_20190617_1943.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0012_auto_20190617_1943.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0013_auto_20191118_2323.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0013_auto_20191118_2323.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0014_auto_20191118_2328.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0014_auto_20191118_2328.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0015_auto_20200201_2346.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0015_auto_20200201_2346.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0016_purchaseorderattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0016_purchaseorderattachment.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0017_auto_20200331_1000.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0017_auto_20200331_1000.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0018_auto_20200406_0151.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0018_auto_20200406_0151.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0019_purchaseorder_supplier_reference.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0019_purchaseorder_supplier_reference.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0020_auto_20200420_0940.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0020_auto_20200420_0940.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0021_auto_20200420_1010.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0021_auto_20200420_1010.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0022_salesorderlineitem_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0022_salesorderlineitem_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0023_auto_20200420_2309.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0023_auto_20200420_2309.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0024_salesorderallocation.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0024_salesorderallocation.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0025_auto_20200422_0222.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0025_auto_20200422_0222.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0026_auto_20200422_0224.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0026_auto_20200422_0224.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0027_auto_20200422_0236.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0027_auto_20200422_0236.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0028_auto_20200423_0956.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0029_auto_20200423_1042.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0029_auto_20200423_1042.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0030_auto_20200426_0551.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0030_auto_20200426_0551.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0031_auto_20200426_0612.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0031_auto_20200426_0612.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0032_auto_20200427_0044.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0032_auto_20200427_0044.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0033_auto_20200512_1033.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0033_auto_20200512_1033.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0034_auto_20200512_1054.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0034_auto_20200512_1054.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0035_auto_20200513_0016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0035_auto_20200513_0016.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0036_auto_20200831_0912.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0036_auto_20200831_0912.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0037_auto_20201110_0911.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0037_auto_20201110_0911.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0038_auto_20201112_1737.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0038_auto_20201112_1737.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0039_auto_20201112_2203.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0039_auto_20201112_2203.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0040_salesorder_target_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0040_salesorder_target_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0041_auto_20210114_1728.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0041_auto_20210114_1728.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0042_auto_20210310_1619.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0042_auto_20210310_1619.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0043_auto_20210330_0013.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0043_auto_20210330_0013.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0044_auto_20210404_2016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0044_auto_20210404_2016.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0045_auto_20210504_1946.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0045_auto_20210504_1946.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0046_purchaseorderlineitem_destination.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0046_purchaseorderlineitem_destination.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0047_auto_20210701_0509.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0047_auto_20210701_0509.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0048_auto_20210702_2321.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0048_auto_20210702_2321.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0049_alter_purchaseorderlineitem_unique_together.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0049_alter_purchaseorderlineitem_unique_together.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0050_alter_purchaseorderlineitem_destination.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0050_alter_purchaseorderlineitem_destination.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0051_auto_20211014_0623.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0051_auto_20211014_0623.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0052_auto_20211014_0631.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0052_auto_20211014_0631.py (no class)   31% 32 22 0   17% 12 2   27%
src/backend/InvenTree/order/migrations/0053_auto_20211128_0151.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0053_auto_20211128_0151.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0053_salesordershipment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0053_salesordershipment.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0054_auto_20211201_2139.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0054_auto_20211201_2139.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0054_salesorderallocation_shipment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0054_salesorderallocation_shipment.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0055_auto_20211025_0645.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0055_auto_20211025_0645.py (no class)   38% 34 21 0   17% 12 2   33%
src/backend/InvenTree/order/migrations/0056_alter_salesorderallocation_shipment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0056_alter_salesorderallocation_shipment.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0057_salesorderlineitem_shipped.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0057_salesorderlineitem_shipped.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0058_auto_20211126_1210.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0058_auto_20211126_1210.py (no class)   60% 15 6 0   25% 4 1   53%
src/backend/InvenTree/order/migrations/0059_salesordershipment_tracking_number.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0059_salesordershipment_tracking_number.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0060_auto_20211129_1339.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0060_auto_20211129_1339.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0061_merge_0054_auto_20211201_2139_0060_auto_20211129_1339.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0061_merge_0054_auto_20211201_2139_0060_auto_20211129_1339.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0062_auto_20220228_0321.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0062_auto_20220228_0321.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0063_alter_purchaseorderlineitem_unique_together.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0063_alter_purchaseorderlineitem_unique_together.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0064_purchaseorderextraline_salesorderextraline.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0064_purchaseorderextraline_salesorderextraline.py (no class)   50% 42 21 0   10% 10 1   42%
src/backend/InvenTree/order/migrations/0065_alter_purchaseorderlineitem_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0065_alter_purchaseorderlineitem_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0066_alter_purchaseorder_supplier.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0066_alter_purchaseorder_supplier.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0067_auto_20220516_1120.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0067_auto_20220516_1120.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0068_alter_salesorderallocation_unique_together.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0068_alter_salesorderallocation_unique_together.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0069_auto_20220524_0508.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0069_auto_20220524_0508.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0070_auto_20220620_0728.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0070_auto_20220620_0728.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0071_auto_20220628_0133.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0071_auto_20220628_0133.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0072_alter_salesorder_reference.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0072_alter_salesorder_reference.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0073_alter_purchaseorder_reference.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0073_alter_purchaseorder_reference.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0074_auto_20220709_0108.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0074_auto_20220709_0108.py (no class)   78% 46 10 0   38% 8 3   72%
src/backend/InvenTree/order/migrations/0075_auto_20221110_0108.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0075_auto_20221110_0108.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0076_auto_20221111_0153.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0076_auto_20221111_0153.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0077_auto_20230129_0154.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0077_auto_20230129_0154.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0078_auto_20230304_0721.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0078_auto_20230304_0721.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0079_auto_20230304_0904.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0079_auto_20230304_0904.py (no class)   36% 72 46 0   19% 32 6   31%
src/backend/InvenTree/order/migrations/0080_auto_20230317_0816.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0080_auto_20230317_0816.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0081_auto_20230314_0725.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0081_auto_20230314_0725.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0082_auto_20230314_1259.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0082_auto_20230314_1259.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0083_returnorderextraline.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0083_returnorderextraline.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0084_auto_20230321_1111.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0085_auto_20230322_1056.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0085_auto_20230322_1056.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0086_auto_20230323_1108.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0086_auto_20230323_1108.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0087_alter_salesorder_status.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0088_auto_20230403_1402.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0088_auto_20230403_1402.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0089_auto_20230404_0030.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0089_auto_20230404_0030.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0090_auto_20230412_1752.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0090_auto_20230412_1752.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0091_auto_20230419_0037.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0091_auto_20230419_0037.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0092_auto_20230419_0250.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0092_auto_20230419_0250.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0093_auto_20230426_0248.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0093_auto_20230426_0248.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0094_auto_20230514_2331.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0094_auto_20230514_2331.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0095_salesordershipment_delivery_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0095_salesordershipment_delivery_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0096_alter_returnorderlineitem_outcome.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0096_alter_returnorderlineitem_outcome.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0097_auto_20230529_0107.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0097_auto_20230529_0107.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0098_auto_20231024_1844.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0098_auto_20231024_1844.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0099_alter_salesorder_status.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0100_remove_returnorderattachment_order_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0100_remove_returnorderattachment_order_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0101_purchaseorder_status_custom_key_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0101_purchaseorder_status_custom_key_and_more.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0102_purchaseorder_destination_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0102_purchaseorder_destination_and_more.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0103_alter_salesorderallocation_shipment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0103_alter_salesorderallocation_shipment.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0104_alter_returnorderlineitem_quantity.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0104_alter_returnorderlineitem_quantity.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0105_auto_20241128_0431.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0105_auto_20241128_0431.py (no class)   50% 24 12 0   33% 6 2   47%
src/backend/InvenTree/order/migrations/0106_purchaseorder_start_date_returnorder_start_date_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0106_purchaseorder_start_date_returnorder_start_date_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0107_auto_20250221_1241.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0107_auto_20250221_1241.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0108_alter_purchaseorder_link_and_more_squashed_0109_alter_purchaseorderextraline_link_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0108_alter_purchaseorder_link_and_more_squashed_0109_alter_purchaseorderextraline_link_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0109_salesorder_issue_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0109_salesorder_issue_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0110_salesordershipment_barcode_data_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0110_salesordershipment_barcode_data_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0111_purchaseorderlineitem_build_order.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0111_purchaseorderlineitem_build_order.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0112_alter_salesorderlineitem_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0112_alter_salesorderlineitem_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0113_salesordershipment_shipment_address.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0113_salesordershipment_shipment_address.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0114_purchaseorderextraline_project_code_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0114_purchaseorderextraline_project_code_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0115_purchaseorder_updated_at_returnorder_updated_at_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0115_purchaseorder_updated_at_returnorder_updated_at_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0116_purchaseorderextraline_line_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0116_purchaseorderextraline_line_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0117_purchaseorderextraline_line_int_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0117_purchaseorderextraline_line_int_and_more.py (no class)   56% 16 7 0   67% 6 2   59%
src/backend/InvenTree/order/migrations/0118_transferorder.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0118_transferorder.py (no class)   100% 15 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0119_transferorderlineitem_line_int.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0119_transferorderlineitem_line_int.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0120_purchaseorder_tags_returnorder_tags_salesorder_tags_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/0120_purchaseorder_tags_returnorder_tags_salesorder_tags_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/order/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py TotalPriceMixin   0% 38 38 0   0% 20 0   0%
src/backend/InvenTree/order/models.py TotalPriceMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py BaseOrderReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py PurchaseOrderReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py ReturnOrderReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py TransferOrderReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py Order   44% 43 24 0   38% 24 7   42%
src/backend/InvenTree/order/models.py Order.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py PurchaseOrder   2% 191 187 0   0% 84 0   1%
src/backend/InvenTree/order/models.py PurchaseOrder.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrder   3% 156 151 0   0% 76 0   2%
src/backend/InvenTree/order/models.py SalesOrder.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py OrderLineItem   0% 18 18 0   0% 10 0   0%
src/backend/InvenTree/order/models.py OrderLineItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py OrderExtraLine   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py OrderExtraLine.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py PurchaseOrderLineItem   5% 38 36 0   0% 30 0   3%
src/backend/InvenTree/order/models.py PurchaseOrderLineItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py PurchaseOrderExtraLine   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py PurchaseOrderExtraLine.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderLineItem   8% 24 22 0   0% 14 0   5%
src/backend/InvenTree/order/models.py SalesOrderLineItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderShipmentReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderShipment   3% 36 35 0   0% 18 0   2%
src/backend/InvenTree/order/models.py SalesOrderShipment.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderExtraLine   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderExtraLine.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py SalesOrderAllocation   0% 40 40 0   0% 18 0   0%
src/backend/InvenTree/order/models.py SalesOrderAllocation.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py ReturnOrder   6% 78 73 0   0% 22 0   5%
src/backend/InvenTree/order/models.py ReturnOrder.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py ReturnOrderLineItem   9% 11 10 0   0% 8 0   5%
src/backend/InvenTree/order/models.py ReturnOrderLineItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py ReturnOrderExtraLine   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py ReturnOrderExtraLine.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py TransferOrder   39% 82 50 0   25% 32 8   35%
src/backend/InvenTree/order/models.py TransferOrder.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py TransferOrderLineItem   8% 12 11 0   0% 6 0   6%
src/backend/InvenTree/order/models.py TransferOrderLineItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py TransferOrderAllocation   0% 50 50 0   0% 28 0   0%
src/backend/InvenTree/order/models.py TransferOrderAllocation.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/models.py (no class)   98% 561 9 0   0% 8 0   97%
src/backend/InvenTree/order/serializers.py TotalPriceMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py DuplicateOrderSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py DuplicateOrderSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py AbstractOrderSerializer   28% 43 31 0   11% 18 2   23%
src/backend/InvenTree/order/serializers.py AbstractLineItemSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py AbstractExtraLineSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py AbstractExtraLineMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderSerializer   71% 7 2 0   100% 0 0   71%
src/backend/InvenTree/order/serializers.py PurchaseOrderSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py OrderAdjustSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py OrderAdjustSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderHoldSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderCancelSerializer   33% 3 2 0   0% 2 2   20%
src/backend/InvenTree/order/serializers.py PurchaseOrderCompleteSerializer   14% 7 6 0   0% 2 0   11%
src/backend/InvenTree/order/serializers.py PurchaseOrderCompleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderIssueSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderLineItemSerializer   33% 21 14 0   20% 10 0   29%
src/backend/InvenTree/order/serializers.py PurchaseOrderLineItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderExtraLineSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderExtraLineSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderLineItemReceiveSerializer   12% 32 28 0   17% 12 2   14%
src/backend/InvenTree/order/serializers.py PurchaseOrderLineItemReceiveSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py PurchaseOrderReceiveSerializer   6% 31 29 0   0% 14 0   4%
src/backend/InvenTree/order/serializers.py PurchaseOrderReceiveSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderSerializer   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderIssueSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderLineItemSerializer   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderLineItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentSerializer   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderAllocationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentCompleteSerializer   0% 6 6 0   0% 2 0   0%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentCompleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentAllocationItemSerializer   11% 19 17 0   8% 12 1   10%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentAllocationItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderCompleteSerializer   8% 13 12 0   0% 2 0   7%
src/backend/InvenTree/order/serializers.py SalesOrderCompleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderHoldSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderCancelSerializer   33% 3 2 0   100% 0 0   33%
src/backend/InvenTree/order/serializers.py SalesOrderSerialAllocationSerializer   2% 61 60 0   0% 24 0   1%
src/backend/InvenTree/order/serializers.py SalesOrderSerialAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentAllocationSerializer   21% 19 15 0   12% 8 1   19%
src/backend/InvenTree/order/serializers.py SalesOrderShipmentAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderAutoAllocationSerializer   0% 14 14 0   0% 12 0   0%
src/backend/InvenTree/order/serializers.py SalesOrderAutoAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderExtraLineSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py SalesOrderExtraLineSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderSerializer   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderHoldSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderIssueSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderCancelSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderCompleteSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderLineItemReceiveSerializer   0% 5 5 0   0% 4 0   0%
src/backend/InvenTree/order/serializers.py ReturnOrderLineItemReceiveSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderReceiveSerializer   0% 17 17 0   0% 6 0   0%
src/backend/InvenTree/order/serializers.py ReturnOrderReceiveSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderLineItemSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderLineItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderExtraLineSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py ReturnOrderExtraLineSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderSerializer   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderHoldSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderIssueSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderCancelSerializer   67% 3 1 0   50% 2 1   60%
src/backend/InvenTree/order/serializers.py TransferOrderCompleteSerializer   38% 13 8 0   50% 2 1   40%
src/backend/InvenTree/order/serializers.py TransferOrderCompleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderLineItemSerializer   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderLineItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderAllocationItemSerializer   12% 16 14 0   12% 8 1   12%
src/backend/InvenTree/order/serializers.py TransferOrderAllocationItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderLineItemAllocationSerializer   33% 12 8 0   25% 4 1   31%
src/backend/InvenTree/order/serializers.py TransferOrderLineItemAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderAllocationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py TransferOrderSerialAllocationSerializer   0% 50 50 0   0% 16 0   0%
src/backend/InvenTree/order/serializers.py TransferOrderSerialAllocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/serializers.py (no class)   100% 433 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py PurchaseOrderStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py PurchaseOrderStatusGroups   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py SalesOrderStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py SalesOrderStatusGroups   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py ReturnOrderStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py ReturnOrderStatusGroups   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py ReturnOrderLineStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py TransferOrderStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py TransferOrderStatusGroups   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/order/status_codes.py (no class)   100% 52 0 0   100% 0 0   100%
src/backend/InvenTree/order/tasks.py (no class)   31% 123 85 0   0% 34 0   24%
src/backend/InvenTree/order/validators.py (no class)   72% 36 10 0   100% 0 0   72%
src/backend/InvenTree/part/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartPricingAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartStocktakeAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartCategoryAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartRelatedAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartTestTemplateAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py BomItemAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartSellPriceBreakAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartSellPriceBreakAdmin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartInternalPriceBreakAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py PartInternalPriceBreakAdmin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/admin.py (no class)   100% 45 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryFilter   58% 31 13 0   58% 12 1   58%
src/backend/InvenTree/part/api.py CategoryFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryOutputOption   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryDetail   82% 11 2 0   50% 2 1   77%
src/backend/InvenTree/part/api.py CategoryTreeFilter   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryTreeFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryTree   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py CategoryParameterList   36% 14 9 0   25% 4 1   33%
src/backend/InvenTree/part/api.py CategoryParameterDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartSalePriceDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartSalePriceList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartInternalPriceDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartInternalPriceList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartTestTemplateFilter   43% 7 4 0   50% 4 0   45%
src/backend/InvenTree/part/api.py PartTestTemplateFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartTestTemplateMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartTestTemplateDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartTestTemplateList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartThumbs   100% 13 0 0   100% 4 0   100%
src/backend/InvenTree/part/api.py PartThumbsUpdate   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartRequirements   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartPricingDetail   40% 5 3 0   100% 0 0   40%
src/backend/InvenTree/part/api.py PartSerialNumberDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartCopyBOM   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartValidateBOM   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartFilter   4% 91 87 0   5% 42 2   5%
src/backend/InvenTree/part/api.py PartFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartMixin   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartDetail   67% 6 2 0   50% 2 1   62%
src/backend/InvenTree/part/api.py PartRelatedFilter   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/part/api.py PartRelatedFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartRelatedMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartRelatedList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartRelatedDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartStocktakeFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartStocktakeFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartStocktakeMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartStocktakeList   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartStocktakeDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py PartStocktakeGenerate   100% 17 0 0   100% 4 0   100%
src/backend/InvenTree/part/api.py BomFilter   0% 15 15 0   0% 6 0   0%
src/backend/InvenTree/part/api.py BomFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py BomMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py BomOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py BomList   0% 2 2 0   0% 2 0   0%
src/backend/InvenTree/part/api.py BomDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py BomItemValidate   44% 9 5 0   0% 2 0   36%
src/backend/InvenTree/part/api.py BomItemValidate.BomItemValidationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py BomItemSubstituteList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py BomItemSubstituteDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/api.py (no class)   100% 335 0 0   100% 0 0   100%
src/backend/InvenTree/part/apps.py PartConfig   53% 30 14 0   50% 14 5   52%
src/backend/InvenTree/part/apps.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/part/events.py PartEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/events.py (no class)   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/part/filters.py (no class)   91% 76 7 0   50% 10 3   86%
src/backend/InvenTree/part/helpers.py (no class)   82% 34 6 0   83% 6 1   82%
src/backend/InvenTree/part/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0001_initial.py (no class)   92% 13 1 0   100% 0 0   92%
src/backend/InvenTree/part/migrations/0002_auto_20190520_2204.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0002_auto_20190520_2204.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0003_auto_20190525_2226.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0003_auto_20190525_2226.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0004_auto_20190525_2356.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0004_auto_20190525_2356.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0005_auto_20190526_1119.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0005_auto_20190526_1119.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0006_auto_20190526_1215.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0006_auto_20190526_1215.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0007_auto_20190602_1944.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0007_auto_20190602_1944.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0008_auto_20190618_0042.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0008_auto_20190618_0042.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0009_part_virtual.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0009_part_virtual.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0010_auto_20190620_2135.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0010_auto_20190620_2135.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0011_part_revision.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0011_part_revision.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0012_auto_20190627_2144.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0012_auto_20190627_2144.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0013_auto_20190628_0951.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0013_auto_20190628_0951.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0014_partparameter.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0014_partparameter.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0015_auto_20190820_0251.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0015_auto_20190820_0251.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0016_auto_20190820_0257.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0016_auto_20190820_0257.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0017_bomitem_checksum.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0017_bomitem_checksum.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0018_auto_20190907_0941.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0018_auto_20190907_0941.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0019_auto_20190908_0404.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0019_auto_20190908_0404.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0020_auto_20190908_0404.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0020_auto_20190908_0404.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0021_auto_20190908_0916.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0021_auto_20190908_0916.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0022_auto_20190908_0918.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0022_auto_20190908_0918.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0023_auto_20190913_1401.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0023_auto_20190913_1401.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0024_auto_20191118_2139.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0024_auto_20191118_2139.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0025_auto_20191118_2316.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0025_auto_20191118_2316.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0026_auto_20200131_1022.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0026_auto_20200131_1022.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0027_auto_20200202_1024.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0027_auto_20200202_1024.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0028_auto_20200203_1007.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0028_auto_20200203_1007.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0029_auto_20200223_0901.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0029_auto_20200223_0901.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0030_auto_20200318_1027.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0030_auto_20200318_1027.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0031_auto_20200318_1044.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0031_auto_20200318_1044.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0032_auto_20200322_0453.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0032_auto_20200322_0453.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0033_auto_20200404_0445.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0033_auto_20200404_0445.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0034_auto_20200404_1238.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0034_auto_20200404_1238.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0035_auto_20200406_0045.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0035_auto_20200406_0045.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0036_partattachment_user.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0036_partattachment_user.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0037_partattachment_upload_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0037_partattachment_upload_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0038_auto_20200513_0016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0038_auto_20200513_0016.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0039_auto_20200515_1127.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0039_auto_20200515_1127.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0040_parttesttemplate.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0040_parttesttemplate.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0041_auto_20200517_0348.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0041_auto_20200517_0348.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0042_auto_20200518_0900.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0042_auto_20200518_0900.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0043_auto_20200527_0005.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0043_auto_20200527_0005.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0044_auto_20200605_0931.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0044_auto_20200605_0931.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0045_auto_20200605_0932.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0045_auto_20200605_0932.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0046_auto_20200804_0107.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0046_auto_20200804_0107.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0047_auto_20200808_0715.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0047_auto_20200808_0715.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0048_auto_20200902_1404.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0048_auto_20200902_1404.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0049_partsellpricebreak.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0049_partsellpricebreak.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0050_auto_20200917_2315.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0050_auto_20200917_2315.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0051_bomitem_optional.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0051_bomitem_optional.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0052_partrelated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0052_partrelated.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0053_partcategoryparametertemplate.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0053_partcategoryparametertemplate.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0054_auto_20201109_1246.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0054_auto_20201109_1246.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0055_auto_20201110_1001.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0055_auto_20201110_1001.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0056_auto_20201110_1125.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0056_auto_20201110_1125.py (no class)   37% 65 41 0   15% 20 3   32%
src/backend/InvenTree/part/migrations/0057_remove_partsellpricebreak_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0057_remove_partsellpricebreak_currency.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0058_remove_partsellpricebreak_cost.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0058_remove_partsellpricebreak_cost.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0059_auto_20201112_1112.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0059_auto_20201112_1112.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0060_merge_20201112_1722.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0060_merge_20201112_1722.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0061_auto_20210103_2313.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0061_auto_20210103_2313.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0061_auto_20210104_2331.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0061_auto_20210104_2331.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0062_merge_20210105_0056.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0062_merge_20210105_0056.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0063_bomitem_inherited.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0063_bomitem_inherited.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0064_auto_20210404_2016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0064_auto_20210404_2016.py (no class)   100% 12 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0065_auto_20210505_2144.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0065_auto_20210505_2144.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0066_bomitem_allow_variants.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0066_bomitem_allow_variants.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0067_partinternalpricebreak.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0067_partinternalpricebreak.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0068_part_unique_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0068_part_unique_part.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0069_auto_20210701_0509.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0069_auto_20210701_0509.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0070_alter_part_variant_of.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0070_alter_part_variant_of.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0071_alter_partparametertemplate_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0071_alter_partparametertemplate_name.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0072_bomitemsubstitute.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0072_bomitemsubstitute.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0073_auto_20211013_1048.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0073_auto_20211013_1048.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0074_partcategorystar.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0074_partcategorystar.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0075_auto_20211128_0151.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0075_auto_20211128_0151.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0076_auto_20220516_0819.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0076_auto_20220516_0819.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0077_alter_bomitem_unique_together.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0077_alter_bomitem_unique_together.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0078_auto_20220606_0024.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0078_auto_20220606_0024.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0079_alter_part_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0079_alter_part_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0080_alter_part_image.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0080_alter_part_image.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0081_alter_partcategory_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0081_alter_partcategory_name.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0082_partcategory_pathstring.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0082_partcategory_pathstring.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0083_auto_20220731_2357.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0083_auto_20220731_2357.py (no class)   47% 19 10 0   17% 6 1   40%
src/backend/InvenTree/part/migrations/0084_partcategory_icon.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0084_partcategory_icon.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0085_partparametertemplate_description.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0085_partparametertemplate_description.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0086_auto_20220912_0007.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0086_auto_20220912_0007.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0087_bomitem_consumable.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0087_bomitem_consumable.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0088_alter_partparametertemplate_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0088_alter_partparametertemplate_name.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0089_auto_20221112_0128.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0089_auto_20221112_0128.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0090_auto_20221115_0816.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0090_auto_20221115_0816.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0091_partstocktake.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0091_partstocktake.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0092_part_last_stocktake.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0092_part_last_stocktake.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0093_auto_20230115_1404.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0093_auto_20230115_1404.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0094_alter_part_units.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0094_alter_part_units.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0095_alter_part_responsible.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0095_alter_part_responsible.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0096_auto_20230211_0029.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0096_auto_20230211_0029.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0097_partstocktakereport.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0097_partstocktakereport.py (no class)   88% 8 1 0   100% 0 0   88%
src/backend/InvenTree/part/migrations/0098_auto_20230214_1115.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0098_auto_20230214_1115.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0099_alter_bomitem_inherited.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0099_alter_bomitem_inherited.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0100_alter_bomitem_reference.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0100_alter_bomitem_reference.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0101_bomitem_validated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0101_bomitem_validated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0102_auto_20230314_0112.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0102_auto_20230314_0112.py (no class)   30% 46 32 0   8% 12 1   26%
src/backend/InvenTree/part/migrations/0103_auto_20230317_0816.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0103_auto_20230317_0816.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0104_alter_part_description.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0104_alter_part_description.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0105_alter_part_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0105_alter_part_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0106_part_tags.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0106_part_tags.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0107_alter_part_tags.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0107_alter_part_tags.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0108_auto_20230516_1334.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0108_auto_20230516_1334.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0109_auto_20230517_1048.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0109_auto_20230517_1048.py (no class)   23% 81 62 0   12% 26 3   21%
src/backend/InvenTree/part/migrations/0110_alter_part_units.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0110_alter_part_units.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0111_auto_20230521_1350.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0111_auto_20230521_1350.py (no class)   25% 55 41 0   6% 18 1   21%
src/backend/InvenTree/part/migrations/0112_auto_20230525_1606.py RemoveFieldOrSkip   80% 10 2 0   100% 0 0   80%
src/backend/InvenTree/part/migrations/0112_auto_20230525_1606.py AddFieldOrSkip   44% 9 5 0   100% 0 0   44%
src/backend/InvenTree/part/migrations/0112_auto_20230525_1606.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0112_auto_20230525_1606.py (no class)   100% 13 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0113_auto_20230531_1205.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0113_auto_20230531_1205.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0114_alter_part_minimum_stock.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0114_alter_part_minimum_stock.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0115_part_responsible_owner.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0115_part_responsible_owner.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0116_auto_20231023_0332.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0116_auto_20231023_0332.py (no class)   42% 33 19 0   20% 10 2   37%
src/backend/InvenTree/part/migrations/0117_remove_part_responsible.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0117_remove_part_responsible.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0118_auto_20231024_1844.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0118_auto_20231024_1844.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0119_auto_20231120_0457.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0119_auto_20231120_0457.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0120_parttesttemplate_key.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0120_parttesttemplate_key.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0121_auto_20240207_0344.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0121_auto_20240207_0344.py (no class)   75% 12 3 0   50% 4 2   69%
src/backend/InvenTree/part/migrations/0122_parttesttemplate_enabled.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0122_parttesttemplate_enabled.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0123_parttesttemplate_choices.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0123_parttesttemplate_choices.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0124_delete_partattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0124_delete_partattachment.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0125_part_locked.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0125_part_locked.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0126_part_revision_of.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0126_part_revision_of.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0127_remove_partcategory_icon_partcategory__icon.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0128_part_testable.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0128_part_testable.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0129_auto_20240815_0214.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0129_auto_20240815_0214.py (no class)   80% 10 2 0   50% 2 1   75%
src/backend/InvenTree/part/migrations/0130_alter_parttesttemplate_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0130_alter_parttesttemplate_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0131_partrelated_note.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0131_partrelated_note.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0132_partparametertemplate_selectionlist.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0132_partparametertemplate_selectionlist.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0133_alter_partcategory__icon.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0133_alter_partcategory__icon.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0134_auto_20250221_1309.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0134_auto_20250221_1309.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0135_alter_part_link.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0135_alter_part_link.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0136_partparameter_note_partparameter_updated_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0136_partparameter_note_partparameter_updated_and_more.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0137_bomitem_attrition_bomitem_rounding_multiple_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0137_bomitem_attrition_bomitem_rounding_multiple_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0138_auto_20250718_2342.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0138_auto_20250718_2342.py (no class)   27% 41 30 0   10% 10 1   24%
src/backend/InvenTree/part/migrations/0139_remove_bomitem_overage.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0139_remove_bomitem_overage.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0140_part_bom_validated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0140_part_bom_validated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0141_auto_20250722_0303.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0141_auto_20250722_0303.py (no class)   50% 28 14 0   19% 16 3   39%
src/backend/InvenTree/part/migrations/0142_remove_part_last_stocktake_remove_partstocktake_note_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0142_remove_part_last_stocktake_remove_partstocktake_note_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0143_alter_part_image.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0143_alter_part_image.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0144_auto_20251203_1045.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0144_auto_20251203_1045.py (no class)   58% 31 13 0   25% 8 2   51%
src/backend/InvenTree/part/migrations/0145_auto_20251203_1238.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0145_auto_20251203_1238.py (no class)   44% 27 15 0   25% 8 2   40%
src/backend/InvenTree/part/migrations/0146_auto_20251203_1241.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0146_auto_20251203_1241.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0147_remove_part_default_supplier.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0147_remove_part_default_supplier.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0148_auto_20260427_2233.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0148_auto_20260427_2233.py (no class)   64% 14 5 0   25% 4 1   56%
src/backend/InvenTree/part/migrations/0149_bomitem_raw_amount.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0149_bomitem_raw_amount.py (no class)   64% 28 10 0   38% 8 3   58%
src/backend/InvenTree/part/migrations/0150_part_maximum_stock.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/0150_part_maximum_stock.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/part/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartCategory   13% 70 61 0   11% 36 4   12%
src/backend/InvenTree/part/models.py PartCategory.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartCategoryParameterTemplate   9% 11 10 0   0% 4 0   7%
src/backend/InvenTree/part/models.py PartCategoryParameterTemplate.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py Part   25% 655 493 0   15% 368 43   21%
src/backend/InvenTree/part/models.py Part.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py Part.MPTTMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartPricing   10% 279 250 0   8% 172 9   9%
src/backend/InvenTree/part/models.py PartStocktake   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartSellPriceBreak   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartSellPriceBreak.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartInternalPriceBreak   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/part/models.py PartInternalPriceBreak.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartStar   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartStar.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartCategoryStar   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartCategoryStar.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartTestTemplate   3% 32 31 0   0% 18 0   2%
src/backend/InvenTree/part/models.py PartTestTemplate.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py BomItem   1% 158 157 0   0% 86 0   1%
src/backend/InvenTree/part/models.py BomItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py BomItemSubstitute   0% 6 6 0   0% 2 0   0%
src/backend/InvenTree/part/models.py BomItemSubstitute.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py PartRelated   0% 9 9 0   0% 4 0   0%
src/backend/InvenTree/part/models.py PartRelated.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/models.py (no class)   97% 468 12 0   17% 12 0   95%
src/backend/InvenTree/part/serializers.py CategoryDeleteSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py CategoryDeleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py CategorySerializer   88% 8 1 0   75% 4 1   83%
src/backend/InvenTree/part/serializers.py CategorySerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py CategoryTreeSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py CategoryTreeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartTestTemplateSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartTestTemplateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartSalePriceSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartSalePriceSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartInternalPriceSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartInternalPriceSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartThumbSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartThumbSerializerUpdate   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/part/serializers.py PartThumbSerializerUpdate.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartBriefSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartBriefSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py DuplicatePartSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py DuplicatePartSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py InitialStockSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py InitialStockSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py InitialSupplierSerializer   0% 11 11 0   0% 8 0   0%
src/backend/InvenTree/part/serializers.py InitialSupplierSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py DefaultLocationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py DefaultLocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartSerializer   58% 89 37 0   37% 46 11   51%
src/backend/InvenTree/part/serializers.py PartSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartBomValidateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartBomValidateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartRequirementsSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartRequirementsSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartStocktakeSerializer   88% 8 1 0   50% 2 1   80%
src/backend/InvenTree/part/serializers.py PartStocktakeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartStocktakeGenerateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartStocktakeGenerateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartPricingCurrencySerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartPricingSerializer   50% 18 9 0   33% 6 2   46%
src/backend/InvenTree/part/serializers.py PartPricingSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartSerialNumberSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartSerialNumberSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartRelationSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartRelationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartStarSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartStarSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py BomItemSubstituteSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py BomItemSubstituteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py BomItemSerializer   50% 18 9 0   0% 4 0   41%
src/backend/InvenTree/part/serializers.py BomItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py CategoryParameterTemplateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py CategoryParameterTemplateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py PartCopyBOMSerializer   0% 4 4 0   100% 0 0   0%
src/backend/InvenTree/part/serializers.py PartCopyBOMSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/part/serializers.py (no class)   100% 351 0 0   100% 0 0   100%
src/backend/InvenTree/part/settings.py (no class)   100% 15 0 0   100% 0 0   100%
src/backend/InvenTree/part/stocktake.py (no class)   17% 113 94 0   2% 42 1   13%
src/backend/InvenTree/part/tasks.py (no class)   23% 202 155 0   1% 70 1   18%
src/backend/InvenTree/plugin/__init__.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/admin.py PluginSettingInline   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/admin.py PluginUserSettingInline   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/admin.py PluginConfigAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/admin.py (no class)   71% 35 10 0   0% 6 0   61%
src/backend/InvenTree/plugin/api.py PluginFilter   94% 31 2 0   73% 22 6   85%
src/backend/InvenTree/plugin/api.py PluginFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginDetail   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/plugin/api.py PluginAdminDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginInstall   62% 8 3 0   100% 0 0   62%
src/backend/InvenTree/plugin/api.py PluginUninstall   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginActivate   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/plugin/api.py PluginReload   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginSettingList   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginAllSettingList   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginSettingDetail   83% 6 1 0   50% 2 1   75%
src/backend/InvenTree/plugin/api.py PluginUserSettingList   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/api.py PluginUserSettingDetail   83% 6 1 0   50% 2 1   75%
src/backend/InvenTree/plugin/api.py RegistryStatusView   57% 7 3 0   17% 6 1   38%
src/backend/InvenTree/plugin/api.py (no class)   95% 144 7 0   50% 12 4   92%
src/backend/InvenTree/plugin/apps.py PluginAppConfig   80% 10 2 0   67% 6 2   75%
src/backend/InvenTree/plugin/apps.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/action/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/action/api.py ActionPluginSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/action/api.py ActionPluginErrorSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/action/api.py ActionPluginView   54% 13 6 0   50% 6 1   53%
src/backend/InvenTree/plugin/base/action/api.py (no class)   100% 19 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/action/mixins.py ActionMixin   0% 8 8 0   0% 2 0   0%
src/backend/InvenTree/plugin/base/action/mixins.py ActionMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/action/mixins.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeView   40% 65 39 0   17% 24 2   34%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeScan   62% 8 3 0   50% 2 1   60%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeGenerate   14% 14 12 0   0% 2 0   12%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeAssign   55% 20 9 0   50% 10 3   53%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeUnassign   50% 22 11 0   29% 14 2   42%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodePOAllocate   0% 32 32 0   0% 20 0   0%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodePOReceive   36% 81 52 0   19% 36 7   31%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeSOAllocate   0% 64 64 0   0% 36 0   0%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeScanResultMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeScanResultFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeScanResultFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeScanResultList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/api.py BarcodeScanResultDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/api.py (no class)   100% 79 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/helper.py (no class)   77% 31 7 0   100% 4 0   80%
src/backend/InvenTree/plugin/base/barcodes/mixins.py BarcodeMixin   75% 12 3 0   100% 0 0   75%
src/backend/InvenTree/plugin/base/barcodes/mixins.py BarcodeMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/mixins.py SupplierBarcodeMixin   0% 155 155 0   0% 86 0   0%
src/backend/InvenTree/plugin/base/barcodes/mixins.py (no class)   100% 66 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeScanResultSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeScanResultSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeGenerateSerializer   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeAssignMixin   100% 5 0 0   100% 2 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeAssignSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeAssignSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeUnassignSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeUnassignSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodePOAllocateSerializer   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodePOReceiveSerializer   67% 6 2 0   50% 4 2   60%
src/backend/InvenTree/plugin/base/barcodes/serializers.py BarcodeSOAllocateSerializer   33% 6 4 0   25% 4 1   30%
src/backend/InvenTree/plugin/base/barcodes/serializers.py (no class)   100% 51 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/event/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/event/events.py (no class)   61% 84 33 0   44% 32 4   56%
src/backend/InvenTree/plugin/base/event/mixins.py EventMixin   0% 4 4 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/event/mixins.py EventMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/event/mixins.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/icons/mixins.py IconPackMixin   0% 5 5 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/icons/mixins.py IconPackMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/icons/mixins.py (no class)   100% 12 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/APICallMixin.py APICallMixin   62% 42 16 0   43% 28 10   54%
src/backend/InvenTree/plugin/base/integration/APICallMixin.py APICallMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/APICallMixin.py (no class)   100% 24 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/AppMixin.py AppMixin   10% 67 60 0   6% 34 2   9%
src/backend/InvenTree/plugin/base/integration/AppMixin.py AppMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/AppMixin.py (no class)   100% 23 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/CurrencyExchangeMixin.py CurrencyExchangeMixin   67% 3 1 0   100% 0 0   67%
src/backend/InvenTree/plugin/base/integration/CurrencyExchangeMixin.py CurrencyExchangeMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/CurrencyExchangeMixin.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/DataExport.py DataExportMixin   9% 23 21 0   0% 4 0   7%
src/backend/InvenTree/plugin/base/integration/DataExport.py DataExportMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/DataExport.py (no class)   100% 20 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/MachineMixin.py MachineDriverMixin   50% 4 2 0   100% 0 0   50%
src/backend/InvenTree/plugin/base/integration/MachineMixin.py MachineDriverMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/MachineMixin.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/NavigationMixin.py NavigationMixin   0% 15 15 0   0% 8 0   0%
src/backend/InvenTree/plugin/base/integration/NavigationMixin.py NavigationMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/NavigationMixin.py (no class)   100% 17 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/NotificationMixin.py NotificationMixin   75% 4 1 0   100% 0 0   75%
src/backend/InvenTree/plugin/base/integration/NotificationMixin.py NotificationMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/NotificationMixin.py (no class)   93% 15 1 0   50% 2 1   88%
src/backend/InvenTree/plugin/base/integration/ReportMixin.py ReportMixin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/integration/ReportMixin.py ReportMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/ReportMixin.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py ScheduleMixin   12% 82 72 0   10% 40 4   11%
src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py ScheduleMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py (no class)   100% 23 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/SettingsMixin.py SettingsMixin   35% 52 34 0   29% 14 0   33%
src/backend/InvenTree/plugin/base/integration/SettingsMixin.py SettingsMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/SettingsMixin.py (no class)   93% 28 2 0   50% 2 1   90%
src/backend/InvenTree/plugin/base/integration/TransitionMixin.py TransitionMixin   0% 17 17 0   0% 6 0   0%
src/backend/InvenTree/plugin/base/integration/TransitionMixin.py TransitionMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/TransitionMixin.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/UrlsMixin.py UrlsMixin   6% 16 15 0   12% 8 1   8%
src/backend/InvenTree/plugin/base/integration/UrlsMixin.py UrlsMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/UrlsMixin.py (no class)   100% 21 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/ValidationMixin.py ValidationMixin   0% 14 14 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/integration/ValidationMixin.py ValidationMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/ValidationMixin.py (no class)   100% 23 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/integration/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/label/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/label/label.py (no class)   32% 25 17 0   0% 6 0   26%
src/backend/InvenTree/plugin/base/label/mixins.py LabelPrintingMixin   10% 48 43 0   10% 10 1   10%
src/backend/InvenTree/plugin/base/label/mixins.py LabelPrintingMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/label/mixins.py (no class)   100% 26 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/locate/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/locate/api.py LocatePluginSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/locate/api.py LocatePluginView   19% 32 26 0   38% 8 1   22%
src/backend/InvenTree/plugin/base/locate/api.py (no class)   100% 18 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/locate/mixins.py LocateMixin   0% 11 11 0   0% 2 0   0%
src/backend/InvenTree/plugin/base/locate/mixins.py LocateMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/locate/mixins.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/mail/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/mail/mail.py (no class)   0% 37 37 0   0% 16 0   0%
src/backend/InvenTree/plugin/base/mail/mixins.py MailMixin   0% 4 4 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/mail/mixins.py MailMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/mail/mixins.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/api.py ListSupplier   75% 4 1 0   50% 2 1   67%
src/backend/InvenTree/plugin/base/supplier/api.py SearchPart   40% 10 6 0   100% 0 0   40%
src/backend/InvenTree/plugin/base/supplier/api.py ImportPart   22% 41 32 0   12% 16 0   19%
src/backend/InvenTree/plugin/base/supplier/api.py (no class)   85% 46 7 0   30% 10 3   75%
src/backend/InvenTree/plugin/base/supplier/helpers.py Supplier   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/helpers.py SearchResult   0% 2 2 0   0% 2 0   0%
src/backend/InvenTree/plugin/base/supplier/helpers.py ImportParameter   0% 5 5 0   0% 2 0   0%
src/backend/InvenTree/plugin/base/supplier/helpers.py PartNotFoundError   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/helpers.py PartImportError   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/helpers.py (no class)   100% 22 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/mixins.py SupplierMixin   0% 40 40 0   0% 14 0   0%
src/backend/InvenTree/plugin/base/supplier/mixins.py SupplierMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/mixins.py (no class)   100% 29 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/serializers.py SupplierListSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/serializers.py SearchResultSerializer   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/supplier/serializers.py SearchResultSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/serializers.py ImportParameterSerializer   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/supplier/serializers.py ImportParameterSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/serializers.py ImportRequestSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/serializers.py ImportResultSerializer   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/base/supplier/serializers.py ImportResultSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/supplier/serializers.py (no class)   100% 46 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/api.py PluginUIFeatureList   14% 21 18 0   8% 12 1   12%
src/backend/InvenTree/plugin/base/ui/api.py (no class)   100% 15 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/mixins.py UIFeature   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/mixins.py CustomPanelOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/mixins.py CustomDashboardItemOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/mixins.py UserInterfaceMixin   0% 14 14 0   0% 2 0   0%
src/backend/InvenTree/plugin/base/ui/mixins.py UserInterfaceMixin.MixinMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/mixins.py (no class)   100% 21 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/serializers.py PluginUIFeatureSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/serializers.py PluginUIFeatureSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/base/ui/serializers.py (no class)   100% 14 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/broken/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/broken/bad_actor.py BadActorPlugin   0% 4 4 0   100% 0 0   0%
src/backend/InvenTree/plugin/broken/bad_actor.py (no class)   0% 6 6 0   100% 0 0   0%
src/backend/InvenTree/plugin/broken/broken_file.py BrokenFileIntegrationPlugin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/broken/broken_file.py (no class)   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/plugin/broken/broken_sample.py BrokenIntegrationPlugin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/plugin/broken/broken_sample.py (no class)   0% 6 6 0   100% 0 0   0%
src/backend/InvenTree/plugin/builtin/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/barcodes/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py InvenTreeInternalBarcodePlugin   46% 46 25 0   40% 20 6   44%
src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py (no class)   100% 19 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/events/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/events/auto_create_builds.py AutoCreateBuildsPlugin   0% 23 23 0   0% 8 0   0%
src/backend/InvenTree/plugin/builtin/events/auto_create_builds.py (no class)   100% 18 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/events/auto_issue_orders.py AutoIssueOrdersPlugin   0% 33 33 0   0% 14 0   0%
src/backend/InvenTree/plugin/builtin/events/auto_issue_orders.py (no class)   100% 20 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/bom_exporter.py BomExporterOptionsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/bom_exporter.py BomExporterPlugin   0% 109 109 0   0% 62 0   0%
src/backend/InvenTree/plugin/builtin/exporter/bom_exporter.py (no class)   100% 35 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/inventree_exporter.py InvenTreeExporter   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/builtin/exporter/inventree_exporter.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/parameter_exporter.py ParameterExportOptionsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/parameter_exporter.py ParameterExporter   0% 23 23 0   0% 8 0   0%
src/backend/InvenTree/plugin/builtin/exporter/parameter_exporter.py (no class)   100% 18 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/stocktake_exporter.py PartStocktakeExportOptionsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/exporter/stocktake_exporter.py PartStocktakeExporter   0% 45 45 0   0% 22 0   0%
src/backend/InvenTree/plugin/builtin/exporter/stocktake_exporter.py (no class)   100% 26 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/integration/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/integration/core_notifications.py InvenTreeUINotifications   91% 11 1 0   83% 6 1   88%
src/backend/InvenTree/plugin/builtin/integration/core_notifications.py InvenTreeEmailNotifications   59% 17 7 0   33% 12 4   48%
src/backend/InvenTree/plugin/builtin/integration/core_notifications.py InvenTreeSlackNotifications   0% 5 5 0   0% 2 0   0%
src/backend/InvenTree/plugin/builtin/integration/core_notifications.py (no class)   100% 37 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/integration/currency_exchange.py InvenTreeCurrencyExchange   75% 8 2 0   50% 2 1   70%
src/backend/InvenTree/plugin/builtin/integration/currency_exchange.py (no class)   100% 15 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/integration/machine_types.py InvenTreeMachineTypes   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/integration/machine_types.py (no class)   100% 13 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/integration/part_notifications.py PartNotificationsPlugin   0% 7 7 0   0% 2 0   0%
src/backend/InvenTree/plugin/builtin/integration/part_notifications.py (no class)   100% 17 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/labels/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/labels/inventree_label.py InvenTreeLabelPlugin   0% 22 22 0   0% 8 0   0%
src/backend/InvenTree/plugin/builtin/labels/inventree_label.py (no class)   100% 20 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py InvenTreeLabelPlugin   0% 19 19 0   0% 12 0   0%
src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py InvenTreeLabelPlugin.PrintingOptionsSerializer   0% 23 23 0   0% 10 0   0%
src/backend/InvenTree/plugin/builtin/labels/inventree_machine.py (no class)   71% 38 11 0   0% 6 0   61%
src/backend/InvenTree/plugin/builtin/labels/label_sheet.py LabelPrintingOptionsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/labels/label_sheet.py InvenTreeLabelSheetPlugin   0% 75 75 0   0% 24 0   0%
src/backend/InvenTree/plugin/builtin/labels/label_sheet.py (no class)   100% 33 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/suppliers/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/suppliers/digikey.py DigiKeyPlugin   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/builtin/suppliers/digikey.py (no class)   100% 13 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/suppliers/lcsc.py LCSCPlugin   0% 9 9 0   0% 6 0   0%
src/backend/InvenTree/plugin/builtin/suppliers/lcsc.py (no class)   100% 16 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/suppliers/mouser.py MouserPlugin   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/plugin/builtin/suppliers/mouser.py (no class)   100% 13 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/builtin/suppliers/tme.py TMEPlugin   0% 18 18 0   0% 18 0   0%
src/backend/InvenTree/plugin/builtin/suppliers/tme.py (no class)   100% 17 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/events.py PluginEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/events.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/helpers.py IntegrationPluginError   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/plugin/helpers.py MixinImplementationError   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/helpers.py MixinNotImplementedError   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/helpers.py (no class)   60% 124 50 0   42% 36 5   56%
src/backend/InvenTree/plugin/installer.py (no class)   22% 216 168 0   7% 88 6   18%
src/backend/InvenTree/plugin/machine/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/machine/machine_types.py (no class)   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0001_initial.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0002_alter_pluginconfig_options.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0002_alter_pluginconfig_options.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0003_pluginsetting.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0003_pluginsetting.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0004_alter_pluginsetting_key.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0004_alter_pluginsetting_key.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0005_notificationusersetting.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0005_notificationusersetting.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0006_pluginconfig_metadata.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0006_pluginconfig_metadata.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0007_auto_20230805_1748.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0007_auto_20230805_1748.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0008_pluginconfig_package_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0008_pluginconfig_package_name.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0009_alter_pluginconfig_key.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0009_alter_pluginconfig_key.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0010_pluginusersetting.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0010_pluginusersetting.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0011_delete_notificationusersetting.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/0011_delete_notificationusersetting.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/mixins/__init__.py (no class)   100% 24 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/mock/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/mock/simple.py SimplePlugin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/mock/simple.py (no class)   0% 4 4 0   100% 0 0   0%
src/backend/InvenTree/plugin/models.py PluginConfig   69% 86 27 0   59% 44 12   65%
src/backend/InvenTree/plugin/models.py PluginConfig.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/models.py PluginSetting   86% 28 4 0   50% 18 9   72%
src/backend/InvenTree/plugin/models.py PluginSetting.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/models.py PluginUserSetting   0% 8 8 0   0% 6 0   0%
src/backend/InvenTree/plugin/models.py PluginUserSetting.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/models.py (no class)   100% 70 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/plugin.py PluginMixinEnum   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/plugin.py MetaBase   75% 28 7 0   57% 14 4   69%
src/backend/InvenTree/plugin/plugin.py MixinBase   93% 30 2 0   92% 12 1   93%
src/backend/InvenTree/plugin/plugin.py VersionMixin   0% 5 5 0   100% 0 0   0%
src/backend/InvenTree/plugin/plugin.py InvenTreePlugin   40% 122 73 0   32% 40 9   38%
src/backend/InvenTree/plugin/plugin.py (no class)   99% 181 1 0   50% 2 1   99%
src/backend/InvenTree/plugin/registry.py PluginsRegistry   61% 423 163 0   55% 176 37   60%
src/backend/InvenTree/plugin/registry.py (no class)   86% 99 14 0   30% 10 1   81%
src/backend/InvenTree/plugin/samples/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/event/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/event/event_sample.py EventPluginSample   0% 5 5 0   0% 2 0   0%
src/backend/InvenTree/plugin/samples/event/event_sample.py (no class)   0% 10 10 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/event/filtered_event_sample.py FilteredEventPluginSample   0% 6 6 0   0% 2 0   0%
src/backend/InvenTree/plugin/samples/event/filtered_event_sample.py (no class)   0% 11 11 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/icons/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/icons/icon_sample.py SampleIconPlugin   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/icons/icon_sample.py (no class)   0% 10 10 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/integration/another_sample.py NoIntegrationPlugin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/integration/another_sample.py WrongIntegrationPlugin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/integration/another_sample.py (no class)   0% 6 6 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/api_caller.py SampleApiCallerPlugin   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/api_caller.py (no class)   0% 9 9 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/label_sample.py SampleLabelPrinter   0% 7 7 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/label_sample.py SampleLabelPrinter.PrintingOptionsSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/integration/label_sample.py (no class)   0% 14 14 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/report_plugin_sample.py SampleReportPlugin   0% 5 5 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/report_plugin_sample.py (no class)   0% 11 11 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/sample.py SampleIntegrationPlugin   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/sample.py (no class)   0% 23 23 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/sample_currency_exchange.py SampleCurrencyExchangePlugin   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/plugin/samples/integration/sample_currency_exchange.py (no class)   0% 11 11 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/scheduled_task.py ScheduledTaskPlugin   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/scheduled_task.py (no class)   0% 14 14 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/simpleactionplugin.py SimpleActionPlugin   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/simpleactionplugin.py (no class)   0% 9 9 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/transition.py SampleTransitionPlugin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/integration/transition.py SampleTransitionPlugin.ReturnChangeHandler   0% 8 8 0   0% 4 0   0%
src/backend/InvenTree/plugin/samples/integration/transition.py BrokenTransitionPlugin   0% 9 9 0   0% 6 0   0%
src/backend/InvenTree/plugin/samples/integration/transition.py (no class)   0% 21 21 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py SampleUserInterfacePlugin   0% 32 32 0   0% 16 0   0%
src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py (no class)   0% 23 23 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/validation_sample.py SampleValidatorPlugin   0% 55 55 0   0% 42 0   0%
src/backend/InvenTree/plugin/samples/integration/validation_sample.py (no class)   0% 18 18 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/integration/version.py VersionPlugin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/integration/version.py (no class)   0% 7 7 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/locate/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/locate/locate_sample.py SampleLocatePlugin   0% 16 16 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/locate/locate_sample.py (no class)   0% 11 11 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/machines/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/machines/sample_printer.py SamplePrinterDriver   0% 9 9 0   0% 2 0   0%
src/backend/InvenTree/plugin/samples/machines/sample_printer.py SamplePrinterMachine   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/machines/sample_printer.py (no class)   0% 23 23 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/mail/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/mail/mail_sample.py MailPluginSample   0% 10 10 0   0% 4 0   0%
src/backend/InvenTree/plugin/samples/mail/mail_sample.py (no class)   0% 11 11 0   100% 0 0   0%
src/backend/InvenTree/plugin/samples/supplier/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py SampleSupplierPlugin   0% 38 38 0   0% 18 0   0%
src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py (no class)   0% 20 20 0   100% 0 0   0%
src/backend/InvenTree/plugin/serializers.py MetadataSerializer   57% 7 3 0   50% 2 1   56%
src/backend/InvenTree/plugin/serializers.py MetadataSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginConfigSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginConfigSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginAdminDetailSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginAdminDetailSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginConfigInstallSerializer   94% 16 1 0   83% 6 1   91%
src/backend/InvenTree/plugin/serializers.py PluginConfigInstallSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginConfigEmptySerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginReloadSerializer   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginReloadSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginActivateSerializer   100% 5 0 0   100% 2 0   100%
src/backend/InvenTree/plugin/serializers.py PluginActivateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginUninstallSerializer   80% 5 1 0   50% 2 1   71%
src/backend/InvenTree/plugin/serializers.py PluginUninstallSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginSettingSerializer   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginUserSettingSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginRegistryErrorSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginRegistryErrorSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginRegistryStatusSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginRegistryStatusSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/serializers.py PluginRelationSerializer   67% 6 2 0   100% 0 0   67%
src/backend/InvenTree/plugin/serializers.py (no class)   100% 83 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/staticfiles.py (no class)   19% 62 50 0   3% 30 1   14%
src/backend/InvenTree/plugin/template.py PluginTemplateLoader   86% 7 1 0   75% 4 1   82%
src/backend/InvenTree/plugin/template.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/templatetags/plugin_extras.py (no class)   64% 25 9 0   100% 0 0   64%
src/backend/InvenTree/plugin/testing/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/testing/label_machines.py TestingLabelPrinterDriver   0% 8 8 0   0% 2 0   0%
src/backend/InvenTree/plugin/testing/label_machines.py TestingLabelPrinterDriverError1   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/testing/label_machines.py TestingLabelPrinterDriverError2   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/testing/label_machines.py TestingLabelPrinterDriverNotImplemented   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/plugin/testing/label_machines.py LabelPrinterMachineTest   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/plugin/testing/label_machines.py (no class)   0% 35 35 0   100% 0 0   0%
src/backend/InvenTree/plugin/urls.py (no class)   33% 27 18 0   0% 10 0   24%
src/backend/InvenTree/plugins/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/admin.py ReportAdmin   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/report/admin.py ReportSnippetAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/admin.py ReportAssetAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/admin.py (no class)   100% 15 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py TemplatePermissionMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportFilterBase   31% 13 9 0   17% 6 1   26%
src/backend/InvenTree/report/api.py ReportFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py LabelFilter   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py LabelFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py LabelPrint   47% 55 29 0   50% 28 4   48%
src/backend/InvenTree/report/api.py LabelTemplateMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py LabelTemplateList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py LabelTemplateDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportPrint   10% 20 18 0   0% 4 0   8%
src/backend/InvenTree/report/api.py ReportTemplateMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportTemplateList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportTemplateDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportSnippetList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportSnippetDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportAssetList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py ReportAssetDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/api.py (no class)   100% 84 0 0   100% 0 0   100%
src/backend/InvenTree/report/apps.py ReportConfig   61% 72 28 0   65% 26 5   62%
src/backend/InvenTree/report/apps.py (no class)   100% 21 0 0   100% 0 0   100%
src/backend/InvenTree/report/fetcher.py InvenTreeURLFetcher   0% 23 23 0   0% 8 0   0%
src/backend/InvenTree/report/fetcher.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/report/helpers.py (no class)   68% 40 13 0   62% 8 1   67%
src/backend/InvenTree/report/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0001_initial.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0002_delete_reporttemplate.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0002_delete_reporttemplate.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0003_testreport_enabled.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0003_testreport_enabled.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0004_auto_20200823_1104.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0004_auto_20200823_1104.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0005_auto_20210119_0815.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0005_auto_20210119_0815.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0006_reportsnippet.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0006_reportsnippet.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0007_auto_20210204_1617.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0007_auto_20210204_1617.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0008_auto_20210204_2100.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0008_auto_20210204_2100.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0009_testreport_revision.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0009_testreport_revision.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0010_auto_20210205_1201.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0010_auto_20210205_1201.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0011_auto_20210212_2024.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0011_auto_20210212_2024.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0012_buildreport.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0012_buildreport.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0013_testreport_include_installed.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0013_testreport_include_installed.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0014_purchaseorderreport_salesorderreport.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0014_purchaseorderreport_salesorderreport.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0015_auto_20210403_1837.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0015_auto_20210403_1837.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0016_auto_20210513_1303.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0016_auto_20210513_1303.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0017_auto_20230317_0816.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0017_auto_20230317_0816.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0018_returnorderreport.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0018_returnorderreport.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0019_returnorderreport_metadata.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0019_returnorderreport_metadata.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0020_stocklocationreport.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0020_stocklocationreport.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0021_auto_20231009_0144.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0021_auto_20231009_0144.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0022_reporttemplate.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0022_reporttemplate.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0023_auto_20240421_0455.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0023_auto_20240421_0455.py (no class)   41% 39 23 0   25% 16 2   36%
src/backend/InvenTree/report/migrations/0024_delete_billofmaterialsreport_delete_buildreport_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0024_delete_billofmaterialsreport_delete_buildreport_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0025_labeltemplate.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0025_labeltemplate.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0026_auto_20240422_1301.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0026_auto_20240422_1301.py (no class)   49% 61 31 0   15% 20 1   41%
src/backend/InvenTree/report/migrations/0027_alter_labeltemplate_model_type_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0027_alter_labeltemplate_model_type_and_more.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0028_labeltemplate_attach_to_model_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0028_labeltemplate_attach_to_model_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0029_remove_reportoutput_template_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0029_remove_reportoutput_template_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0030_alter_labeltemplate_model_type_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0030_alter_labeltemplate_model_type_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0031_reporttemplate_merge.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0031_reporttemplate_merge.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0032_labeltemplate_updated_labeltemplate_updated_by_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/0032_labeltemplate_updated_labeltemplate_updated_by_and_more.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/report/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/mixins.py QuerySet   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/mixins.py BaseReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/mixins.py InvenTreeReportMixin   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/report/mixins.py InvenTreeReportMixin.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/mixins.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py TemplateUploadMixin   82% 17 3 0   50% 2 1   79%
src/backend/InvenTree/report/models.py BaseContextExtension   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py LabelContextExtension   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py ReportContextExtension   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py ReportTemplateBase   36% 22 14 0   50% 6 1   39%
src/backend/InvenTree/report/models.py ReportTemplateBase.ModelChoices   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py ReportTemplateBase.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py ReportTemplate   2% 140 137 0   0% 38 0   2%
src/backend/InvenTree/report/models.py LabelTemplate   3% 39 38 0   0% 12 0   2%
src/backend/InvenTree/report/models.py ReportSnippet   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py ReportAsset   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/models.py (no class)   90% 129 13 0   25% 4 1   88%
src/backend/InvenTree/report/serializers.py ReportSerializerBase   91% 11 1 0   50% 4 2   80%
src/backend/InvenTree/report/serializers.py ReportTemplateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportTemplateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportPrintSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportPrintSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py LabelPrintSerializer   50% 6 3 0   25% 4 1   40%
src/backend/InvenTree/report/serializers.py LabelPrintSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py LabelTemplateSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py LabelTemplateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportSnippetSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportSnippetSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportAssetSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py ReportAssetSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/serializers.py (no class)   100% 48 0 0   100% 0 0   100%
src/backend/InvenTree/report/tasks.py (no class)   18% 56 46 0   0% 10 0   15%
src/backend/InvenTree/report/templatetags/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/report/templatetags/barcode.py (no class)   24% 78 59 0   0% 14 0   21%
src/backend/InvenTree/report/templatetags/report.py (no class)   24% 562 426 0   0% 192 0   18%
src/backend/InvenTree/report/validators.py (no class)   89% 9 1 0   50% 2 1   82%
src/backend/InvenTree/stock/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/admin.py LocationInline   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/admin.py LocationAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/admin.py LocationTypeAdmin   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/stock/admin.py StockItemAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/admin.py StockTrackingAdmin   0% 3 3 0   100% 0 0   0%
src/backend/InvenTree/stock/admin.py StockItemTestResultAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/admin.py (no class)   100% 33 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py GenerateBatchCode   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py GenerateSerialNumber   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemContextMixin   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemSerialize   33% 6 4 0   100% 0 0   33%
src/backend/InvenTree/stock/api.py StockItemInstall   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemUninstall   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemConvert   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockAdjustView   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockChangeStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockCount   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockAdd   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockRemove   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockTransfer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockReturn   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockAssign   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockMerge   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationFilter   62% 26 10 0   58% 12 1   61%
src/backend/InvenTree/stock/api.py StockLocationFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationDetail   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py LocationTreeFilter   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py LocationTreeFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationTree   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationTypeList   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockLocationTypeDetail   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockFilter   2% 97 95 0   2% 46 1   2%
src/backend/InvenTree/stock/api.py StockFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockApiMixin   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockList   12% 85 75 0   6% 36 0   10%
src/backend/InvenTree/stock/api.py StockDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemSerialNumbers   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemTestResultMixin   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemTestResultOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemTestResultDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemTestResultFilter   62% 13 5 0   0% 2 0   53%
src/backend/InvenTree/stock/api.py StockItemTestResultFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockItemTestResultList   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/stock/api.py StockTrackingDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockTrackingOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockTrackingFilter   20% 5 4 0   0% 2 0   14%
src/backend/InvenTree/stock/api.py StockTrackingFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/api.py StockTrackingList   72% 25 7 0   50% 16 2   63%
src/backend/InvenTree/stock/api.py (no class)   100% 315 0 0   100% 0 0   100%
src/backend/InvenTree/stock/apps.py StockConfig   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/apps.py (no class)   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/events.py StockEvents   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/events.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/stock/filters.py (no class)   92% 12 1 0   50% 2 1   86%
src/backend/InvenTree/stock/generators.py (no class)   36% 50 32 0   12% 16 2   30%
src/backend/InvenTree/stock/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0001_initial.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0002_auto_20190525_2226.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0002_auto_20190525_2226.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0003_auto_20190525_2303.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0003_auto_20190525_2303.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0004_auto_20190525_2356.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0004_auto_20190525_2356.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0005_auto_20190602_1944.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0005_auto_20190602_1944.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0006_stockitem_purchase_order.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0006_stockitem_purchase_order.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0007_auto_20190618_0042.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0007_auto_20190618_0042.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0008_stockitemtracking_url.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0008_stockitemtracking_url.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0009_auto_20190715_2351.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0009_auto_20190715_2351.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0010_stockitem_build.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0010_stockitem_build.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0011_auto_20190908_0404.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0011_auto_20190908_0404.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0012_auto_20190908_0405.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0012_auto_20190908_0405.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0013_auto_20190908_0916.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0013_auto_20190908_0916.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0014_auto_20190908_0918.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0014_auto_20190908_0918.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0015_auto_20190913_1407.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0015_auto_20190913_1407.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0016_auto_20191118_2146.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0016_auto_20191118_2146.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0017_auto_20191118_2311.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0017_auto_20191118_2311.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0018_auto_20200202_0103.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0018_auto_20200202_0103.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0019_auto_20200202_1024.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0019_auto_20200202_1024.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0020_auto_20200206_1213.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0020_auto_20200206_1213.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0021_auto_20200215_2232.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0021_auto_20200215_2232.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0022_auto_20200217_1109.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0022_auto_20200217_1109.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0023_auto_20200318_1027.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0023_auto_20200318_1027.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0024_auto_20200405_2239.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0024_auto_20200405_2239.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0025_auto_20200405_2243.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0025_auto_20200405_2243.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0026_stockitem_uid.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0026_stockitem_uid.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0027_stockitem_sales_order.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0027_stockitem_sales_order.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0028_auto_20200421_0724.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0028_auto_20200421_0724.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0029_auto_20200421_2359.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0029_auto_20200421_2359.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0030_auto_20200422_0015.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0030_auto_20200422_0015.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0031_auto_20200422_0209.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0031_auto_20200422_0209.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0032_stockitem_build_order.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0032_stockitem_build_order.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0033_auto_20200426_0539.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0033_auto_20200426_0539.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0034_auto_20200426_0602.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0034_auto_20200426_0602.py (no class)   100% 8 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0035_auto_20200502_2308.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0035_auto_20200502_2308.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0036_stockitemattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0036_stockitemattachment.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0037_stockitemattachment_user.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0037_stockitemattachment_user.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0038_stockitemattachment_upload_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0038_stockitemattachment_upload_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0039_auto_20200513_0016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0039_auto_20200513_0016.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0040_stockitemtestresult.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0040_stockitemtestresult.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0041_stockitemtestresult_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0041_stockitemtestresult_notes.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0042_auto_20200523_0121.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0042_auto_20200523_0121.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0043_auto_20200525_0420.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0043_auto_20200525_0420.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0044_auto_20200528_1036.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0044_auto_20200528_1036.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0045_stockitem_customer.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0045_stockitem_customer.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0046_auto_20200605_0931.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0046_auto_20200605_0931.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0047_auto_20200605_0932.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0047_auto_20200605_0932.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0048_auto_20200807_2344.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0048_auto_20200807_2344.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0049_auto_20200820_0454.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0049_auto_20200820_0454.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0050_auto_20200821_1403.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0050_auto_20200821_1403.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0051_auto_20200928_0928.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0051_auto_20200928_0928.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0052_stockitem_is_building.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0052_stockitem_is_building.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0053_auto_20201110_0513.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0053_auto_20201110_0513.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0054_remove_stockitem_build_order.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0054_remove_stockitem_build_order.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0055_auto_20201117_1453.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0055_auto_20201117_1453.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0056_stockitem_expiry_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0056_stockitem_expiry_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0057_stock_location_item_owner.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0057_stock_location_item_owner.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0058_stockitem_packaging.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0058_stockitem_packaging.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0059_auto_20210404_2016.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0059_auto_20210404_2016.py (no class)   100% 11 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0060_auto_20210511_1713.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0060_auto_20210511_1713.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0061_auto_20210511_0911.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0061_auto_20210511_0911.py (no class)   13% 115 100 0   5% 66 3   10%
src/backend/InvenTree/stock/migrations/0062_auto_20210511_2151.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0062_auto_20210511_2151.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0063_auto_20210511_2343.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0063_auto_20210511_2343.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0064_auto_20210621_1724.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0064_auto_20210621_1724.py (no class)   50% 28 14 0   25% 12 3   42%
src/backend/InvenTree/stock/migrations/0065_auto_20210701_0509.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0065_auto_20210701_0509.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0066_stockitem_scheduled_for_deletion.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0066_stockitem_scheduled_for_deletion.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0067_alter_stockitem_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0067_alter_stockitem_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0068_stockitem_serial_int.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0068_stockitem_serial_int.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0069_auto_20211109_2347.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0069_auto_20211109_2347.py (no class)   38% 21 13 0   12% 8 1   31%
src/backend/InvenTree/stock/migrations/0070_auto_20211128_0151.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0070_auto_20211128_0151.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0071_auto_20211205_1733.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0071_auto_20211205_1733.py (no class)   71% 17 5 0   25% 4 1   62%
src/backend/InvenTree/stock/migrations/0072_remove_stockitem_scheduled_for_deletion.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0072_remove_stockitem_scheduled_for_deletion.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0073_alter_stockitem_belongs_to.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0073_alter_stockitem_belongs_to.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0074_alter_stockitem_batch.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0074_alter_stockitem_batch.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0075_auto_20220515_1440.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0075_auto_20220515_1440.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0076_alter_stockitem_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0076_alter_stockitem_status.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0077_alter_stockitem_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0077_alter_stockitem_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0078_alter_stockitem_supplier_part.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0078_alter_stockitem_supplier_part.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0079_alter_stocklocation_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0079_alter_stocklocation_name.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0080_stocklocation_pathstring.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0080_stocklocation_pathstring.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0081_auto_20220801_0044.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0081_auto_20220801_0044.py (no class)   47% 19 10 0   17% 6 1   40%
src/backend/InvenTree/stock/migrations/0082_alter_stockitem_link.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0082_alter_stockitem_link.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0083_stocklocation_icon.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0083_stocklocation_icon.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0084_auto_20220903_0154.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0084_auto_20220903_0154.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0085_auto_20220903_0225.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0085_auto_20220903_0225.py (no class)   50% 20 10 0   25% 8 2   43%
src/backend/InvenTree/stock/migrations/0086_remove_stockitem_uid.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0086_remove_stockitem_uid.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0087_auto_20220912_2341.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0087_auto_20220912_2341.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0088_remove_stockitem_infinite.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0088_remove_stockitem_infinite.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0089_alter_stockitem_purchase_price.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0089_alter_stockitem_purchase_price.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0090_stocklocation_structural.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0090_stocklocation_structural.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0091_alter_stockitem_delete_on_deplete.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0091_alter_stockitem_delete_on_deplete.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0092_alter_stockitem_updated.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0092_alter_stockitem_updated.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0093_auto_20230217_2140.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0093_auto_20230217_2140.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0094_auto_20230220_0025.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0094_auto_20230220_0025.py (no class)   60% 25 10 0   20% 10 2   49%
src/backend/InvenTree/stock/migrations/0095_stocklocation_external.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0095_stocklocation_external.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0096_auto_20230330_1121.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0096_auto_20230330_1121.py (no class)   55% 22 10 0   25% 8 2   47%
src/backend/InvenTree/stock/migrations/0097_alter_stockitem_notes.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0097_alter_stockitem_notes.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0098_auto_20230427_2033.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0098_auto_20230427_2033.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0099_alter_stockitem_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0099_alter_stockitem_status.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0100_auto_20230515_0004.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0100_auto_20230515_0004.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0100_stockitem_consumed_by.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0100_stockitem_consumed_by.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0101_stockitemtestresult_metadata.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0101_stockitemtestresult_metadata.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0102_alter_stockitem_status.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0102_alter_stockitem_status.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0103_stock_location_types.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0103_stock_location_types.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0104_alter_stockitem_purchase_price_currency.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0104_alter_stockitem_purchase_price_currency.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0105_stockitemtestresult_template.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0105_stockitemtestresult_template.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0106_auto_20240207_0353.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0106_auto_20240207_0353.py (no class)   30% 57 40 0   6% 18 1   24%
src/backend/InvenTree/stock/migrations/0107_remove_stockitemtestresult_test_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0107_remove_stockitemtestresult_test_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0108_auto_20240219_0252.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0108_auto_20240219_0252.py (no class)   30% 40 28 0   7% 14 1   24%
src/backend/InvenTree/stock/migrations/0109_add_additional_test_fields.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0109_add_additional_test_fields.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0110_alter_stockitemtestresult_finished_datetime_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0110_alter_stockitemtestresult_finished_datetime_and_more.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0111_delete_stockitemattachment.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0111_delete_stockitemattachment.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0112_alter_stocklocation_custom_icon_and_more.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0113_stockitem_status_custom_key_and_more.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0113_stockitem_status_custom_key_and_more.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0114_alter_stocklocation_custom_icon.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0114_alter_stocklocation_custom_icon.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0115_auto_20250221_1323.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0115_auto_20250221_1323.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0116_alter_stockitem_link.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0116_alter_stockitem_link.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0117_stockitemtracking_part_alter_stockitemtracking_item.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0117_stockitemtracking_part_alter_stockitemtracking_item.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0118_auto_20260205_1218.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0118_auto_20260205_1218.py (no class)   35% 34 22 0   19% 16 3   30%
src/backend/InvenTree/stock/migrations/0119_alter_stockitemtestresult_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0119_alter_stockitemtestresult_date.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0120_stockitem_creation_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0120_stockitem_creation_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0121_auto_20260526_0849.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0121_auto_20260526_0849.py (no class)   40% 40 24 0   14% 14 2   33%
src/backend/InvenTree/stock/migrations/0122_alter_stockitem_creation_date.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0122_alter_stockitem_creation_date.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0123_remove_stockitem_review_needed.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/0123_remove_stockitem_review_needed.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/stock/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockLocationType   50% 2 1 0   100% 0 0   50%
src/backend/InvenTree/stock/models.py StockLocationType.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockLocationReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockLocation   19% 36 29 0   20% 20 4   20%
src/backend/InvenTree/stock/models.py StockLocation.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockItemReportContext   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockSortOrder   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockItem   1% 839 837 0   0% 444 0   1%
src/backend/InvenTree/stock/models.py StockItem.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockItem.MPTTMeta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockItemTracking   12% 8 7 0   0% 4 0   8%
src/backend/InvenTree/stock/models.py StockItemTracking.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py StockItemTestResult   5% 21 20 0   0% 10 0   3%
src/backend/InvenTree/stock/models.py StockItemTestResult.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/models.py (no class)   95% 329 18 0   0% 16 0   90%
src/backend/InvenTree/stock/serializers.py GenerateBatchCodeSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py GenerateBatchCodeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py GenerateSerialNumberSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py GenerateSerialNumberSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationBriefSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationBriefSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockItemTestResultSerializer   16% 25 21 0   8% 12 1   14%
src/backend/InvenTree/stock/serializers.py StockItemTestResultSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockItemSerializer   48% 23 12 0   0% 4 0   41%
src/backend/InvenTree/stock/serializers.py StockItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py SerializeStockItemSerializer   9% 35 32 0   7% 14 1   8%
src/backend/InvenTree/stock/serializers.py SerializeStockItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py InstallStockItemSerializer   9% 23 21 0   10% 10 1   9%
src/backend/InvenTree/stock/serializers.py UninstallStockItemSerializer   0% 8 8 0   0% 2 0   0%
src/backend/InvenTree/stock/serializers.py UninstallStockItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py ConvertStockItemSerializer   0% 15 15 0   0% 4 0   0%
src/backend/InvenTree/stock/serializers.py ConvertStockItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockStatusCustomSerializer   89% 9 1 0   62% 8 3   76%
src/backend/InvenTree/stock/serializers.py StockChangeStatusSerializer   7% 27 25 0   10% 10 1   8%
src/backend/InvenTree/stock/serializers.py StockChangeStatusSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockLocationTypeSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockLocationTypeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationTreeSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationTreeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationDeleteSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationDeleteSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationSerializer   100% 3 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py LocationSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockTrackingSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockTrackingSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockAssignmentItemSerializer   0% 11 11 0   0% 10 0   0%
src/backend/InvenTree/stock/serializers.py StockAssignmentItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockAssignmentSerializer   0% 18 18 0   0% 6 0   0%
src/backend/InvenTree/stock/serializers.py StockAssignmentSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockMergeItemSerializer   0% 2 2 0   100% 0 0   0%
src/backend/InvenTree/stock/serializers.py StockMergeItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockMergeSerializer   0% 25 25 0   0% 10 0   0%
src/backend/InvenTree/stock/serializers.py StockMergeSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockAdjustmentItemSerializer   38% 16 10 0   17% 12 2   29%
src/backend/InvenTree/stock/serializers.py StockAdjustmentItemSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockAdjustmentSerializer   80% 5 1 0   50% 2 1   71%
src/backend/InvenTree/stock/serializers.py StockAdjustmentSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockCountSerializer   0% 16 16 0   0% 8 0   0%
src/backend/InvenTree/stock/serializers.py StockCountSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockAddSerializer   0% 14 14 0   0% 8 0   0%
src/backend/InvenTree/stock/serializers.py StockRemoveSerializer   0% 14 14 0   0% 8 0   0%
src/backend/InvenTree/stock/serializers.py StockTransferSerializer   0% 14 14 0   0% 6 0   0%
src/backend/InvenTree/stock/serializers.py StockTransferSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockReturnSerializer   0% 15 15 0   0% 6 0   0%
src/backend/InvenTree/stock/serializers.py StockReturnSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockItemSerialNumbersSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py StockItemSerialNumbersSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/serializers.py (no class)   100% 278 0 0   100% 0 0   100%
src/backend/InvenTree/stock/status_codes.py StockStatus   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/status_codes.py StockStatusGroups   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/status_codes.py StockHistoryCode   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/stock/status_codes.py (no class)   100% 42 0 0   100% 0 0   100%
src/backend/InvenTree/stock/tasks.py (no class)   27% 49 36 0   0% 8 0   23%
src/backend/InvenTree/users/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/admin.py ApiTokenAdmin   0% 7 7 0   0% 2 0   0%
src/backend/InvenTree/users/admin.py RuleSetInline   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/admin.py InvenTreeGroupAdminForm   0% 7 7 0   0% 2 0   0%
src/backend/InvenTree/users/admin.py InvenTreeGroupAdminForm.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/admin.py InvenTreeUserAdmin   0% 4 4 0   0% 2 0   0%
src/backend/InvenTree/users/admin.py OwnerAdmin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/admin.py (no class)   100% 46 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py OwnerFilter   93% 14 1 0   62% 8 3   82%
src/backend/InvenTree/users/api.py OwnerFilter.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py OwnerList   100% 16 0 0   80% 10 2   92%
src/backend/InvenTree/users/api.py OwnerDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py RoleDetails   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py UserDetail   0% 3 3 0   0% 2 0   0%
src/backend/InvenTree/users/api.py UserDetailSetPassword   0% 13 13 0   0% 4 0   0%
src/backend/InvenTree/users/api.py MeUserDetail   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py UserList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py GroupMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py GroupOutputOptions   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py GroupDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py GroupList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py RuleSetMixin   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py RuleSetList   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py RuleSetDetail   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py GetAuthToken   95% 20 1 0   67% 6 2   88%
src/backend/InvenTree/users/api.py TokenMixin   100% 4 0 0   100% 2 0   100%
src/backend/InvenTree/users/api.py TokenListView   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py TokenDetailView   100% 2 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py LoginRedirect   0% 1 1 0   100% 0 0   0%
src/backend/InvenTree/users/api.py UserProfileDetail   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/users/api.py (no class)   100% 124 0 0   100% 0 0   100%
src/backend/InvenTree/users/apps.py UsersConfig   56% 25 11 0   60% 10 4   57%
src/backend/InvenTree/users/apps.py (no class)   100% 9 0 0   100% 0 0   100%
src/backend/InvenTree/users/authentication.py ApiTokenAuthentication   0% 9 9 0   0% 6 0   0%
src/backend/InvenTree/users/authentication.py ExtendedOAuth2Authentication   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/authentication.py (no class)   100% 10 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0001_initial.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0001_initial.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0002_auto_20201004_0158.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0002_auto_20201004_0158.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0003_auto_20201005_2227.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0003_auto_20201005_2227.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0004_auto_20210113_1909.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0004_auto_20210113_1909.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0005_owner_model.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0005_owner_model.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0006_alter_ruleset_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0006_alter_ruleset_name.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0007_alter_ruleset_name.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0007_alter_ruleset_name.py (no class)   100% 5 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0008_apitoken.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0008_apitoken.py (no class)   100% 7 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0009_auto_20231020_2356.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0009_auto_20231020_2356.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0010_alter_apitoken_key.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0010_alter_apitoken_key.py (no class)   100% 6 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0011_auto_20240523_1640.py (no class)   89% 18 2 0   50% 2 1   85%
src/backend/InvenTree/users/migrations/0012_alter_ruleset_can_view.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0012_alter_ruleset_can_view.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0013_migrate_mfa_20240408_1659.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0013_migrate_mfa_20240408_1659.py (no class)   67% 21 7 0   25% 4 1   60%
src/backend/InvenTree/users/migrations/0014_userprofile.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0014_userprofile.py (no class)   91% 11 1 0   50% 2 1   85%
src/backend/InvenTree/users/migrations/0015_alter_userprofile_type.py Migration   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/0015_alter_userprofile_type.py (no class)   100% 4 0 0   100% 0 0   100%
src/backend/InvenTree/users/migrations/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/models.py ApiToken   86% 14 2 0   50% 2 1   81%
src/backend/InvenTree/users/models.py ApiToken.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/models.py RuleSet   58% 12 5 0   38% 8 3   50%
src/backend/InvenTree/users/models.py RuleSet.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/models.py Owner   51% 59 29 0   36% 22 4   47%
src/backend/InvenTree/users/models.py Owner.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/models.py UserProfile   50% 4 2 0   50% 2 1   50%
src/backend/InvenTree/users/models.py UserProfile.UserType   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/models.py (no class)   85% 165 24 0   29% 28 6   77%
src/backend/InvenTree/users/oauth2_scopes.py (no class)   100% 11 0 0   100% 2 0   100%
src/backend/InvenTree/users/permissions.py (no class)   36% 73 47 0   14% 42 6   28%
src/backend/InvenTree/users/ruleset.py RuleSetEnum   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/ruleset.py (no class)   92% 26 2 0   50% 2 1   89%
src/backend/InvenTree/users/serializers.py OwnerSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py OwnerSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py RuleSetSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py RuleSetSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py RoleSerializer   88% 16 2 0   70% 10 3   81%
src/backend/InvenTree/users/serializers.py RoleSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py GetAuthTokenSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py GetAuthTokenSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py BriefUserProfileSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py BriefUserProfileSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserProfileSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserProfileSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py ApiTokenSerializer   83% 12 2 0   50% 6 3   72%
src/backend/InvenTree/users/serializers.py ApiTokenSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py GroupSerializer   100% 1 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py GroupSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py ExtendedUserSerializer   40% 10 6 0   50% 6 1   44%
src/backend/InvenTree/users/serializers.py ExtendedUserSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserSetPasswordSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserSetPasswordSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py MeUserSerializer   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py MeUserSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py UserCreateSerializer   94% 17 1 0   50% 4 2   86%
src/backend/InvenTree/users/serializers.py UserCreateSerializer.Meta   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/users/serializers.py (no class)   100% 118 0 0   100% 6 0   100%
src/backend/InvenTree/users/tasks.py (no class)   54% 94 43 0   48% 52 11   52%
src/backend/InvenTree/web/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/web/templatetags/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
src/backend/InvenTree/web/templatetags/spa_helper.py (no class)   39% 36 22 0   0% 6 0   33%
src/backend/InvenTree/web/urls.py (no class)   100% 8 0 0   100% 0 0   100%
Total     59% 37680 15387 0   23% 9692 1104   52%

No items found using the specified filter.