Coverage report: 59%
Files Functions Classes
coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
| Statements | Branches | Total | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| File | coverage | statements | missing | excluded | coverage | branches | partial | coverage | |||
| account/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| account/models.py | 89% | 9 | 1 | 0 | 100% | 0 | 0 | 89% | |||
| account/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| account/views.py | 48% | 221 | 116 | 0 | 5% | 42 | 2 | 41% | |||
| circuits/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/serializers.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/serializers_/circuits.py | 100% | 95 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/serializers_/nested.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/serializers_/providers.py | 100% | 29 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/urls.py | 100% | 17 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/api/views.py | 98% | 53 | 1 | 0 | 100% | 0 | 0 | 98% | |||
| circuits/apps.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/choices.py | 100% | 33 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/constants.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/filtersets.py | 80% | 189 | 38 | 0 | 0% | 22 | 0 | 72% | |||
| circuits/forms/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/forms/bulk_edit.py | 100% | 89 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/forms/bulk_import.py | 100% | 92 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/forms/filtersets.py | 100% | 105 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/forms/model_forms.py | 91% | 108 | 10 | 0 | 0% | 4 | 0 | 88% | |||
| circuits/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/graphql/enums.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/graphql/filter_mixins.py | 91% | 11 | 1 | 0 | 50% | 2 | 1 | 85% | |||
| circuits/graphql/filters.py | 95% | 102 | 5 | 0 | 50% | 2 | 1 | 94% | |||
| circuits/graphql/schema.py | 100% | 27 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/graphql/types.py | 91% | 47 | 4 | 0 | 50% | 2 | 1 | 90% | |||
| circuits/models/__init__.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/models/base.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/models/circuits.py | 61% | 164 | 64 | 0 | 0% | 26 | 0 | 53% | |||
| circuits/models/providers.py | 88% | 42 | 5 | 0 | 0% | 2 | 0 | 84% | |||
| circuits/models/virtual_circuits.py | 71% | 79 | 23 | 0 | 0% | 10 | 0 | 63% | |||
| circuits/search.py | 100% | 52 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/signals.py | 60% | 10 | 4 | 0 | 0% | 4 | 0 | 43% | |||
| circuits/tables/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/tables/circuits.py | 100% | 67 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/tables/columns.py | 88% | 8 | 1 | 0 | 100% | 0 | 0 | 88% | |||
| circuits/tables/providers.py | 100% | 37 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/tables/virtual_circuits.py | 100% | 40 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/ui/panels.py | 88% | 98 | 12 | 0 | 0% | 6 | 0 | 83% | |||
| circuits/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| circuits/views.py | 98% | 440 | 10 | 0 | 100% | 0 | 0 | 98% | |||
| core/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/schema.py | 91% | 232 | 21 | 0 | 80% | 100 | 16 | 88% | |||
| core/api/serializers.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/serializers_/change_logging.py | 100% | 19 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/serializers_/data.py | 100% | 21 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/serializers_/jobs.py | 80% | 30 | 6 | 0 | 50% | 2 | 1 | 78% | |||
| core/api/serializers_/object_types.py | 94% | 34 | 2 | 0 | 50% | 4 | 2 | 89% | |||
| core/api/serializers_/tasks.py | 98% | 66 | 1 | 0 | 100% | 0 | 0 | 98% | |||
| core/api/urls.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/api/views.py | 85% | 158 | 23 | 0 | 36% | 14 | 3 | 81% | |||
| core/apps.py | 89% | 36 | 4 | 0 | 50% | 2 | 1 | 87% | |||
| core/checks.py | 66% | 67 | 23 | 0 | 55% | 20 | 7 | 63% | |||
| core/choices.py | 100% | 39 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/constants.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/data_backends.py | 44% | 122 | 68 | 0 | 0% | 24 | 0 | 37% | |||
| core/dataclasses.py | 91% | 11 | 1 | 0 | 100% | 0 | 0 | 91% | |||
| core/events.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/exceptions.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/filtersets.py | 85% | 107 | 16 | 0 | 8% | 12 | 1 | 77% | |||
| core/forms/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/forms/bulk_edit.py | 100% | 19 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/forms/bulk_import.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/forms/filtersets.py | 100% | 53 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/forms/mixins.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/forms/model_forms.py | 48% | 114 | 59 | 0 | 11% | 36 | 0 | 39% | |||
| core/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/graphql/enums.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/graphql/filter_mixins.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/graphql/filters.py | 96% | 52 | 2 | 0 | 50% | 2 | 1 | 94% | |||
| core/graphql/mixins.py | 78% | 18 | 4 | 0 | 50% | 2 | 1 | 75% | |||
| core/graphql/schema.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/graphql/types.py | 100% | 17 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/jobs.py | 24% | 131 | 99 | 0 | 0% | 26 | 0 | 20% | |||
| core/management/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/management/commands/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/management/commands/makemigrations.py | 62% | 8 | 3 | 0 | 0% | 2 | 0 | 50% | |||
| core/management/commands/nbshell.py | 0% | 77 | 77 | 0 | 0% | 22 | 0 | 0% | |||
| core/management/commands/rqworker.py | 0% | 20 | 20 | 0 | 0% | 4 | 0 | 0% | |||
| core/management/commands/syncdatasource.py | 0% | 31 | 31 | 0 | 0% | 12 | 0 | 0% | |||
| core/management/commands/upgrade.py | 0% | 55 | 55 | 0 | 0% | 20 | 0 | 0% | |||
| core/models/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/models/change_logging.py | 80% | 92 | 18 | 0 | 50% | 22 | 5 | 75% | |||
| core/models/config.py | 58% | 45 | 19 | 0 | 0% | 10 | 0 | 47% | |||
| core/models/data.py | 42% | 205 | 118 | 0 | 0% | 52 | 0 | 34% | |||
| core/models/files.py | 66% | 62 | 21 | 0 | 25% | 8 | 2 | 61% | |||
| core/models/jobs.py | 61% | 138 | 54 | 0 | 15% | 34 | 5 | 52% | |||
| core/models/object_types.py | 74% | 115 | 30 | 0 | 47% | 38 | 8 | 67% | |||
| core/object_actions.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/plugins.py | 48% | 113 | 59 | 0 | 0% | 26 | 0 | 39% | |||
| core/querysets.py | 85% | 13 | 2 | 0 | 100% | 0 | 0 | 85% | |||
| core/search.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/signals.py | 67% | 190 | 62 | 0 | 56% | 72 | 8 | 64% | |||
| core/tables/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/tables/change_logging.py | 100% | 20 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/tables/columns.py | 62% | 21 | 8 | 0 | 0% | 2 | 0 | 57% | |||
| core/tables/config.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/tables/data.py | 100% | 30 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/tables/jobs.py | 85% | 46 | 7 | 0 | 0% | 2 | 0 | 81% | |||
| core/tables/plugins.py | 100% | 30 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/tables/tasks.py | 92% | 49 | 4 | 0 | 100% | 0 | 0 | 92% | |||
| core/tables/template_code.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/ui/panels.py | 100% | 50 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| core/utils.py | 44% | 103 | 58 | 0 | 9% | 22 | 0 | 38% | |||
| core/views.py | 54% | 434 | 198 | 0 | 0% | 56 | 0 | 48% | |||
| dcim/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/exceptions.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/base.py | 48% | 61 | 32 | 0 | 15% | 20 | 3 | 40% | |||
| dcim/api/serializers_/cables.py | 82% | 79 | 14 | 0 | 20% | 10 | 2 | 75% | |||
| dcim/api/serializers_/cooling.py | 100% | 30 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/device_components.py | 94% | 224 | 13 | 0 | 46% | 26 | 10 | 89% | |||
| dcim/api/serializers_/devices.py | 64% | 164 | 59 | 0 | 0% | 32 | 0 | 54% | |||
| dcim/api/serializers_/devicetype_components.py | 100% | 141 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/devicetypes.py | 100% | 72 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/manufacturers.py | 100% | 13 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/mixins.py | 56% | 52 | 23 | 0 | 28% | 18 | 5 | 49% | |||
| dcim/api/serializers_/nested.py | 100% | 66 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/platforms.py | 100% | 17 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/power.py | 100% | 30 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/racks.py | 99% | 82 | 1 | 0 | 100% | 0 | 0 | 99% | |||
| dcim/api/serializers_/rackunits.py | 90% | 21 | 2 | 0 | 100% | 0 | 0 | 90% | |||
| dcim/api/serializers_/roles.py | 100% | 22 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/sites.py | 100% | 56 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/serializers_/virtualchassis.py | 100% | 13 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/urls.py | 100% | 60 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/api/views.py | 85% | 320 | 48 | 0 | 17% | 24 | 2 | 80% | |||
| dcim/apps.py | 100% | 11 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/base_filtersets.py | 100% | 16 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/cable_profiles.py | 0% | 166 | 166 | 0 | 0% | 28 | 0 | 0% | |||
| dcim/choices.py | 100% | 850 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/constants.py | 100% | 32 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/exceptions.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/fields.py | 85% | 60 | 9 | 0 | 60% | 10 | 4 | 81% | |||
| dcim/filtersets.py | 79% | 1063 | 226 | 0 | 2% | 94 | 2 | 73% | |||
| dcim/forms/__init__.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/forms/bulk_create.py | 100% | 50 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/forms/bulk_edit.py | 88% | 563 | 70 | 0 | 0% | 32 | 0 | 83% | |||
| dcim/forms/bulk_import.py | 53% | 790 | 369 | 0 | 0% | 184 | 0 | 43% | |||
| dcim/forms/common.py | 20% | 94 | 75 | 0 | 0% | 44 | 0 | 14% | |||
| dcim/forms/connections.py | 16% | 51 | 43 | 0 | 0% | 28 | 0 | 10% | |||
| dcim/forms/filtersets.py | 100% | 544 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/forms/formsets.py | 36% | 14 | 9 | 0 | 0% | 6 | 0 | 25% | |||
| dcim/forms/mixins.py | 33% | 70 | 47 | 0 | 0% | 22 | 0 | 25% | |||
| dcim/forms/model_forms.py | 72% | 702 | 195 | 0 | 0% | 106 | 0 | 63% | |||
| dcim/forms/object_create.py | 79% | 145 | 30 | 0 | 0% | 16 | 0 | 71% | |||
| dcim/forms/object_import.py | 58% | 146 | 62 | 0 | 0% | 34 | 0 | 47% | |||
| dcim/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/graphql/enums.py | 100% | 50 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/graphql/filter_mixins.py | 94% | 85 | 5 | 0 | 50% | 2 | 1 | 93% | |||
| dcim/graphql/filters.py | 95% | 587 | 29 | 0 | 8% | 12 | 1 | 93% | |||
| dcim/graphql/gfk_mixins.py | 0% | 71 | 71 | 0 | 0% | 48 | 0 | 0% | |||
| dcim/graphql/mixins.py | 80% | 10 | 2 | 0 | 50% | 2 | 1 | 75% | |||
| dcim/graphql/schema.py | 100% | 109 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/graphql/types.py | 84% | 231 | 36 | 0 | 25% | 4 | 1 | 83% | |||
| dcim/lookups.py | 67% | 6 | 2 | 0 | 100% | 0 | 0 | 67% | |||
| dcim/management/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/management/commands/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/management/commands/buildschema.py | 0% | 29 | 29 | 0 | 0% | 2 | 0 | 0% | |||
| dcim/management/commands/trace_paths.py | 50% | 54 | 27 | 0 | 35% | 20 | 3 | 46% | |||
| dcim/models/__init__.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/models/base.py | 79% | 19 | 4 | 0 | 0% | 2 | 0 | 71% | |||
| dcim/models/cables.py | 26% | 670 | 497 | 0 | 2% | 304 | 7 | 18% | |||
| dcim/models/cooling.py | 81% | 57 | 11 | 0 | 0% | 4 | 0 | 75% | |||
| dcim/models/device_component_templates.py | 67% | 344 | 113 | 0 | 12% | 66 | 4 | 58% | |||
| dcim/models/device_components.py | 60% | 650 | 260 | 0 | 18% | 210 | 35 | 50% | |||
| dcim/models/devices.py | 63% | 512 | 191 | 0 | 26% | 202 | 41 | 52% | |||
| dcim/models/mixins.py | 58% | 207 | 87 | 0 | 30% | 86 | 22 | 50% | |||
| dcim/models/module_moves.py | 13% | 485 | 420 | 0 | 0% | 226 | 0 | 9% | |||
| dcim/models/modules.py | 36% | 294 | 188 | 0 | 0% | 112 | 0 | 26% | |||
| dcim/models/power.py | 74% | 68 | 18 | 0 | 0% | 8 | 0 | 66% | |||
| dcim/models/racks.py | 48% | 279 | 146 | 0 | 0% | 98 | 0 | 35% | |||
| dcim/models/sites.py | 92% | 85 | 7 | 0 | 0% | 2 | 0 | 90% | |||
| dcim/object_actions.py | 94% | 17 | 1 | 0 | 100% | 0 | 0 | 94% | |||
| dcim/search.py | 100% | 202 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/signals.py | 34% | 195 | 129 | 0 | 15% | 98 | 11 | 28% | |||
| dcim/svg/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/svg/cables.py | 16% | 257 | 215 | 0 | 0% | 86 | 0 | 12% | |||
| dcim/svg/racks.py | 22% | 183 | 142 | 0 | 0% | 38 | 0 | 19% | |||
| dcim/tables/__init__.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/cables.py | 81% | 59 | 11 | 0 | 0% | 8 | 0 | 72% | |||
| dcim/tables/connections.py | 100% | 28 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/cooling.py | 100% | 87 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/devices.py | 91% | 396 | 36 | 0 | 0% | 16 | 0 | 87% | |||
| dcim/tables/devicetypes.py | 100% | 125 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/modules.py | 100% | 49 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/power.py | 100% | 32 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/racks.py | 100% | 81 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/sites.py | 100% | 46 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/tables/template_code.py | 100% | 28 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/ui/panels.py | 94% | 434 | 27 | 0 | 0% | 6 | 0 | 92% | |||
| dcim/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| dcim/utils.py | 22% | 147 | 114 | 0 | 4% | 72 | 3 | 16% | |||
| dcim/views.py | 87% | 2819 | 355 | 0 | 0% | 102 | 0 | 84% | |||
| extras/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/customfields.py | 53% | 94 | 44 | 0 | 30% | 46 | 4 | 46% | |||
| extras/api/mixins.py | 73% | 56 | 15 | 0 | 58% | 12 | 1 | 71% | |||
| extras/api/routers.py | 100% | 13 | 0 | 0 | 100% | 2 | 0 | 100% | |||
| extras/api/serializers.py | 100% | 15 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/attachments.py | 76% | 25 | 6 | 0 | 100% | 0 | 0 | 76% | |||
| extras/api/serializers_/bookmarks.py | 100% | 15 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/configcontexts.py | 100% | 46 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/configtemplates.py | 100% | 28 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/customfields.py | 71% | 52 | 15 | 0 | 0% | 12 | 0 | 58% | |||
| extras/api/serializers_/customlinks.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/dashboard.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/events.py | 100% | 30 | 0 | 0 | 50% | 2 | 1 | 97% | |||
| extras/api/serializers_/exporttemplates.py | 100% | 16 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/journaling.py | 81% | 31 | 6 | 0 | 50% | 4 | 0 | 77% | |||
| extras/api/serializers_/notifications.py | 100% | 31 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/savedfilters.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/scripts.py | 51% | 136 | 67 | 0 | 12% | 32 | 4 | 43% | |||
| extras/api/serializers_/tableconfigs.py | 100% | 11 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/serializers_/tags.py | 82% | 33 | 6 | 0 | 100% | 0 | 0 | 82% | |||
| extras/api/urls.py | 100% | 28 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/api/views.py | 80% | 221 | 44 | 0 | 38% | 26 | 2 | 76% | |||
| extras/apps.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/cache.py | 80% | 55 | 11 | 0 | 54% | 26 | 8 | 72% | |||
| extras/choices.py | 100% | 110 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/conditions.py | 26% | 188 | 140 | 0 | 0% | 72 | 0 | 18% | |||
| extras/constants.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/dashboard/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/dashboard/forms.py | 93% | 15 | 1 | 0 | 100% | 0 | 0 | 93% | |||
| extras/dashboard/utils.py | 42% | 36 | 21 | 0 | 0% | 4 | 0 | 38% | |||
| extras/dashboard/widgets.py | 44% | 255 | 143 | 0 | 0% | 52 | 0 | 36% | |||
| extras/data/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/data/iata.py | 100% | 1 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/data/iso_3166.py | 100% | 1 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/data/un_locode.py | 100% | 1 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/event_rules.py | 62% | 61 | 23 | 0 | 0% | 6 | 0 | 57% | |||
| extras/events.py | 61% | 109 | 43 | 0 | 40% | 48 | 7 | 54% | |||
| extras/fields.py | 100% | 13 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/filters.py | 53% | 45 | 21 | 0 | 0% | 12 | 0 | 42% | |||
| extras/filtersets.py | 73% | 344 | 93 | 0 | 5% | 62 | 1 | 63% | |||
| extras/forms/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/forms/bulk_edit.py | 100% | 124 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/forms/bulk_import.py | 56% | 181 | 79 | 0 | 0% | 36 | 0 | 47% | |||
| extras/forms/filtersets.py | 100% | 153 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/forms/misc.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/forms/model_forms.py | 54% | 353 | 163 | 0 | 0% | 84 | 0 | 43% | |||
| extras/forms/reports.py | 0% | 23 | 23 | 0 | 0% | 6 | 0 | 0% | |||
| extras/forms/scripts.py | 35% | 54 | 35 | 0 | 0% | 14 | 0 | 28% | |||
| extras/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/graphql/enums.py | 100% | 17 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/graphql/filter_lookups.py | 71% | 17 | 5 | 0 | 0% | 4 | 0 | 57% | |||
| extras/graphql/filter_mixins.py | 90% | 20 | 2 | 0 | 50% | 2 | 1 | 86% | |||
| extras/graphql/filters.py | 90% | 223 | 23 | 0 | 7% | 14 | 1 | 85% | |||
| extras/graphql/mixins.py | 74% | 42 | 11 | 0 | 25% | 4 | 1 | 70% | |||
| extras/graphql/schema.py | 100% | 39 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/graphql/types.py | 90% | 59 | 6 | 0 | 50% | 2 | 1 | 89% | |||
| extras/jobs.py | 30% | 155 | 108 | 0 | 0% | 44 | 0 | 24% | |||
| extras/lookups.py | 68% | 85 | 27 | 0 | 50% | 8 | 0 | 67% | |||
| extras/management/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/management/commands/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/management/commands/populate_image_sizes.py | 0% | 37 | 37 | 0 | 0% | 20 | 0 | 0% | |||
| extras/management/commands/rebuild_config_context_cache.py | 0% | 23 | 23 | 0 | 0% | 6 | 0 | 0% | |||
| extras/management/commands/reindex.py | 60% | 63 | 25 | 0 | 40% | 30 | 6 | 54% | |||
| extras/management/commands/renaturalize.py | 0% | 62 | 62 | 0 | 0% | 32 | 0 | 0% | |||
| extras/management/commands/runscript.py | 0% | 62 | 62 | 0 | 0% | 10 | 0 | 0% | |||
| extras/management/commands/webhook_receiver.py | 0% | 47 | 47 | 0 | 0% | 10 | 0 | 0% | |||
| extras/managers.py | 41% | 39 | 23 | 0 | 25% | 8 | 0 | 38% | |||
| extras/models/__init__.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/models/configs.py | 55% | 205 | 92 | 0 | 16% | 56 | 5 | 47% | |||
| extras/models/customfields.py | 27% | 559 | 408 | 0 | 1% | 310 | 0 | 18% | |||
| extras/models/dashboard.py | 48% | 31 | 16 | 0 | 0% | 2 | 0 | 45% | |||
| extras/models/mixins.py | 37% | 134 | 84 | 0 | 0% | 38 | 0 | 29% | |||
| extras/models/models.py | 59% | 428 | 174 | 0 | 7% | 74 | 5 | 52% | |||
| extras/models/notifications.py | 77% | 96 | 22 | 0 | 0% | 10 | 0 | 70% | |||
| extras/models/scripts.py | 54% | 114 | 53 | 0 | 0% | 14 | 0 | 48% | |||
| extras/models/search.py | 72% | 36 | 10 | 0 | 0% | 6 | 0 | 62% | |||
| extras/models/tags.py | 86% | 43 | 6 | 0 | 0% | 2 | 0 | 82% | |||
| extras/querysets.py | 91% | 57 | 5 | 0 | 50% | 12 | 4 | 84% | |||
| extras/reports.py | 0% | 16 | 16 | 0 | 100% | 0 | 0 | 0% | |||
| extras/scripts.py | 38% | 333 | 206 | 0 | 0% | 98 | 0 | 29% | |||
| extras/search.py | 100% | 33 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/signals.py | 69% | 181 | 57 | 0 | 44% | 68 | 8 | 62% | |||
| extras/storage.py | 86% | 7 | 1 | 0 | 100% | 0 | 0 | 86% | |||
| extras/tables/__init__.py | 100% | 1 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/tables/columns.py | 80% | 15 | 3 | 0 | 100% | 0 | 0 | 80% | |||
| extras/tables/tables.py | 96% | 291 | 12 | 0 | 0% | 2 | 0 | 95% | |||
| extras/templatetags/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/templatetags/custom_links.py | 30% | 43 | 30 | 0 | 0% | 18 | 0 | 21% | |||
| extras/templatetags/dashboard.py | 50% | 14 | 7 | 0 | 100% | 0 | 0 | 50% | |||
| extras/templatetags/log_levels.py | 83% | 6 | 1 | 0 | 100% | 0 | 0 | 83% | |||
| extras/ui/panels.py | 93% | 227 | 16 | 0 | 0% | 2 | 0 | 92% | |||
| extras/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| extras/utils.py | 38% | 80 | 50 | 0 | 25% | 16 | 2 | 35% | |||
| extras/validators.py | 41% | 82 | 48 | 0 | 0% | 24 | 0 | 32% | |||
| extras/views.py | 70% | 1048 | 311 | 0 | 0% | 118 | 0 | 63% | |||
| extras/webhooks.py | 0% | 80 | 80 | 0 | 0% | 18 | 0 | 0% | |||
| generate_secret_key.py | 0% | 2 | 2 | 0 | 100% | 0 | 0 | 0% | |||
| ipam/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/field_serializers.py | 92% | 26 | 2 | 0 | 100% | 0 | 0 | 92% | |||
| ipam/api/serializers.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/serializers_/asns.py | 96% | 45 | 2 | 0 | 100% | 0 | 0 | 96% | |||
| ipam/api/serializers_/fhrpgroups.py | 100% | 21 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/serializers_/ip.py | 86% | 120 | 17 | 0 | 36% | 22 | 4 | 78% | |||
| ipam/api/serializers_/nested.py | 100% | 15 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/serializers_/roles.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/serializers_/services.py | 63% | 63 | 23 | 0 | 0% | 14 | 0 | 52% | |||
| ipam/api/serializers_/vlans.py | 99% | 68 | 1 | 0 | 100% | 0 | 0 | 99% | |||
| ipam/api/serializers_/vrfs.py | 100% | 21 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/urls.py | 100% | 26 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/api/views.py | 90% | 276 | 28 | 0 | 47% | 30 | 8 | 86% | |||
| ipam/apps.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/choices.py | 100% | 65 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/constants.py | 100% | 18 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/fields.py | 86% | 95 | 13 | 0 | 40% | 10 | 2 | 82% | |||
| ipam/filtersets.py | 56% | 625 | 274 | 0 | 4% | 116 | 5 | 48% | |||
| ipam/formfields.py | 29% | 38 | 27 | 0 | 0% | 10 | 0 | 23% | |||
| ipam/forms/__init__.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/forms/bulk_create.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/forms/bulk_edit.py | 100% | 140 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/forms/bulk_import.py | 57% | 262 | 113 | 0 | 0% | 72 | 0 | 45% | |||
| ipam/forms/fields.py | 24% | 55 | 42 | 0 | 0% | 20 | 0 | 17% | |||
| ipam/forms/filtersets.py | 100% | 170 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/forms/model_forms.py | 59% | 319 | 131 | 0 | 0% | 84 | 0 | 47% | |||
| ipam/forms/widgets.py | 44% | 25 | 14 | 0 | 0% | 6 | 0 | 35% | |||
| ipam/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/graphql/enums.py | 100% | 13 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/graphql/filters.py | 68% | 298 | 96 | 0 | 3% | 32 | 1 | 62% | |||
| ipam/graphql/mixins.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/graphql/schema.py | 100% | 41 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/graphql/types.py | 82% | 100 | 18 | 0 | 50% | 2 | 1 | 81% | |||
| ipam/lookups.py | 67% | 136 | 45 | 0 | 17% | 18 | 3 | 61% | |||
| ipam/management/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/management/commands/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/management/commands/rebuild_prefixes.py | 0% | 17 | 17 | 0 | 0% | 2 | 0 | 0% | |||
| ipam/managers.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/models/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/models/asns.py | 69% | 71 | 22 | 0 | 0% | 6 | 0 | 64% | |||
| ipam/models/fhrp.py | 90% | 50 | 5 | 0 | 50% | 8 | 2 | 84% | |||
| ipam/models/ip.py | 57% | 500 | 217 | 0 | 20% | 166 | 29 | 47% | |||
| ipam/models/services.py | 66% | 80 | 27 | 0 | 0% | 8 | 0 | 60% | |||
| ipam/models/vlans.py | 80% | 155 | 31 | 0 | 47% | 38 | 12 | 74% | |||
| ipam/models/vrfs.py | 94% | 31 | 2 | 0 | 50% | 2 | 1 | 91% | |||
| ipam/querysets.py | 37% | 182 | 115 | 0 | 15% | 92 | 10 | 30% | |||
| ipam/search.py | 100% | 87 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/signals.py | 73% | 45 | 12 | 0 | 71% | 14 | 4 | 73% | |||
| ipam/tables/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/tables/asn.py | 100% | 30 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/tables/fhrp.py | 96% | 26 | 1 | 0 | 100% | 0 | 0 | 96% | |||
| ipam/tables/ip.py | 98% | 122 | 3 | 0 | 0% | 2 | 0 | 96% | |||
| ipam/tables/services.py | 100% | 23 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/tables/template_code.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/tables/vlans.py | 100% | 82 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/tables/vrfs.py | 100% | 25 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/ui/attrs.py | 69% | 13 | 4 | 0 | 100% | 0 | 0 | 69% | |||
| ipam/ui/panels.py | 98% | 132 | 2 | 0 | 100% | 0 | 0 | 98% | |||
| ipam/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| ipam/utils.py | 22% | 198 | 155 | 0 | 2% | 92 | 2 | 16% | |||
| ipam/validators.py | 62% | 42 | 16 | 0 | 33% | 12 | 2 | 56% | |||
| ipam/views.py | 84% | 982 | 157 | 0 | 0% | 60 | 0 | 79% | |||
| manage.py | 100% | 6 | 0 | 0 | 50% | 2 | 1 | 88% | |||
| netbox/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/__main__.py | 0% | 4 | 4 | 0 | 0% | 2 | 0 | 0% | |||
| netbox/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/api/authentication.py | 70% | 104 | 31 | 0 | 48% | 44 | 15 | 64% | |||
| netbox/api/exceptions.py | 100% | 10 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/api/features.py | 94% | 18 | 1 | 0 | 75% | 4 | 1 | 91% | |||
| netbox/api/fields.py | 86% | 104 | 15 | 0 | 81% | 32 | 4 | 85% | |||
| netbox/api/gfk_fields.py | 94% | 18 | 1 | 0 | 75% | 4 | 1 | 91% | |||
| netbox/api/metadata.py | 90% | 30 | 3 | 0 | 75% | 8 | 2 | 87% | |||
| netbox/api/pagination.py | 89% | 116 | 13 | 0 | 74% | 46 | 12 | 85% | |||
| netbox/api/renderers.py | 83% | 12 | 2 | 0 | 100% | 0 | 0 | 83% | |||
| netbox/api/routers.py | 100% | 11 | 0 | 0 | 100% | 2 | 0 | 100% | |||
| netbox/api/serializers/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/api/serializers/base.py | 100% | 68 | 0 | 0 | 100% | 32 | 0 | 100% | |||
| netbox/api/serializers/bulk.py | 98% | 42 | 1 | 0 | 83% | 6 | 1 | 96% | |||
| netbox/api/serializers/features.py | 82% | 98 | 18 | 0 | 64% | 42 | 13 | 76% | |||
| netbox/api/serializers/fields.py | 91% | 22 | 2 | 0 | 50% | 2 | 1 | 88% | |||
| netbox/api/serializers/generic.py | 61% | 31 | 12 | 0 | 0% | 4 | 0 | 54% | |||
| netbox/api/serializers/models.py | 100% | 10 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/api/serializers/nested.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/api/views.py | 94% | 32 | 2 | 0 | 100% | 0 | 0 | 94% | |||
| netbox/api/viewsets/__init__.py | 83% | 202 | 35 | 0 | 67% | 54 | 10 | 79% | |||
| netbox/api/viewsets/mixins.py | 71% | 276 | 80 | 0 | 64% | 92 | 19 | 69% | |||
| netbox/authentication/__init__.py | 24% | 211 | 161 | 0 | 4% | 76 | 3 | 18% | |||
| netbox/authentication/misc.py | 13% | 15 | 13 | 0 | 0% | 6 | 0 | 10% | |||
| netbox/choices.py | 100% | 90 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/cli.py | 0% | 51 | 51 | 0 | 0% | 16 | 0 | 0% | |||
| netbox/config/__init__.py | 84% | 68 | 11 | 0 | 69% | 16 | 5 | 81% | |||
| netbox/config/parameters.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/configuration.py | 88% | 50 | 6 | 0 | 75% | 20 | 5 | 84% | |||
| netbox/configuration_example.py | 0% | 39 | 39 | 0 | 100% | 0 | 0 | 0% | |||
| netbox/configuration_testing.py | 0% | 9 | 9 | 0 | 100% | 0 | 0 | 0% | |||
| netbox/constants.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/context.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/context_managers.py | 100% | 18 | 0 | 0 | 100% | 2 | 0 | 100% | |||
| netbox/context_processors.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/data_backends.py | 70% | 20 | 6 | 0 | 100% | 0 | 0 | 70% | |||
| netbox/event_rules.py | 61% | 69 | 27 | 0 | 29% | 28 | 6 | 52% | |||
| netbox/events.py | 75% | 32 | 8 | 0 | 25% | 4 | 1 | 69% | |||
| netbox/filtersets.py | 76% | 174 | 42 | 0 | 60% | 70 | 8 | 71% | |||
| netbox/forms/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/forms/bulk_edit.py | 72% | 36 | 10 | 0 | 100% | 0 | 0 | 72% | |||
| netbox/forms/bulk_import.py | 42% | 59 | 34 | 0 | 0% | 26 | 0 | 29% | |||
| netbox/forms/bulk_rename.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/forms/filtersets.py | 90% | 20 | 2 | 0 | 100% | 0 | 0 | 90% | |||
| netbox/forms/mixins.py | 51% | 59 | 29 | 0 | 0% | 12 | 0 | 42% | |||
| netbox/forms/model_forms.py | 39% | 61 | 37 | 0 | 0% | 22 | 0 | 29% | |||
| netbox/forms/search.py | 63% | 19 | 7 | 0 | 0% | 2 | 0 | 57% | |||
| netbox/granian.py | 0% | 3 | 3 | 0 | 100% | 0 | 0 | 0% | |||
| netbox/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/graphql/apps.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/graphql/enums.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/graphql/filter_lookups.py | 63% | 220 | 82 | 0 | 0% | 52 | 0 | 51% | |||
| netbox/graphql/filter_mixins.py | 90% | 31 | 3 | 0 | 50% | 2 | 1 | 88% | |||
| netbox/graphql/filters.py | 97% | 36 | 1 | 0 | 50% | 2 | 1 | 95% | |||
| netbox/graphql/optimization.py | 69% | 16 | 5 | 0 | 0% | 2 | 0 | 61% | |||
| netbox/graphql/pagination.py | 37% | 46 | 29 | 0 | 0% | 22 | 0 | 25% | |||
| netbox/graphql/scalars.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/graphql/schema.py | 97% | 32 | 1 | 0 | 50% | 2 | 1 | 94% | |||
| netbox/graphql/types.py | 81% | 53 | 10 | 0 | 0% | 4 | 0 | 75% | |||
| netbox/graphql/utils.py | 28% | 100 | 72 | 0 | 8% | 50 | 2 | 21% | |||
| netbox/graphql/views.py | 43% | 28 | 16 | 0 | 0% | 10 | 0 | 32% | |||
| netbox/jobs.py | 41% | 180 | 106 | 0 | 9% | 34 | 3 | 36% | |||
| netbox/ldap_config.py | 0% | 14 | 14 | 0 | 0% | 4 | 0 | 0% | |||
| netbox/metrics.py | 60% | 10 | 4 | 0 | 100% | 0 | 0 | 60% | |||
| netbox/middleware.py | 53% | 152 | 72 | 0 | 22% | 58 | 9 | 44% | |||
| netbox/models/__init__.py | 91% | 104 | 9 | 0 | 69% | 16 | 3 | 88% | |||
| netbox/models/deletion.py | 72% | 58 | 16 | 0 | 64% | 22 | 2 | 70% | |||
| netbox/models/features.py | 67% | 328 | 109 | 0 | 37% | 98 | 12 | 60% | |||
| netbox/models/lookups.py | 77% | 26 | 6 | 0 | 100% | 0 | 0 | 77% | |||
| netbox/models/ltree.py | 73% | 181 | 49 | 0 | 44% | 48 | 11 | 67% | |||
| netbox/models/mixins.py | 73% | 48 | 13 | 0 | 20% | 10 | 2 | 64% | |||
| netbox/monkey.py | 100% | 16 | 0 | 0 | 100% | 6 | 0 | 100% | |||
| netbox/navigation/__init__.py | 90% | 50 | 5 | 0 | 75% | 8 | 2 | 88% | |||
| netbox/navigation/menu.py | 87% | 30 | 4 | 0 | 50% | 4 | 2 | 82% | |||
| netbox/object_actions.py | 74% | 108 | 28 | 0 | 0% | 8 | 0 | 69% | |||
| netbox/plugins/__init__.py | 44% | 117 | 65 | 0 | 2% | 48 | 1 | 32% | |||
| netbox/plugins/navigation.py | 40% | 65 | 39 | 0 | 0% | 22 | 0 | 30% | |||
| netbox/plugins/registration.py | 20% | 104 | 83 | 0 | 0% | 62 | 0 | 13% | |||
| netbox/plugins/templates.py | 52% | 29 | 14 | 0 | 0% | 4 | 0 | 45% | |||
| netbox/plugins/urls.py | 50% | 20 | 10 | 0 | 17% | 6 | 1 | 42% | |||
| netbox/plugins/utils.py | 50% | 20 | 10 | 0 | 25% | 4 | 1 | 46% | |||
| netbox/plugins/views.py | 60% | 43 | 17 | 0 | 0% | 4 | 0 | 55% | |||
| netbox/preferences.py | 79% | 24 | 5 | 0 | 50% | 10 | 1 | 71% | |||
| netbox/registry.py | 69% | 13 | 4 | 0 | 100% | 0 | 0 | 69% | |||
| netbox/scaffold.py | 0% | 34 | 34 | 0 | 0% | 6 | 0 | 0% | |||
| netbox/search/__init__.py | 73% | 88 | 24 | 0 | 44% | 32 | 2 | 65% | |||
| netbox/search/backends.py | 53% | 221 | 104 | 0 | 31% | 62 | 7 | 48% | |||
| netbox/search/deferred.py | 86% | 57 | 8 | 0 | 78% | 18 | 4 | 84% | |||
| netbox/search/jobs.py | 89% | 9 | 1 | 0 | 100% | 0 | 0 | 89% | |||
| netbox/search/signals.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/search/utils.py | 67% | 6 | 2 | 0 | 100% | 0 | 0 | 67% | |||
| netbox/settings.py | 71% | 406 | 119 | 0 | 41% | 132 | 42 | 63% | |||
| netbox/settings_utils.py | 40% | 114 | 68 | 0 | 17% | 42 | 7 | 34% | |||
| netbox/signals.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/tables/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/tables/columns.py | 45% | 402 | 223 | 0 | 5% | 126 | 2 | 35% | |||
| netbox/tables/tables.py | 38% | 245 | 153 | 0 | 0% | 100 | 0 | 27% | |||
| netbox/tables/template_code.py | 100% | 1 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/ui/actions.py | 66% | 65 | 22 | 0 | 7% | 14 | 1 | 56% | |||
| netbox/ui/attrs.py | 52% | 339 | 163 | 0 | 6% | 84 | 3 | 43% | |||
| netbox/ui/breadcrumbs.py | 37% | 60 | 38 | 0 | 5% | 22 | 1 | 28% | |||
| netbox/ui/layout.py | 73% | 52 | 14 | 0 | 59% | 22 | 5 | 69% | |||
| netbox/ui/panels.py | 68% | 181 | 58 | 0 | 45% | 44 | 4 | 64% | |||
| netbox/ui/utils.py | 33% | 9 | 6 | 0 | 0% | 2 | 0 | 27% | |||
| netbox/urls.py | 85% | 20 | 3 | 0 | 50% | 4 | 2 | 79% | |||
| netbox/utils.py | 91% | 22 | 2 | 0 | 50% | 4 | 2 | 85% | |||
| netbox/views/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/views/errors.py | 82% | 28 | 5 | 0 | 50% | 2 | 1 | 80% | |||
| netbox/views/generic/__init__.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| netbox/views/generic/base.py | 59% | 32 | 13 | 0 | 0% | 4 | 0 | 53% | |||
| netbox/views/generic/bulk_views.py | 17% | 724 | 598 | 0 | 0% | 314 | 0 | 12% | |||
| netbox/views/generic/feature_views.py | 50% | 108 | 54 | 0 | 0% | 12 | 0 | 45% | |||
| netbox/views/generic/mixins.py | 33% | 27 | 18 | 0 | 0% | 10 | 0 | 24% | |||
| netbox/views/generic/object_views.py | 25% | 290 | 217 | 0 | 0% | 88 | 0 | 19% | |||
| netbox/views/generic/utils.py | 25% | 8 | 6 | 0 | 0% | 6 | 0 | 14% | |||
| netbox/views/htmx.py | 33% | 39 | 26 | 0 | 0% | 8 | 0 | 28% | |||
| netbox/views/misc.py | 41% | 90 | 53 | 0 | 0% | 26 | 0 | 32% | |||
| netbox/wsgi.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| reports/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| scripts/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/serializers.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/serializers_/contacts.py | 100% | 37 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/serializers_/nested.py | 100% | 19 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/serializers_/tenants.py | 100% | 29 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/urls.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/api/views.py | 97% | 32 | 1 | 0 | 100% | 0 | 0 | 97% | |||
| tenancy/apps.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/choices.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/filtersets.py | 89% | 79 | 9 | 0 | 0% | 6 | 0 | 82% | |||
| tenancy/forms/__init__.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/forms/bulk_edit.py | 100% | 45 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/forms/bulk_import.py | 100% | 40 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/forms/filtersets.py | 100% | 43 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/forms/forms.py | 100% | 15 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/forms/model_forms.py | 100% | 51 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/graphql/enums.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/graphql/filter_mixins.py | 89% | 18 | 2 | 0 | 50% | 2 | 1 | 85% | |||
| tenancy/graphql/filters.py | 89% | 84 | 9 | 0 | 50% | 2 | 1 | 88% | |||
| tenancy/graphql/mixins.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/graphql/schema.py | 100% | 17 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/graphql/types.py | 76% | 29 | 7 | 0 | 50% | 2 | 1 | 74% | |||
| tenancy/models/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/models/contacts.py | 86% | 71 | 10 | 0 | 0% | 4 | 0 | 81% | |||
| tenancy/models/tenants.py | 97% | 34 | 1 | 0 | 50% | 2 | 1 | 94% | |||
| tenancy/search.py | 100% | 27 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/tables/__init__.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/tables/columns.py | 88% | 24 | 3 | 0 | 50% | 2 | 1 | 85% | |||
| tenancy/tables/contacts.py | 100% | 49 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/tables/template_code.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/tables/tenants.py | 100% | 21 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/ui/panels.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| tenancy/views.py | 94% | 256 | 16 | 0 | 0% | 6 | 0 | 92% | |||
| users/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/serializers.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/serializers_/mixins.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/serializers_/nested.py | 85% | 20 | 3 | 0 | 0% | 2 | 0 | 77% | |||
| users/api/serializers_/owners.py | 100% | 19 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/serializers_/permissions.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/serializers_/tokens.py | 83% | 59 | 10 | 0 | 43% | 14 | 4 | 75% | |||
| users/api/serializers_/users.py | 77% | 44 | 10 | 0 | 50% | 6 | 1 | 74% | |||
| users/api/urls.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/api/views.py | 90% | 71 | 7 | 0 | 100% | 0 | 0 | 90% | |||
| users/apps.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/choices.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/constants.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/filterset_mixins.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/filtersets.py | 81% | 113 | 22 | 0 | 0% | 14 | 0 | 72% | |||
| users/forms/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/forms/bulk_edit.py | 100% | 56 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/forms/bulk_import.py | 87% | 38 | 5 | 0 | 0% | 2 | 0 | 82% | |||
| users/forms/filtersets.py | 100% | 49 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/forms/model_forms.py | 45% | 257 | 142 | 0 | 4% | 106 | 2 | 33% | |||
| users/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/graphql/filters.py | 100% | 33 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/graphql/mixins.py | 86% | 7 | 1 | 0 | 50% | 2 | 1 | 78% | |||
| users/graphql/schema.py | 100% | 13 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/graphql/types.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/models/__init__.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/models/owners.py | 94% | 31 | 2 | 0 | 100% | 0 | 0 | 94% | |||
| users/models/permissions.py | 57% | 65 | 28 | 0 | 0% | 12 | 0 | 48% | |||
| users/models/preferences.py | 29% | 65 | 46 | 0 | 0% | 24 | 0 | 21% | |||
| users/models/tokens.py | 79% | 133 | 28 | 0 | 42% | 36 | 11 | 71% | |||
| users/models/users.py | 82% | 84 | 15 | 0 | 33% | 6 | 2 | 79% | |||
| users/preferences.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/signals.py | 80% | 25 | 5 | 0 | 25% | 8 | 2 | 67% | |||
| users/tables.py | 100% | 70 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/ui/panels.py | 93% | 41 | 3 | 0 | 100% | 0 | 0 | 93% | |||
| users/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| users/utils.py | 27% | 37 | 27 | 0 | 6% | 16 | 1 | 21% | |||
| users/views.py | 94% | 250 | 16 | 0 | 0% | 4 | 0 | 92% | |||
| utilities/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/api.py | 82% | 141 | 25 | 0 | 75% | 48 | 8 | 80% | |||
| utilities/apps.py | 100% | 10 | 0 | 0 | 100% | 6 | 0 | 100% | |||
| utilities/choices.py | 92% | 77 | 6 | 0 | 85% | 26 | 4 | 90% | |||
| utilities/constants.py | 100% | 15 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/conversion.py | 42% | 24 | 14 | 0 | 0% | 4 | 0 | 36% | |||
| utilities/counters.py | 89% | 61 | 7 | 0 | 82% | 28 | 5 | 87% | |||
| utilities/data.py | 29% | 133 | 95 | 0 | 8% | 64 | 5 | 22% | |||
| utilities/datetime.py | 88% | 8 | 1 | 0 | 100% | 0 | 0 | 88% | |||
| utilities/debug.py | 0% | 11 | 11 | 0 | 0% | 6 | 0 | 0% | |||
| utilities/error_handlers.py | 54% | 35 | 16 | 0 | 10% | 10 | 1 | 44% | |||
| utilities/exceptions.py | 87% | 23 | 3 | 0 | 100% | 0 | 0 | 87% | |||
| utilities/export.py | 38% | 45 | 28 | 0 | 0% | 12 | 0 | 30% | |||
| utilities/fields.py | 43% | 183 | 105 | 0 | 3% | 64 | 2 | 32% | |||
| utilities/filters.py | 80% | 109 | 22 | 0 | 55% | 20 | 1 | 76% | |||
| utilities/filtersets.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/forms/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/forms/bulk_import.py | 25% | 97 | 73 | 0 | 0% | 36 | 0 | 18% | |||
| utilities/forms/constants.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/forms/fields/__init__.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/forms/fields/array.py | 55% | 33 | 15 | 0 | 8% | 12 | 1 | 42% | |||
| utilities/forms/fields/choices.py | 95% | 43 | 2 | 0 | 86% | 14 | 2 | 93% | |||
| utilities/forms/fields/content_types.py | 75% | 16 | 4 | 0 | 100% | 0 | 0 | 75% | |||
| utilities/forms/fields/csv.py | 48% | 73 | 38 | 0 | 0% | 16 | 0 | 39% | |||
| utilities/forms/fields/dynamic.py | 45% | 96 | 53 | 0 | 20% | 40 | 0 | 38% | |||
| utilities/forms/fields/expandable.py | 59% | 41 | 17 | 0 | 25% | 16 | 2 | 49% | |||
| utilities/forms/fields/fields.py | 72% | 82 | 23 | 0 | 17% | 12 | 0 | 65% | |||
| utilities/forms/fields/generic.py | 33% | 141 | 95 | 0 | 5% | 40 | 0 | 27% | |||
| utilities/forms/forms.py | 56% | 64 | 28 | 0 | 0% | 16 | 0 | 45% | |||
| utilities/forms/mixins.py | 31% | 99 | 68 | 0 | 0% | 54 | 0 | 20% | |||
| utilities/forms/rendering.py | 89% | 36 | 4 | 0 | 50% | 8 | 2 | 82% | |||
| utilities/forms/utils.py | 17% | 154 | 128 | 0 | 2% | 96 | 0 | 11% | |||
| utilities/forms/widgets/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/forms/widgets/apiselect.py | 81% | 78 | 15 | 0 | 80% | 30 | 4 | 81% | |||
| utilities/forms/widgets/datetime.py | 82% | 17 | 3 | 0 | 100% | 0 | 0 | 82% | |||
| utilities/forms/widgets/generic.py | 58% | 19 | 8 | 0 | 0% | 8 | 0 | 41% | |||
| utilities/forms/widgets/misc.py | 68% | 40 | 13 | 0 | 20% | 10 | 2 | 58% | |||
| utilities/forms/widgets/modifiers.py | 18% | 68 | 56 | 0 | 0% | 30 | 0 | 12% | |||
| utilities/forms/widgets/select.py | 68% | 90 | 29 | 0 | 33% | 18 | 2 | 62% | |||
| utilities/html.py | 32% | 38 | 26 | 0 | 0% | 12 | 0 | 24% | |||
| utilities/htmx.py | 33% | 21 | 14 | 0 | 0% | 6 | 0 | 26% | |||
| utilities/jinja2.py | 36% | 69 | 44 | 0 | 0% | 16 | 0 | 29% | |||
| utilities/jobs.py | 50% | 16 | 8 | 0 | 0% | 2 | 0 | 44% | |||
| utilities/json.py | 44% | 27 | 15 | 0 | 0% | 6 | 0 | 36% | |||
| utilities/jsonschema.py | 53% | 105 | 49 | 0 | 7% | 42 | 1 | 40% | |||
| utilities/ltree.py | 80% | 41 | 8 | 0 | 100% | 4 | 0 | 82% | |||
| utilities/management/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/management/commands/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/management/commands/calculate_cached_counts.py | 0% | 21 | 21 | 0 | 0% | 8 | 0 | 0% | |||
| utilities/management/commands/rebuild_ltree_paths.py | 0% | 68 | 68 | 0 | 0% | 28 | 0 | 0% | |||
| utilities/markdown.py | 86% | 7 | 1 | 0 | 100% | 0 | 0 | 86% | |||
| utilities/migration.py | 94% | 47 | 3 | 0 | 100% | 4 | 0 | 94% | |||
| utilities/mptt.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/mptt_to_ltree.py | 57% | 21 | 9 | 0 | 50% | 4 | 0 | 56% | |||
| utilities/object_types.py | 29% | 14 | 10 | 0 | 0% | 2 | 0 | 25% | |||
| utilities/ordering.py | 71% | 35 | 10 | 0 | 55% | 22 | 4 | 65% | |||
| utilities/paginator.py | 22% | 50 | 39 | 0 | 0% | 18 | 0 | 16% | |||
| utilities/password_validation.py | 67% | 12 | 4 | 0 | 33% | 6 | 2 | 56% | |||
| utilities/permissions.py | 54% | 69 | 32 | 0 | 27% | 26 | 5 | 46% | |||
| utilities/prefetch.py | 35% | 17 | 11 | 0 | 0% | 10 | 0 | 22% | |||
| utilities/proxy.py | 43% | 21 | 12 | 0 | 0% | 8 | 0 | 31% | |||
| utilities/query.py | 96% | 27 | 1 | 0 | 90% | 10 | 1 | 95% | |||
| utilities/query_functions.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/querydict.py | 30% | 27 | 19 | 0 | 0% | 12 | 0 | 21% | |||
| utilities/querysets.py | 63% | 57 | 21 | 0 | 32% | 22 | 7 | 54% | |||
| utilities/relations.py | 43% | 7 | 4 | 0 | 0% | 2 | 0 | 33% | |||
| utilities/release.py | 80% | 59 | 12 | 0 | 38% | 16 | 6 | 71% | |||
| utilities/request.py | 53% | 57 | 27 | 0 | 28% | 18 | 1 | 47% | |||
| utilities/rqworker.py | 51% | 45 | 22 | 0 | 8% | 12 | 1 | 42% | |||
| utilities/secret_key.py | 0% | 6 | 6 | 0 | 100% | 0 | 0 | 0% | |||
| utilities/security.py | 64% | 14 | 5 | 0 | 58% | 12 | 5 | 62% | |||
| utilities/serialization.py | 55% | 38 | 17 | 0 | 56% | 16 | 1 | 56% | |||
| utilities/serializers/json.py | 100% | 12 | 0 | 0 | 100% | 4 | 0 | 100% | |||
| utilities/socks.py | 58% | 45 | 19 | 0 | 0% | 4 | 0 | 53% | |||
| utilities/string.py | 31% | 36 | 25 | 0 | 0% | 16 | 0 | 21% | |||
| utilities/tables.py | 36% | 33 | 21 | 0 | 0% | 12 | 0 | 27% | |||
| utilities/templatetags/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/templatetags/builtins/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| utilities/templatetags/builtins/filters.py | 47% | 111 | 59 | 0 | 0% | 24 | 0 | 39% | |||
| utilities/templatetags/builtins/tags.py | 53% | 79 | 37 | 0 | 20% | 20 | 2 | 46% | |||
| utilities/templatetags/buttons.py | 37% | 97 | 61 | 0 | 0% | 10 | 0 | 34% | |||
| utilities/templatetags/form_helpers.py | 30% | 98 | 69 | 0 | 0% | 50 | 0 | 20% | |||
| utilities/templatetags/helpers.py | 26% | 258 | 190 | 0 | 0% | 98 | 0 | 19% | |||
| utilities/templatetags/navigation.py | 81% | 26 | 5 | 0 | 75% | 16 | 4 | 79% | |||
| utilities/templatetags/perms.py | 65% | 26 | 9 | 0 | 100% | 0 | 0 | 65% | |||
| utilities/templatetags/plugins.py | 64% | 50 | 18 | 0 | 33% | 6 | 2 | 61% | |||
| utilities/templatetags/tabs.py | 29% | 31 | 22 | 0 | 0% | 8 | 0 | 23% | |||
| utilities/testing/__init__.py | 0% | 7 | 7 | 0 | 100% | 0 | 0 | 0% | |||
| utilities/testing/api.py | 0% | 1068 | 1068 | 0 | 0% | 354 | 0 | 0% | |||
| utilities/testing/base.py | 0% | 126 | 126 | 0 | 0% | 54 | 0 | 0% | |||
| utilities/testing/filtersets.py | 0% | 77 | 77 | 0 | 0% | 28 | 0 | 0% | |||
| utilities/testing/mixins.py | 0% | 22 | 22 | 0 | 0% | 2 | 0 | 0% | |||
| utilities/testing/query_counts.py | 0% | 80 | 80 | 0 | 0% | 18 | 0 | 0% | |||
| utilities/testing/tables.py | 0% | 68 | 68 | 0 | 0% | 26 | 0 | 0% | |||
| utilities/testing/utils.py | 0% | 101 | 101 | 0 | 0% | 24 | 0 | 0% | |||
| utilities/testing/views.py | 0% | 631 | 631 | 0 | 0% | 112 | 0 | 0% | |||
| utilities/tracking.py | 82% | 40 | 7 | 0 | 62% | 16 | 4 | 77% | |||
| utilities/urls.py | 90% | 21 | 2 | 0 | 83% | 6 | 1 | 89% | |||
| utilities/validators.py | 60% | 40 | 16 | 0 | 0% | 4 | 0 | 55% | |||
| utilities/views.py | 52% | 162 | 77 | 0 | 23% | 48 | 5 | 46% | |||
| virtualization/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/serializers.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/serializers_/clusters.py | 100% | 39 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/serializers_/nested.py | 100% | 12 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/serializers_/virtualmachines.py | 76% | 108 | 26 | 0 | 0% | 16 | 0 | 66% | |||
| virtualization/api/urls.py | 100% | 13 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/api/views.py | 98% | 41 | 1 | 0 | 100% | 0 | 0 | 98% | |||
| virtualization/apps.py | 100% | 10 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/choices.py | 100% | 26 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/filtersets.py | 79% | 132 | 28 | 0 | 0% | 16 | 0 | 70% | |||
| virtualization/forms/__init__.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/forms/bulk_create.py | 94% | 16 | 1 | 0 | 100% | 0 | 0 | 94% | |||
| virtualization/forms/bulk_edit.py | 72% | 120 | 33 | 0 | 0% | 12 | 0 | 66% | |||
| virtualization/forms/bulk_import.py | 84% | 85 | 14 | 0 | 0% | 8 | 0 | 76% | |||
| virtualization/forms/filtersets.py | 96% | 93 | 4 | 0 | 100% | 0 | 0 | 96% | |||
| virtualization/forms/model_forms.py | 67% | 154 | 51 | 0 | 0% | 30 | 0 | 56% | |||
| virtualization/forms/object_create.py | 100% | 14 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/graphql/enums.py | 100% | 6 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/graphql/filter_mixins.py | 93% | 15 | 1 | 0 | 50% | 2 | 1 | 88% | |||
| virtualization/graphql/filters.py | 94% | 85 | 5 | 0 | 50% | 2 | 1 | 93% | |||
| virtualization/graphql/schema.py | 100% | 19 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/graphql/types.py | 87% | 38 | 5 | 0 | 50% | 2 | 1 | 85% | |||
| virtualization/models/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/models/clusters.py | 69% | 59 | 18 | 0 | 0% | 16 | 0 | 55% | |||
| virtualization/models/virtualmachines.py | 61% | 181 | 70 | 0 | 2% | 58 | 1 | 47% | |||
| virtualization/object_actions.py | 91% | 11 | 1 | 0 | 100% | 0 | 0 | 91% | |||
| virtualization/search.py | 100% | 37 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/signals.py | 69% | 13 | 4 | 0 | 0% | 2 | 0 | 60% | |||
| virtualization/tables/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/tables/clusters.py | 100% | 36 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/tables/template_code.py | 100% | 1 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/tables/virtualmachines.py | 95% | 81 | 4 | 0 | 100% | 0 | 0 | 95% | |||
| virtualization/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/ui/panels.py | 100% | 56 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| virtualization/views.py | 92% | 415 | 33 | 0 | 0% | 6 | 0 | 91% | |||
| vpn/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/serializers.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/serializers_/crypto.py | 100% | 44 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/serializers_/l2vpn.py | 100% | 28 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/serializers_/tunnels.py | 100% | 37 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/urls.py | 100% | 16 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/api/views.py | 98% | 49 | 1 | 0 | 100% | 0 | 0 | 98% | |||
| vpn/apps.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/choices.py | 100% | 111 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/constants.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/filtersets.py | 80% | 173 | 34 | 0 | 0% | 16 | 0 | 74% | |||
| vpn/forms/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/forms/bulk_edit.py | 100% | 71 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/forms/bulk_import.py | 79% | 112 | 24 | 0 | 0% | 22 | 0 | 66% | |||
| vpn/forms/filtersets.py | 100% | 87 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/forms/model_forms.py | 65% | 176 | 62 | 0 | 0% | 34 | 0 | 54% | |||
| vpn/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/graphql/enums.py | 100% | 16 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/graphql/filters.py | 96% | 91 | 4 | 0 | 50% | 2 | 1 | 95% | |||
| vpn/graphql/schema.py | 100% | 25 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/graphql/types.py | 85% | 41 | 6 | 0 | 50% | 2 | 1 | 84% | |||
| vpn/models/__init__.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/models/crypto.py | 89% | 82 | 9 | 0 | 17% | 6 | 1 | 84% | |||
| vpn/models/l2vpn.py | 64% | 76 | 27 | 0 | 10% | 20 | 0 | 53% | |||
| vpn/models/tunnels.py | 81% | 59 | 11 | 0 | 0% | 2 | 0 | 79% | |||
| vpn/search.py | 100% | 42 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/tables/__init__.py | 100% | 3 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/tables/crypto.py | 100% | 58 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/tables/l2vpn.py | 100% | 30 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/tables/tunnels.py | 100% | 38 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/ui/panels.py | 100% | 71 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| vpn/views.py | 97% | 399 | 11 | 0 | 0% | 2 | 0 | 97% | |||
| wireless/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/serializers.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/serializers_/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/serializers_/nested.py | 100% | 16 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/serializers_/wirelesslans.py | 100% | 33 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/serializers_/wirelesslinks.py | 100% | 21 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/urls.py | 100% | 9 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/api/views.py | 95% | 20 | 1 | 0 | 100% | 0 | 0 | 95% | |||
| wireless/apps.py | 100% | 7 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/choices.py | 100% | 223 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/constants.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/filtersets.py | 85% | 54 | 8 | 0 | 0% | 4 | 0 | 79% | |||
| wireless/forms/__init__.py | 100% | 4 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/forms/bulk_edit.py | 100% | 44 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/forms/bulk_import.py | 76% | 58 | 14 | 0 | 0% | 6 | 0 | 69% | |||
| wireless/forms/filtersets.py | 100% | 43 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/forms/model_forms.py | 100% | 51 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/graphql/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/graphql/enums.py | 100% | 8 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/graphql/filter_mixins.py | 92% | 13 | 1 | 0 | 50% | 2 | 1 | 87% | |||
| wireless/graphql/filters.py | 91% | 35 | 3 | 0 | 50% | 2 | 1 | 89% | |||
| wireless/graphql/schema.py | 100% | 11 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/graphql/types.py | 82% | 22 | 4 | 0 | 50% | 2 | 1 | 79% | |||
| wireless/models.py | 84% | 70 | 11 | 0 | 0% | 4 | 0 | 80% | |||
| wireless/search.py | 100% | 17 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/signals.py | 31% | 39 | 27 | 0 | 0% | 16 | 0 | 22% | |||
| wireless/tables/__init__.py | 100% | 2 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/tables/wirelesslan.py | 100% | 33 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/tables/wirelesslink.py | 100% | 19 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/ui/__init__.py | 100% | 0 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/ui/panels.py | 94% | 33 | 2 | 0 | 100% | 0 | 0 | 94% | |||
| wireless/urls.py | 100% | 5 | 0 | 0 | 100% | 0 | 0 | 100% | |||
| wireless/utils.py | 42% | 12 | 7 | 0 | 0% | 4 | 0 | 31% | |||
| wireless/views.py | 98% | 130 | 2 | 0 | 100% | 0 | 0 | 98% | |||
| Total | 67% | 59785 | 19920 | 0 | 15% | 11042 | 750 | 59% | |||
No items found using the specified filter.