nautobot 2.4.0b1__py3-none-any.whl → 2.4.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (601) hide show
  1. nautobot/apps/__init__.py +1 -1
  2. nautobot/apps/api.py +8 -8
  3. nautobot/apps/change_logging.py +2 -2
  4. nautobot/apps/choices.py +4 -4
  5. nautobot/apps/events.py +3 -3
  6. nautobot/apps/factory.py +2 -2
  7. nautobot/apps/filters.py +1 -1
  8. nautobot/apps/forms.py +20 -20
  9. nautobot/apps/graphql.py +2 -2
  10. nautobot/apps/jobs.py +8 -8
  11. nautobot/apps/models.py +19 -19
  12. nautobot/apps/tables.py +1 -1
  13. nautobot/apps/testing.py +10 -10
  14. nautobot/apps/ui.py +2 -2
  15. nautobot/apps/utils.py +7 -7
  16. nautobot/apps/views.py +7 -7
  17. nautobot/circuits/api/serializers.py +1 -0
  18. nautobot/circuits/api/views.py +4 -8
  19. nautobot/circuits/tables.py +2 -1
  20. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  21. nautobot/circuits/views.py +3 -3
  22. nautobot/cloud/api/views.py +6 -10
  23. nautobot/cloud/models.py +1 -1
  24. nautobot/cloud/views.py +0 -16
  25. nautobot/core/api/constants.py +11 -0
  26. nautobot/core/api/fields.py +5 -5
  27. nautobot/core/api/filter_backends.py +3 -9
  28. nautobot/core/api/schema.py +13 -2
  29. nautobot/core/api/serializers.py +40 -34
  30. nautobot/core/api/views.py +56 -4
  31. nautobot/core/celery/log.py +4 -4
  32. nautobot/core/celery/schedulers.py +2 -2
  33. nautobot/core/choices.py +2 -2
  34. nautobot/core/events/__init__.py +3 -3
  35. nautobot/core/filters.py +67 -35
  36. nautobot/core/forms/__init__.py +19 -19
  37. nautobot/core/forms/fields.py +14 -11
  38. nautobot/core/forms/forms.py +33 -2
  39. nautobot/core/graphql/types.py +1 -1
  40. nautobot/core/jobs/__init__.py +28 -7
  41. nautobot/core/jobs/bulk_actions.py +285 -0
  42. nautobot/core/jobs/cleanup.py +48 -12
  43. nautobot/core/jobs/groups.py +1 -1
  44. nautobot/core/management/commands/validate_models.py +1 -1
  45. nautobot/core/models/__init__.py +3 -1
  46. nautobot/core/models/query_functions.py +2 -2
  47. nautobot/core/models/tree_queries.py +6 -3
  48. nautobot/core/settings.py +29 -2
  49. nautobot/core/settings.yaml +21 -0
  50. nautobot/core/tables.py +79 -61
  51. nautobot/core/templates/about.html +67 -0
  52. nautobot/core/templates/inc/media.html +3 -0
  53. nautobot/core/templates/inc/nav_menu.html +1 -0
  54. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  55. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  56. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  57. nautobot/core/templates/search.html +7 -0
  58. nautobot/core/templates/utilities/render_jinja2.html +1 -1
  59. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  60. nautobot/core/templates/utilities/theme_preview.html +7 -0
  61. nautobot/core/templatetags/helpers.py +11 -2
  62. nautobot/core/testing/__init__.py +8 -8
  63. nautobot/core/testing/api.py +170 -15
  64. nautobot/core/testing/filters.py +45 -10
  65. nautobot/core/testing/forms.py +2 -0
  66. nautobot/core/testing/integration.py +86 -4
  67. nautobot/core/testing/mixins.py +7 -2
  68. nautobot/core/testing/views.py +44 -29
  69. nautobot/core/tests/integration/test_app_home.py +0 -1
  70. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  71. nautobot/core/tests/integration/test_filters.py +0 -2
  72. nautobot/core/tests/integration/test_home.py +0 -1
  73. nautobot/core/tests/integration/test_navbar.py +0 -1
  74. nautobot/core/tests/integration/test_view_authentication.py +1 -0
  75. nautobot/core/tests/runner.py +1 -1
  76. nautobot/core/tests/test_api.py +98 -1
  77. nautobot/core/tests/test_csv.py +25 -3
  78. nautobot/core/tests/test_filters.py +209 -246
  79. nautobot/core/tests/test_forms.py +1 -0
  80. nautobot/core/tests/test_jobs.py +460 -1
  81. nautobot/core/tests/test_models.py +9 -0
  82. nautobot/core/tests/test_settings_schema.py +7 -0
  83. nautobot/core/tests/test_tables.py +100 -0
  84. nautobot/core/tests/test_utils.py +63 -1
  85. nautobot/core/tests/test_views.py +30 -3
  86. nautobot/core/ui/nav.py +1 -0
  87. nautobot/core/ui/object_detail.py +15 -1
  88. nautobot/core/urls.py +11 -0
  89. nautobot/core/utils/lookup.py +11 -8
  90. nautobot/core/utils/querysets.py +64 -0
  91. nautobot/core/utils/requests.py +24 -9
  92. nautobot/core/views/__init__.py +42 -0
  93. nautobot/core/views/generic.py +131 -197
  94. nautobot/core/views/mixins.py +126 -38
  95. nautobot/core/views/renderers.py +6 -6
  96. nautobot/dcim/api/serializers.py +56 -64
  97. nautobot/dcim/api/views.py +47 -113
  98. nautobot/dcim/constants.py +6 -13
  99. nautobot/dcim/factory.py +6 -1
  100. nautobot/dcim/filters/__init__.py +31 -2
  101. nautobot/dcim/forms.py +36 -17
  102. nautobot/dcim/graphql/types.py +2 -2
  103. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  104. nautobot/dcim/models/__init__.py +1 -1
  105. nautobot/dcim/models/device_component_templates.py +2 -2
  106. nautobot/dcim/models/device_components.py +22 -20
  107. nautobot/dcim/models/devices.py +10 -1
  108. nautobot/dcim/models/locations.py +3 -3
  109. nautobot/dcim/models/power.py +6 -5
  110. nautobot/dcim/models/racks.py +4 -4
  111. nautobot/dcim/tables/__init__.py +3 -3
  112. nautobot/dcim/tables/devices.py +7 -5
  113. nautobot/dcim/tables/devicetypes.py +2 -2
  114. nautobot/dcim/tables/racks.py +1 -1
  115. nautobot/dcim/templates/dcim/controller_create.html +1 -7
  116. nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
  117. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
  118. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
  119. nautobot/dcim/templates/dcim/device.html +1 -9
  120. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  121. nautobot/dcim/templates/dcim/location.html +1 -9
  122. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  123. nautobot/dcim/templates/dcim/rack.html +1 -9
  124. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  125. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  126. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
  127. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
  128. nautobot/dcim/tests/integration/test_controller.py +62 -0
  129. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  130. nautobot/dcim/tests/integration/test_device_bulk_delete.py +189 -0
  131. nautobot/dcim/tests/integration/test_device_bulk_edit.py +181 -0
  132. nautobot/dcim/tests/test_api.py +16 -5
  133. nautobot/dcim/tests/test_filters.py +33 -0
  134. nautobot/dcim/tests/test_forms.py +51 -2
  135. nautobot/dcim/tests/test_graphql.py +52 -0
  136. nautobot/dcim/tests/test_jobs.py +118 -0
  137. nautobot/dcim/tests/test_models.py +52 -9
  138. nautobot/dcim/tests/test_views.py +21 -83
  139. nautobot/dcim/views.py +1 -13
  140. nautobot/extras/api/customfields.py +2 -2
  141. nautobot/extras/api/serializers.py +90 -85
  142. nautobot/extras/api/views.py +22 -27
  143. nautobot/extras/constants.py +2 -0
  144. nautobot/extras/filters/__init__.py +8 -6
  145. nautobot/extras/forms/base.py +2 -2
  146. nautobot/extras/forms/forms.py +139 -31
  147. nautobot/extras/forms/mixins.py +14 -6
  148. nautobot/extras/group_sync.py +3 -3
  149. nautobot/extras/health_checks.py +1 -2
  150. nautobot/extras/jobs.py +85 -18
  151. nautobot/extras/managers.py +3 -1
  152. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  153. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  154. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  155. nautobot/extras/models/__init__.py +1 -1
  156. nautobot/extras/models/contacts.py +1 -1
  157. nautobot/extras/models/customfields.py +12 -11
  158. nautobot/extras/models/groups.py +11 -9
  159. nautobot/extras/models/jobs.py +23 -4
  160. nautobot/extras/models/models.py +2 -2
  161. nautobot/extras/plugins/__init__.py +13 -2
  162. nautobot/extras/plugins/marketplace_manifest.yml +84 -79
  163. nautobot/extras/plugins/tables.py +16 -14
  164. nautobot/extras/plugins/views.py +65 -69
  165. nautobot/extras/registry.py +1 -1
  166. nautobot/extras/secrets/__init__.py +2 -2
  167. nautobot/extras/tables.py +7 -5
  168. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  169. nautobot/extras/templates/extras/job_detail.html +16 -0
  170. nautobot/extras/templates/extras/job_edit.html +1 -0
  171. nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
  172. nautobot/extras/templates/extras/marketplace.html +29 -11
  173. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  174. nautobot/extras/templates/extras/plugins_tiles.html +21 -10
  175. nautobot/extras/templatetags/job_buttons.py +4 -4
  176. nautobot/extras/test_jobs/api_test_job.py +1 -1
  177. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  178. nautobot/extras/test_jobs/dry_run.py +1 -1
  179. nautobot/extras/test_jobs/fail.py +5 -5
  180. nautobot/extras/test_jobs/file_output.py +1 -1
  181. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  182. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  183. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  184. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  185. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  186. nautobot/extras/test_jobs/log_redaction.py +1 -1
  187. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  188. nautobot/extras/test_jobs/modify_db.py +1 -1
  189. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  190. nautobot/extras/test_jobs/object_var_required.py +1 -1
  191. nautobot/extras/test_jobs/object_vars.py +1 -1
  192. nautobot/extras/test_jobs/pass.py +3 -3
  193. nautobot/extras/test_jobs/profiling.py +1 -1
  194. nautobot/extras/test_jobs/relative_import.py +3 -3
  195. nautobot/extras/test_jobs/singleton.py +16 -0
  196. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  197. nautobot/extras/test_jobs/task_queues.py +1 -1
  198. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  199. nautobot/extras/tests/test_api.py +13 -13
  200. nautobot/extras/tests/test_customfields.py +1 -1
  201. nautobot/extras/tests/test_datasources.py +2 -1
  202. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  203. nautobot/extras/tests/test_filters.py +6 -6
  204. nautobot/extras/tests/test_forms.py +33 -1
  205. nautobot/extras/tests/test_jobs.py +178 -32
  206. nautobot/extras/tests/test_models.py +16 -10
  207. nautobot/extras/tests/test_plugins.py +62 -9
  208. nautobot/extras/tests/test_relationships.py +120 -9
  209. nautobot/extras/tests/test_views.py +56 -194
  210. nautobot/extras/utils.py +3 -2
  211. nautobot/extras/views.py +30 -98
  212. nautobot/ipam/api/fields.py +3 -3
  213. nautobot/ipam/api/serializers.py +41 -33
  214. nautobot/ipam/api/views.py +68 -117
  215. nautobot/ipam/factory.py +1 -1
  216. nautobot/ipam/filters.py +3 -2
  217. nautobot/ipam/lookups.py +101 -62
  218. nautobot/ipam/models.py +66 -16
  219. nautobot/ipam/querysets.py +2 -2
  220. nautobot/ipam/tables.py +23 -7
  221. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  222. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  223. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  224. nautobot/ipam/templates/ipam/prefix.html +1 -9
  225. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  226. nautobot/ipam/templates/ipam/vlan.html +1 -9
  227. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  228. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  229. nautobot/ipam/tests/test_api.py +436 -3
  230. nautobot/ipam/tests/test_forms.py +49 -47
  231. nautobot/ipam/tests/test_migrations.py +30 -30
  232. nautobot/ipam/tests/test_models.py +95 -34
  233. nautobot/ipam/tests/test_querysets.py +63 -1
  234. nautobot/ipam/tests/test_views.py +3 -0
  235. nautobot/ipam/utils/__init__.py +36 -6
  236. nautobot/ipam/views.py +61 -87
  237. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  238. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  239. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  240. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  241. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  242. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  243. nautobot/project-static/docs/404.html +46 -4
  244. nautobot/project-static/docs/apps/index.html +46 -4
  245. nautobot/project-static/docs/apps/nautobot-apps.html +47 -6
  246. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  247. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.88dd0f4e.min.js} +2 -2
  248. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.88dd0f4e.min.js.map} +2 -2
  249. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +62 -10
  250. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +59 -7
  251. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +374 -122
  252. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +90 -18
  253. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +95 -21
  254. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +53 -6
  255. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +52 -5
  256. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +79 -17
  257. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +102 -28
  258. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +108 -21
  259. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +131 -38
  260. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +239 -65
  261. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +581 -165
  262. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +109 -36
  263. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +453 -167
  264. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +493 -211
  265. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +60 -8
  266. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +71 -15
  267. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +407 -55
  268. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +620 -205
  269. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +858 -412
  270. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +59 -7
  271. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +448 -186
  272. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +365 -147
  273. nautobot/project-static/docs/development/apps/api/configuration-view.html +46 -4
  274. nautobot/project-static/docs/development/apps/api/database-backend-config.html +46 -4
  275. nautobot/project-static/docs/development/apps/api/models/django-admin.html +46 -4
  276. nautobot/project-static/docs/development/apps/api/models/global-search.html +46 -4
  277. nautobot/project-static/docs/development/apps/api/models/graphql.html +46 -4
  278. nautobot/project-static/docs/development/apps/api/models/index.html +46 -4
  279. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +46 -4
  280. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +46 -4
  281. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +46 -4
  282. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +46 -4
  283. nautobot/project-static/docs/development/apps/api/platform-features/index.html +46 -4
  284. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +46 -4
  285. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +46 -4
  286. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +46 -4
  287. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +46 -4
  288. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +68 -7
  289. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +46 -4
  290. nautobot/project-static/docs/development/apps/api/prometheus.html +46 -4
  291. nautobot/project-static/docs/development/apps/api/setup.html +46 -4
  292. nautobot/project-static/docs/development/apps/api/testing.html +46 -4
  293. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +46 -4
  294. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +46 -4
  295. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +46 -4
  296. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +46 -4
  297. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +46 -4
  298. nautobot/project-static/docs/development/apps/api/views/base-template.html +46 -4
  299. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +46 -4
  300. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +46 -4
  301. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +46 -4
  302. nautobot/project-static/docs/development/apps/api/views/index.html +46 -4
  303. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +46 -4
  304. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +46 -4
  305. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +46 -4
  306. nautobot/project-static/docs/development/apps/api/views/notes.html +46 -4
  307. nautobot/project-static/docs/development/apps/api/views/rest-api.html +52 -6
  308. nautobot/project-static/docs/development/apps/api/views/urls.html +46 -4
  309. nautobot/project-static/docs/development/apps/index.html +46 -4
  310. nautobot/project-static/docs/development/apps/migration/code-updates.html +46 -4
  311. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +46 -4
  312. nautobot/project-static/docs/development/apps/migration/from-v1.html +46 -4
  313. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +46 -4
  314. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +46 -4
  315. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +46 -4
  316. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +46 -4
  317. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +50 -8
  318. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +46 -4
  319. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +211 -14
  320. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +46 -4
  321. nautobot/project-static/docs/development/apps/porting-from-netbox.html +46 -4
  322. nautobot/project-static/docs/development/core/application-registry.html +46 -4
  323. nautobot/project-static/docs/development/core/best-practices.html +46 -4
  324. nautobot/project-static/docs/development/core/bootstrap-ui.html +46 -4
  325. nautobot/project-static/docs/development/core/caching.html +46 -4
  326. nautobot/project-static/docs/development/core/controllers.html +46 -4
  327. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +73 -74
  328. nautobot/project-static/docs/development/core/generic-views.html +46 -4
  329. nautobot/project-static/docs/development/core/getting-started.html +249 -224
  330. nautobot/project-static/docs/development/core/homepage.html +49 -7
  331. nautobot/project-static/docs/development/core/index.html +46 -4
  332. nautobot/project-static/docs/development/core/{local-k8s.html → minikube-dev-environment-for-k8s-jobs.html} +469 -168
  333. nautobot/project-static/docs/development/core/model-checklist.html +56 -12
  334. nautobot/project-static/docs/development/core/model-features.html +46 -4
  335. nautobot/project-static/docs/development/core/natural-keys.html +46 -4
  336. nautobot/project-static/docs/development/core/navigation-menu.html +46 -4
  337. nautobot/project-static/docs/development/core/release-checklist.html +49 -7
  338. nautobot/project-static/docs/development/core/role-internals.html +46 -4
  339. nautobot/project-static/docs/development/core/settings.html +46 -4
  340. nautobot/project-static/docs/development/core/style-guide.html +49 -7
  341. nautobot/project-static/docs/development/core/templates.html +46 -4
  342. nautobot/project-static/docs/development/core/testing.html +46 -4
  343. nautobot/project-static/docs/development/core/ui-component-framework.html +369 -273
  344. nautobot/project-static/docs/development/core/user-preferences.html +46 -4
  345. nautobot/project-static/docs/development/index.html +46 -4
  346. nautobot/project-static/docs/development/jobs/index.html +216 -122
  347. nautobot/project-static/docs/development/jobs/migration/from-v1.html +46 -4
  348. nautobot/project-static/docs/index.html +54 -23
  349. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  350. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  351. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  352. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  353. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  354. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  355. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  356. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  357. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  358. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  359. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  360. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  361. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  362. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  363. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  364. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  365. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  366. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  367. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  368. nautobot/project-static/docs/objects.inv +0 -0
  369. nautobot/project-static/docs/overview/application_stack.html +47 -7
  370. nautobot/project-static/docs/overview/design_philosophy.html +46 -4
  371. nautobot/project-static/docs/release-notes/index.html +52 -12
  372. nautobot/project-static/docs/release-notes/version-1.0.html +234 -193
  373. nautobot/project-static/docs/release-notes/version-1.1.html +231 -190
  374. nautobot/project-static/docs/release-notes/version-1.2.html +306 -265
  375. nautobot/project-static/docs/release-notes/version-1.3.html +332 -291
  376. nautobot/project-static/docs/release-notes/version-1.4.html +417 -377
  377. nautobot/project-static/docs/release-notes/version-1.5.html +605 -566
  378. nautobot/project-static/docs/release-notes/version-1.6.html +904 -447
  379. nautobot/project-static/docs/release-notes/version-2.0.html +528 -489
  380. nautobot/project-static/docs/release-notes/version-2.1.html +363 -324
  381. nautobot/project-static/docs/release-notes/version-2.2.html +356 -317
  382. nautobot/project-static/docs/release-notes/version-2.3.html +997 -352
  383. nautobot/project-static/docs/release-notes/version-2.4.html +525 -101
  384. nautobot/project-static/docs/requirements.txt +2 -2
  385. nautobot/project-static/docs/search/search_index.json +1 -1
  386. nautobot/project-static/docs/sitemap.xml +295 -287
  387. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  388. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +46 -4
  389. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +46 -4
  390. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +48 -6
  391. nautobot/project-static/docs/user-guide/administration/configuration/index.html +46 -4
  392. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +46 -4
  393. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +110 -8
  394. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +46 -4
  395. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +46 -4
  396. nautobot/project-static/docs/user-guide/administration/guides/docker.html +46 -4
  397. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +46 -4
  398. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +46 -4
  399. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +46 -4
  400. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +46 -4
  401. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +46 -4
  402. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +48 -6
  403. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +46 -4
  404. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +46 -4
  405. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +46 -4
  406. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +66 -8
  407. nautobot/project-static/docs/user-guide/administration/installation/index.html +46 -4
  408. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +47 -5
  409. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +46 -4
  410. nautobot/project-static/docs/user-guide/administration/installation/services.html +46 -4
  411. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +46 -4
  412. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +46 -4
  413. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +46 -4
  414. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +46 -4
  415. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +46 -4
  416. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +46 -4
  417. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +46 -4
  418. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +46 -4
  419. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +46 -4
  420. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +49 -8
  421. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +46 -4
  422. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +46 -4
  423. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +46 -4
  424. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +46 -4
  425. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +46 -4
  426. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +46 -4
  427. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +46 -4
  428. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +46 -4
  429. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +46 -4
  430. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +46 -4
  431. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +46 -4
  432. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +46 -4
  433. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +46 -4
  434. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +46 -4
  435. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +46 -4
  436. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +46 -4
  437. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +46 -4
  438. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +46 -4
  439. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +46 -4
  440. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +46 -4
  441. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +46 -4
  442. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +46 -4
  443. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +46 -4
  444. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +46 -4
  445. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +46 -4
  446. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +46 -4
  447. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +46 -4
  448. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +46 -4
  449. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +46 -4
  450. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +46 -4
  451. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +46 -4
  452. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +46 -4
  453. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +46 -4
  454. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +46 -4
  455. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +46 -4
  456. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +46 -4
  457. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +46 -4
  458. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +46 -4
  459. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +46 -4
  460. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +46 -4
  461. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +46 -4
  462. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +46 -4
  463. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +46 -4
  464. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +46 -4
  465. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +46 -4
  466. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +46 -4
  467. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +46 -4
  468. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +46 -4
  469. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +46 -4
  470. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +46 -4
  471. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +46 -4
  472. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +46 -4
  473. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +46 -4
  474. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +46 -4
  475. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +46 -4
  476. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +46 -4
  477. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +46 -4
  478. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +50 -12
  479. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +46 -4
  480. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +46 -4
  481. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +46 -4
  482. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +46 -4
  483. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +46 -4
  484. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +46 -4
  485. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +46 -4
  486. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +46 -4
  487. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +46 -4
  488. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +46 -4
  489. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +46 -4
  490. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +46 -4
  491. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +49 -7
  492. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +46 -4
  493. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +46 -4
  494. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +46 -4
  495. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +46 -4
  496. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +46 -4
  497. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +46 -4
  498. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +46 -4
  499. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +46 -4
  500. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +46 -4
  501. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +46 -4
  502. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +46 -4
  503. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +46 -4
  504. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +46 -4
  505. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +46 -4
  506. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +46 -4
  507. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +46 -4
  508. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +46 -4
  509. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +46 -4
  510. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +46 -4
  511. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +46 -4
  512. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +46 -4
  513. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +46 -4
  514. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +51 -7
  515. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +46 -4
  516. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  517. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  518. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  519. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  520. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  521. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  522. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  523. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  524. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  525. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  526. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  527. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  528. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  529. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +46 -4
  530. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +46 -4
  531. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +49 -7
  532. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  533. nautobot/project-static/docs/user-guide/index.html +46 -4
  534. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +46 -4
  535. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +50 -8
  536. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +46 -4
  537. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +46 -4
  538. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +46 -4
  539. nautobot/project-static/docs/user-guide/platform-functionality/events.html +46 -4
  540. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +46 -4
  541. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +46 -4
  542. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +46 -4
  543. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +46 -4
  544. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +46 -4
  545. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +46 -4
  546. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +50 -7
  547. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +46 -4
  548. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +49 -7
  549. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +46 -4
  550. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +46 -4
  551. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  552. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +46 -4
  553. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +46 -4
  554. nautobot/project-static/docs/user-guide/platform-functionality/note.html +46 -4
  555. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +46 -4
  556. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +47 -5
  557. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +46 -4
  558. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +46 -4
  559. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +94 -25
  560. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +74 -5
  561. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +46 -4
  562. nautobot/project-static/docs/user-guide/platform-functionality/role.html +46 -4
  563. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +46 -4
  564. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +46 -4
  565. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +46 -4
  566. nautobot/project-static/docs/user-guide/platform-functionality/status.html +46 -4
  567. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +46 -4
  568. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +46 -4
  569. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +46 -4
  570. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +46 -4
  571. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +46 -4
  572. nautobot/project-static/js/forms.js +1 -1
  573. nautobot/tenancy/api/views.py +9 -13
  574. nautobot/tenancy/views.py +4 -2
  575. nautobot/users/admin.py +1 -1
  576. nautobot/users/api/serializers.py +5 -4
  577. nautobot/users/api/views.py +3 -3
  578. nautobot/virtualization/api/serializers.py +4 -4
  579. nautobot/virtualization/api/views.py +5 -24
  580. nautobot/virtualization/filters.py +20 -3
  581. nautobot/virtualization/models.py +1 -1
  582. nautobot/virtualization/tables.py +2 -2
  583. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  584. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  585. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  586. nautobot/virtualization/tests/test_filters.py +17 -0
  587. nautobot/wireless/filters.py +2 -2
  588. nautobot/wireless/forms.py +1 -1
  589. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
  590. nautobot/wireless/tests/integration/__init__.py +0 -0
  591. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  592. nautobot/wireless/tests/test_filters.py +29 -1
  593. nautobot/wireless/tests/test_views.py +22 -1
  594. nautobot/wireless/views.py +0 -10
  595. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/METADATA +6 -6
  596. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/RECORD +600 -550
  597. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/WHEEL +1 -1
  598. nautobot/core/fixtures/user-data.json +0 -59
  599. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/LICENSE.txt +0 -0
  600. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/NOTICE +0 -0
  601. {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.46">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
22
22
 
23
23
 
24
24
 
@@ -2112,6 +2112,27 @@
2112
2112
 
2113
2113
 
2114
2114
 
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+ <li class="md-nav__item">
2122
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2123
+
2124
+
2125
+ <span class="md-ellipsis">
2126
+ Wireless Networks and Controllers
2127
+ </span>
2128
+
2129
+
2130
+ </a>
2131
+ </li>
2132
+
2133
+
2134
+
2135
+
2115
2136
  </ul>
2116
2137
  </nav>
2117
2138
 
@@ -5131,6 +5152,27 @@
5131
5152
 
5132
5153
 
5133
5154
 
5155
+ <li class="md-nav__item">
5156
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5157
+
5158
+
5159
+ <span class="md-ellipsis">
5160
+ Kubernetes Job Support
5161
+ </span>
5162
+
5163
+
5164
+ </a>
5165
+ </li>
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
5134
5176
  <li class="md-nav__item">
5135
5177
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
5136
5178
 
@@ -7326,6 +7368,15 @@
7326
7368
  </span>
7327
7369
  </a>
7328
7370
 
7371
+ </li>
7372
+
7373
+ <li class="md-nav__item">
7374
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="md-nav__link">
7375
+ <span class="md-ellipsis">
7376
+ get_m2m_fields
7377
+ </span>
7378
+ </a>
7379
+
7329
7380
  </li>
7330
7381
 
7331
7382
  <li class="md-nav__item">
@@ -7828,6 +7879,15 @@
7828
7879
  </span>
7829
7880
  </a>
7830
7881
 
7882
+ </li>
7883
+
7884
+ <li class="md-nav__item">
7885
+ <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="md-nav__link">
7886
+ <span class="md-ellipsis">
7887
+ test_id
7888
+ </span>
7889
+ </a>
7890
+
7831
7891
  </li>
7832
7892
 
7833
7893
  <li class="md-nav__item">
@@ -8334,6 +8394,15 @@
8334
8394
  </span>
8335
8395
  </a>
8336
8396
 
8397
+ </li>
8398
+
8399
+ <li class="md-nav__item">
8400
+ <a href="#nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="md-nav__link">
8401
+ <span class="md-ellipsis">
8402
+ fill_filters_select2_field
8403
+ </span>
8404
+ </a>
8405
+
8337
8406
  </li>
8338
8407
 
8339
8408
  <li class="md-nav__item">
@@ -9547,11 +9616,11 @@
9547
9616
 
9548
9617
 
9549
9618
  <li class="md-nav__item">
9550
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
9619
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
9551
9620
 
9552
9621
 
9553
9622
  <span class="md-ellipsis">
9554
- Local Kubernetes Cluster
9623
+ Minikube Dev Environment for K8s Jobs
9555
9624
  </span>
9556
9625
 
9557
9626
 
@@ -10484,6 +10553,15 @@
10484
10553
  </span>
10485
10554
  </a>
10486
10555
 
10556
+ </li>
10557
+
10558
+ <li class="md-nav__item">
10559
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="md-nav__link">
10560
+ <span class="md-ellipsis">
10561
+ get_m2m_fields
10562
+ </span>
10563
+ </a>
10564
+
10487
10565
  </li>
10488
10566
 
10489
10567
  <li class="md-nav__item">
@@ -10986,6 +11064,15 @@
10986
11064
  </span>
10987
11065
  </a>
10988
11066
 
11067
+ </li>
11068
+
11069
+ <li class="md-nav__item">
11070
+ <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="md-nav__link">
11071
+ <span class="md-ellipsis">
11072
+ test_id
11073
+ </span>
11074
+ </a>
11075
+
10989
11076
  </li>
10990
11077
 
10991
11078
  <li class="md-nav__item">
@@ -11492,6 +11579,15 @@
11492
11579
  </span>
11493
11580
  </a>
11494
11581
 
11582
+ </li>
11583
+
11584
+ <li class="md-nav__item">
11585
+ <a href="#nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="md-nav__link">
11586
+ <span class="md-ellipsis">
11587
+ fill_filters_select2_field
11588
+ </span>
11589
+ </a>
11590
+
11495
11591
  </li>
11496
11592
 
11497
11593
  <li class="md-nav__item">
@@ -11940,7 +12036,12 @@
11940
12036
 
11941
12037
  <div class="doc doc-contents first">
11942
12038
 
11943
- <p>Utilities for apps to implement test automation.</p>
12039
+ <p>Utilities for apps to implement test automation.</p>
12040
+
12041
+
12042
+
12043
+
12044
+
11944
12045
 
11945
12046
 
11946
12047
 
@@ -11966,15 +12067,20 @@
11966
12067
 
11967
12068
  <div class="doc doc-contents ">
11968
12069
  <p class="doc doc-class-bases">
11969
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelTestCase" optional hover>ModelTestCase</autoref></code></p>
12070
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelTestCase" href="#nautobot.apps.testing.ModelTestCase">ModelTestCase</a></code></p>
11970
12071
 
11971
12072
 
11972
- <p>Base test case for API requests.</p>
12073
+ <p>Base test case for API requests.</p>
11973
12074
  <p>api_version: Specific API version to test. Leave unset to test the default behavior. Override with set_api_version()</p>
11974
12075
 
11975
12076
 
11976
12077
 
11977
12078
 
12079
+
12080
+
12081
+
12082
+
12083
+
11978
12084
  <div class="doc doc-children">
11979
12085
 
11980
12086
 
@@ -11996,7 +12102,7 @@
11996
12102
 
11997
12103
  <div class="doc doc-contents ">
11998
12104
 
11999
- <p>Check an API response for content that should not be exposed in the API.</p>
12105
+ <p>Check an API response for content that should not be exposed in the API.</p>
12000
12106
  <p>If a specific API has a false failure here (maybe it has security-related strings as model flags or something?),
12001
12107
  its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12002
12108
 
@@ -12007,6 +12113,23 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12007
12113
  <div class="doc doc-object doc-function">
12008
12114
 
12009
12115
 
12116
+ <h3 id="nautobot.apps.testing.APITestCase.get_m2m_fields" class="doc doc-heading">
12117
+ <code class="highlight language-python"><span class="n">get_m2m_fields</span><span class="p">()</span></code>
12118
+
12119
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="headerlink" title="Permanent link">&para;</a></h3>
12120
+
12121
+
12122
+ <div class="doc doc-contents ">
12123
+
12124
+ <p>Get serializer field names that are many-to-many or one-to-many and thus affected by ?exclude_m2m=true.</p>
12125
+
12126
+ </div>
12127
+
12128
+ </div>
12129
+
12130
+ <div class="doc doc-object doc-function">
12131
+
12132
+
12010
12133
  <h3 id="nautobot.apps.testing.APITestCase.setUp" class="doc doc-heading">
12011
12134
  <code class="highlight language-python"><span class="n">setUp</span><span class="p">()</span></code>
12012
12135
 
@@ -12015,7 +12138,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12015
12138
 
12016
12139
  <div class="doc doc-contents ">
12017
12140
 
12018
- <p>Create a token for API calls.</p>
12141
+ <p>Create a token for API calls.</p>
12019
12142
 
12020
12143
  </div>
12021
12144
 
@@ -12032,7 +12155,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12032
12155
 
12033
12156
  <div class="doc doc-contents ">
12034
12157
 
12035
- <p>Set or unset a specific API version for requests in this test case.</p>
12158
+ <p>Set or unset a specific API version for requests in this test case.</p>
12036
12159
 
12037
12160
  </div>
12038
12161
 
@@ -12059,7 +12182,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12059
12182
 
12060
12183
  <div class="doc doc-contents ">
12061
12184
  <p class="doc doc-class-bases">
12062
- Bases: <code><autoref identifier="rest_framework.test.APITransactionTestCase" optional hover>APITransactionTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code></p>
12185
+ Bases: <code><span title="rest_framework.test.APITransactionTestCase">APITransactionTestCase</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code></p>
12186
+
12187
+
12188
+
12189
+
12190
+
12063
12191
 
12064
12192
 
12065
12193
 
@@ -12086,7 +12214,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12086
12214
 
12087
12215
  <div class="doc doc-contents ">
12088
12216
 
12089
- <p>Create a superuser and token for API calls.</p>
12217
+ <p>Create a superuser and token for API calls.</p>
12090
12218
 
12091
12219
  </div>
12092
12220
 
@@ -12117,6 +12245,11 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12117
12245
 
12118
12246
 
12119
12247
 
12248
+
12249
+
12250
+
12251
+
12252
+
12120
12253
  <div class="doc doc-children">
12121
12254
 
12122
12255
 
@@ -12139,7 +12272,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12139
12272
 
12140
12273
  <div class="doc doc-contents ">
12141
12274
  <p class="doc doc-class-bases">
12142
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12275
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12276
+
12277
+
12278
+
12279
+
12280
+
12143
12281
 
12144
12282
 
12145
12283
 
@@ -12166,7 +12304,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12166
12304
 
12167
12305
  <div class="doc doc-contents ">
12168
12306
 
12169
- <p>POST a set of objects in a single request.</p>
12307
+ <p>POST a set of objects in a single request.</p>
12170
12308
 
12171
12309
  </div>
12172
12310
 
@@ -12183,7 +12321,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12183
12321
 
12184
12322
  <div class="doc doc-contents ">
12185
12323
 
12186
- <p>POST a single object with permission.</p>
12324
+ <p>POST a single object with permission.</p>
12187
12325
 
12188
12326
  </div>
12189
12327
 
@@ -12200,7 +12338,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12200
12338
 
12201
12339
  <div class="doc doc-contents ">
12202
12340
 
12203
- <p>POST a single object without permission.</p>
12341
+ <p>POST a single object without permission.</p>
12204
12342
 
12205
12343
  </div>
12206
12344
 
@@ -12217,7 +12355,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12217
12355
 
12218
12356
  <div class="doc doc-contents ">
12219
12357
 
12220
- <p>CSV export an object, delete it, and recreate it via CSV import.</p>
12358
+ <p>CSV export an object, delete it, and recreate it via CSV import.</p>
12221
12359
 
12222
12360
  </div>
12223
12361
 
@@ -12244,7 +12382,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12244
12382
 
12245
12383
  <div class="doc doc-contents ">
12246
12384
  <p class="doc doc-class-bases">
12247
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12385
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12386
+
12387
+
12388
+
12389
+
12390
+
12248
12391
 
12249
12392
 
12250
12393
 
@@ -12271,7 +12414,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12271
12414
 
12272
12415
  <div class="doc doc-contents ">
12273
12416
 
12274
- <p>Get an instance that can be deleted.</p>
12417
+ <p>Get an instance that can be deleted.</p>
12275
12418
  <p>For some models this may just be any random object, but when we have FKs with <code>on_delete=models.PROTECT</code>
12276
12419
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
12277
12420
 
@@ -12290,7 +12433,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12290
12433
 
12291
12434
  <div class="doc doc-contents ">
12292
12435
 
12293
- <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
12436
+ <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
12294
12437
  <p>For some models this may just be any random objects, but when we have FKs with <code>on_delete=models.PROTECT</code>
12295
12438
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
12296
12439
 
@@ -12309,7 +12452,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12309
12452
 
12310
12453
  <div class="doc doc-contents ">
12311
12454
 
12312
- <p>DELETE a set of objects in a single request.</p>
12455
+ <p>DELETE a set of objects in a single request.</p>
12313
12456
 
12314
12457
  </div>
12315
12458
 
@@ -12326,7 +12469,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12326
12469
 
12327
12470
  <div class="doc doc-contents ">
12328
12471
 
12329
- <p>DELETE a single object identified by its primary key.</p>
12472
+ <p>DELETE a single object identified by its primary key.</p>
12330
12473
 
12331
12474
  </div>
12332
12475
 
@@ -12343,7 +12486,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12343
12486
 
12344
12487
  <div class="doc doc-contents ">
12345
12488
 
12346
- <p>DELETE a single object without permission.</p>
12489
+ <p>DELETE a single object without permission.</p>
12347
12490
 
12348
12491
  </div>
12349
12492
 
@@ -12370,7 +12513,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12370
12513
 
12371
12514
  <div class="doc doc-contents ">
12372
12515
  <p class="doc doc-class-bases">
12373
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12516
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12517
+
12518
+
12519
+
12520
+
12521
+
12374
12522
 
12375
12523
 
12376
12524
 
@@ -12397,7 +12545,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12397
12545
 
12398
12546
  <div class="doc doc-contents ">
12399
12547
 
12400
- <p>GET a single object as an authenticated user with permission to view the object.</p>
12548
+ <p>GET a single object as an authenticated user with permission to view the object.</p>
12401
12549
 
12402
12550
  </div>
12403
12551
 
@@ -12414,7 +12562,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12414
12562
 
12415
12563
  <div class="doc doc-contents ">
12416
12564
 
12417
- <p>GET a single object as an unauthenticated user.</p>
12565
+ <p>GET a single object as an unauthenticated user.</p>
12418
12566
 
12419
12567
  </div>
12420
12568
 
@@ -12431,7 +12579,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12431
12579
 
12432
12580
  <div class="doc doc-contents ">
12433
12581
 
12434
- <p>GET a single object as an authenticated user without the required permission.</p>
12582
+ <p>GET a single object as an authenticated user without the required permission.</p>
12435
12583
 
12436
12584
  </div>
12437
12585
 
@@ -12448,7 +12596,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12448
12596
 
12449
12597
  <div class="doc doc-contents ">
12450
12598
 
12451
- <p>Make an OPTIONS request for a single object.</p>
12599
+ <p>Make an OPTIONS request for a single object.</p>
12452
12600
 
12453
12601
  </div>
12454
12602
 
@@ -12475,7 +12623,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12475
12623
 
12476
12624
  <div class="doc doc-contents ">
12477
12625
  <p class="doc doc-class-bases">
12478
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12626
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12627
+
12628
+
12629
+
12630
+
12631
+
12479
12632
 
12480
12633
 
12481
12634
 
@@ -12502,7 +12655,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12502
12655
 
12503
12656
  <div class="doc doc-contents ">
12504
12657
 
12505
- <p>Get a list of model fields that could be tested with the ?depth query parameter</p>
12658
+ <p>Get a list of model fields that could be tested with the ?depth query parameter</p>
12506
12659
 
12507
12660
  </div>
12508
12661
 
@@ -12519,7 +12672,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12519
12672
 
12520
12673
  <div class="doc doc-contents ">
12521
12674
 
12522
- <p>GET a list of objects as an authenticated user with permission to view the objects.</p>
12675
+ <p>GET a list of objects as an authenticated user with permission to view the objects.</p>
12523
12676
 
12524
12677
  </div>
12525
12678
 
@@ -12536,7 +12689,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12536
12689
 
12537
12690
  <div class="doc doc-contents ">
12538
12691
 
12539
- <p>GET a list of objects as an unauthenticated user.</p>
12692
+ <p>GET a list of objects as an unauthenticated user.</p>
12540
12693
 
12541
12694
  </div>
12542
12695
 
@@ -12553,7 +12706,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12553
12706
 
12554
12707
  <div class="doc doc-contents ">
12555
12708
 
12556
- <p>GET a list of objects in CSV format as an authenticated user with permission to view some objects.</p>
12709
+ <p>GET a list of objects in CSV format as an authenticated user with permission to view some objects.</p>
12557
12710
 
12558
12711
  </div>
12559
12712
 
@@ -12570,7 +12723,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12570
12723
 
12571
12724
  <div class="doc doc-contents ">
12572
12725
 
12573
- <p>GET a list of objects using the "?depth=0" parameter.</p>
12726
+ <p>GET a list of objects using the "?depth=0" parameter.</p>
12574
12727
 
12575
12728
  </div>
12576
12729
 
@@ -12587,7 +12740,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12587
12740
 
12588
12741
  <div class="doc doc-contents ">
12589
12742
 
12590
- <p>GET a list of objects using the "?depth=1" parameter.</p>
12743
+ <p>GET a list of objects using the "?depth=1" parameter.</p>
12591
12744
 
12592
12745
  </div>
12593
12746
 
@@ -12604,7 +12757,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12604
12757
 
12605
12758
  <div class="doc doc-contents ">
12606
12759
 
12607
- <p>GET a list of objects filtered by ID.</p>
12760
+ <p>GET a list of objects filtered by ID.</p>
12608
12761
 
12609
12762
  </div>
12610
12763
 
@@ -12621,7 +12774,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12621
12774
 
12622
12775
  <div class="doc doc-contents ">
12623
12776
 
12624
- <p>GET a list of objects with an unknown filter parameter and no strict filtering, expect it to be ignored.</p>
12777
+ <p>GET a list of objects with an unknown filter parameter and no strict filtering, expect it to be ignored.</p>
12625
12778
 
12626
12779
  </div>
12627
12780
 
@@ -12638,7 +12791,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12638
12791
 
12639
12792
  <div class="doc doc-contents ">
12640
12793
 
12641
- <p>GET a list of objects with an unknown filter parameter and strict filtering, expect a 400 response.</p>
12794
+ <p>GET a list of objects with an unknown filter parameter and strict filtering, expect a 400 response.</p>
12642
12795
 
12643
12796
  </div>
12644
12797
 
@@ -12655,7 +12808,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12655
12808
 
12656
12809
  <div class="doc doc-contents ">
12657
12810
 
12658
- <p>GET a list of objects as an authenticated user without the required permission.</p>
12811
+ <p>GET a list of objects as an authenticated user without the required permission.</p>
12659
12812
 
12660
12813
  </div>
12661
12814
 
@@ -12672,7 +12825,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12672
12825
 
12673
12826
  <div class="doc doc-contents ">
12674
12827
 
12675
- <p>Make an OPTIONS request for a list endpoint.</p>
12828
+ <p>Make an OPTIONS request for a list endpoint.</p>
12676
12829
 
12677
12830
  </div>
12678
12831
 
@@ -12699,10 +12852,15 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12699
12852
 
12700
12853
  <div class="doc doc-contents ">
12701
12854
  <p class="doc doc-class-bases">
12702
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12855
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12856
+
12857
+
12858
+ <p>Validate Notes URL on objects that have the Note model Mixin.</p>
12859
+
12860
+
12861
+
12703
12862
 
12704
12863
 
12705
- <p>Validate Notes URL on objects that have the Note model Mixin.</p>
12706
12864
 
12707
12865
 
12708
12866
 
@@ -12739,7 +12897,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12739
12897
  <div class="doc doc-contents ">
12740
12898
 
12741
12899
 
12742
- <p>Test <code>?depth=2</code> query parameter for TreeModel</p>
12900
+ <p>Test <code>?depth=2</code> query parameter for TreeModel</p>
12901
+
12902
+
12903
+
12904
+
12905
+
12743
12906
 
12744
12907
 
12745
12908
 
@@ -12765,7 +12928,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12765
12928
 
12766
12929
  <div class="doc doc-contents ">
12767
12930
 
12768
- <p>GET a list of objects using the "?depth=2" parameter.
12931
+ <p>GET a list of objects using the "?depth=2" parameter.
12769
12932
  TreeModel Only</p>
12770
12933
 
12771
12934
  </div>
@@ -12793,7 +12956,12 @@ TreeModel Only</p>
12793
12956
 
12794
12957
  <div class="doc doc-contents ">
12795
12958
  <p class="doc doc-class-bases">
12796
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12959
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12960
+
12961
+
12962
+
12963
+
12964
+
12797
12965
 
12798
12966
 
12799
12967
 
@@ -12820,7 +12988,7 @@ TreeModel Only</p>
12820
12988
 
12821
12989
  <div class="doc doc-contents ">
12822
12990
 
12823
- <p>PATCH a set of objects in a single request.</p>
12991
+ <p>PATCH a set of objects in a single request.</p>
12824
12992
 
12825
12993
  </div>
12826
12994
 
@@ -12837,7 +13005,7 @@ TreeModel Only</p>
12837
13005
 
12838
13006
  <div class="doc doc-contents ">
12839
13007
 
12840
- <p>GET and then PUT an object and verify that it's accepted and unchanged.</p>
13008
+ <p>GET and then PUT an object and verify that it's accepted and unchanged.</p>
12841
13009
 
12842
13010
  </div>
12843
13011
 
@@ -12854,7 +13022,7 @@ TreeModel Only</p>
12854
13022
 
12855
13023
  <div class="doc doc-contents ">
12856
13024
 
12857
- <p>Make an OPTIONS request for a list endpoint and validate choices match expected choices for serializer.</p>
13025
+ <p>Make an OPTIONS request for a list endpoint and validate choices match expected choices for serializer.</p>
12858
13026
 
12859
13027
  </div>
12860
13028
 
@@ -12871,7 +13039,7 @@ TreeModel Only</p>
12871
13039
 
12872
13040
  <div class="doc doc-contents ">
12873
13041
 
12874
- <p>PATCH a single object identified by its ID.</p>
13042
+ <p>PATCH a single object identified by its ID.</p>
12875
13043
 
12876
13044
  </div>
12877
13045
 
@@ -12888,7 +13056,7 @@ TreeModel Only</p>
12888
13056
 
12889
13057
  <div class="doc doc-contents ">
12890
13058
 
12891
- <p>PATCH a single object without permission.</p>
13059
+ <p>PATCH a single object without permission.</p>
12892
13060
 
12893
13061
  </div>
12894
13062
 
@@ -12928,6 +13096,11 @@ TreeModel Only</p>
12928
13096
 
12929
13097
 
12930
13098
 
13099
+
13100
+
13101
+
13102
+
13103
+
12931
13104
  <div class="doc doc-children">
12932
13105
 
12933
13106
 
@@ -12950,10 +13123,15 @@ TreeModel Only</p>
12950
13123
 
12951
13124
  <div class="doc doc-contents ">
12952
13125
  <p class="doc doc-class-bases">
12953
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13126
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13127
+
13128
+
13129
+ <p>Base class for testing of FilterSets.</p>
13130
+
13131
+
13132
+
12954
13133
 
12955
13134
 
12956
- <p>Base class for testing of FilterSets.</p>
12957
13135
 
12958
13136
 
12959
13137
 
@@ -12979,7 +13157,7 @@ TreeModel Only</p>
12979
13157
 
12980
13158
  <div class="doc doc-contents ">
12981
13159
 
12982
- <p>Returns a list of distinct values from the requested queryset field to use in filterset tests.</p>
13160
+ <p>Returns a list of distinct values from the requested queryset field to use in filterset tests.</p>
12983
13161
  <p>Returns a list for use in testing multiple choice filters. The size of the returned list is random
12984
13162
  but will contain at minimum 2 unique values. The list of values will match at least 2 instances when
12985
13163
  passed to the queryset's filter(field_name__in=[]) method but will fail to match at least one instance.</p>
@@ -12997,9 +13175,11 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
12997
13175
  </thead>
12998
13176
  <tbody>
12999
13177
  <tr class="doc-section-item">
13000
- <td><code>field_name</code></td>
13001
13178
  <td>
13002
- <code><autoref identifier="str" optional>str</autoref></code>
13179
+ <code>field_name</code>
13180
+ </td>
13181
+ <td>
13182
+ <code>str</code>
13003
13183
  </td>
13004
13184
  <td>
13005
13185
  <div class="doc-md-description">
@@ -13011,9 +13191,11 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
13011
13191
  </td>
13012
13192
  </tr>
13013
13193
  <tr class="doc-section-item">
13014
- <td><code>queryset</code></td>
13015
13194
  <td>
13016
- <code><autoref identifier="django.db.models.QuerySet" optional hover>QuerySet</autoref></code>
13195
+ <code>queryset</code>
13196
+ </td>
13197
+ <td>
13198
+ <code><span title="django.db.models.QuerySet">QuerySet</span></code>
13017
13199
  </td>
13018
13200
  <td>
13019
13201
  <div class="doc-md-description">
@@ -13039,7 +13221,7 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
13039
13221
  <tbody>
13040
13222
  <tr class="doc-section-item">
13041
13223
  <td>
13042
- <code><autoref identifier="list" optional>list</autoref></code>
13224
+ <code>list</code>
13043
13225
  </td>
13044
13226
  <td>
13045
13227
  <div class="doc-md-description">
@@ -13062,7 +13244,7 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
13062
13244
  <tbody>
13063
13245
  <tr class="doc-section-item">
13064
13246
  <td>
13065
- <code><autoref identifier="ValueError" optional>ValueError</autoref></code>
13247
+ <code>ValueError</code>
13066
13248
  </td>
13067
13249
  <td>
13068
13250
  <div class="doc-md-description">
@@ -13099,10 +13281,15 @@ to filter the queryset to a subset of the total instances.</p>
13099
13281
 
13100
13282
  <div class="doc doc-contents ">
13101
13283
  <p class="doc doc-class-bases">
13102
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.BaseFilterTestCase" optional hover>BaseFilterTestCase</autoref></code></p>
13284
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.BaseFilterTestCase" href="#nautobot.apps.testing.FilterTestCases.BaseFilterTestCase">BaseFilterTestCase</a></code></p>
13285
+
13286
+
13287
+ <p>Add common tests for all FilterSets.</p>
13288
+
13289
+
13290
+
13103
13291
 
13104
13292
 
13105
- <p>Add common tests for all FilterSets.</p>
13106
13293
 
13107
13294
 
13108
13295
 
@@ -13128,7 +13315,7 @@ to filter the queryset to a subset of the total instances.</p>
13128
13315
 
13129
13316
  <div class="doc doc-contents ">
13130
13317
 
13131
- <p>Helper method to return q filter.</p>
13318
+ <p>Helper method to return q filter.</p>
13132
13319
 
13133
13320
  </div>
13134
13321
 
@@ -13145,7 +13332,7 @@ to filter the queryset to a subset of the total instances.</p>
13145
13332
 
13146
13333
  <div class="doc doc-contents ">
13147
13334
 
13148
- <p>Test all <code>RelatedMembershipBooleanFilter</code> filters found in <code>self.filterset.get_filters()</code>
13335
+ <p>Test all <code>RelatedMembershipBooleanFilter</code> filters found in <code>self.filterset.get_filters()</code>
13149
13336
  except for the ones with custom filter logic defined in its <code>method</code> attribute.</p>
13150
13337
  <p>This test asserts that <code>filter=True</code> matches <code>self.queryset.filter(field__isnull=False)</code> and
13151
13338
  that <code>filter=False</code> matches <code>self.queryset.filter(field__isnull=True)</code>.</p>
@@ -13165,7 +13352,7 @@ that <code>filter=False</code> matches <code>self.queryset.filter(field__isnull=
13165
13352
 
13166
13353
  <div class="doc doc-contents ">
13167
13354
 
13168
- <p>Test all multiple choice filters declared in <code>self.generic_filter_tests</code>.</p>
13355
+ <p>Test all multiple choice filters declared in <code>self.generic_filter_tests</code>.</p>
13169
13356
  <p>This test uses <code>get_filterset_test_values()</code> to retrieve a valid set of test data and asserts
13170
13357
  that the filterset filter output matches the corresponding queryset filter.
13171
13358
  The majority of Nautobot filters use conjoined=False, so the extra logic to support conjoined=True has not
@@ -13193,6 +13380,23 @@ This expects a field named <code>devices</code> on the model and a filter named
13193
13380
  <div class="doc doc-object doc-function">
13194
13381
 
13195
13382
 
13383
+ <h4 id="nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="doc doc-heading">
13384
+ <code class="highlight language-python"><span class="n">test_id</span><span class="p">()</span></code>
13385
+
13386
+ <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="headerlink" title="Permanent link">&para;</a></h4>
13387
+
13388
+
13389
+ <div class="doc doc-contents ">
13390
+
13391
+ <p>Verify that the filterset supports filtering by id with only lookup <code>__n</code>.</p>
13392
+
13393
+ </div>
13394
+
13395
+ </div>
13396
+
13397
+ <div class="doc doc-object doc-function">
13398
+
13399
+
13196
13400
  <h4 id="nautobot.apps.testing.FilterTestCases.FilterTestCase.test_invalid_filter" class="doc doc-heading">
13197
13401
  <code class="highlight language-python"><span class="n">test_invalid_filter</span><span class="p">()</span></code>
13198
13402
 
@@ -13201,7 +13405,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13201
13405
 
13202
13406
  <div class="doc doc-contents ">
13203
13407
 
13204
- <p>Verify that the filterset reports as invalid when initialized with an unsupported filter parameter.</p>
13408
+ <p>Verify that the filterset reports as invalid when initialized with an unsupported filter parameter.</p>
13205
13409
 
13206
13410
  </div>
13207
13411
 
@@ -13218,7 +13422,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13218
13422
 
13219
13423
  <div class="doc doc-contents ">
13220
13424
 
13221
- <p>Test the <code>q</code> filter based on attributes in <code>filter_predicates</code>.</p>
13425
+ <p>Test the <code>q</code> filter based on attributes in <code>filter_predicates</code>.</p>
13222
13426
 
13223
13427
  </div>
13224
13428
 
@@ -13235,7 +13439,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13235
13439
 
13236
13440
  <div class="doc doc-contents ">
13237
13441
 
13238
- <p>Test the <code>tags</code> filter which should be present on all PrimaryModel filtersets.</p>
13442
+ <p>Test the <code>tags</code> filter which should be present on all PrimaryModel filtersets.</p>
13239
13443
 
13240
13444
  </div>
13241
13445
 
@@ -13262,10 +13466,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13262
13466
 
13263
13467
  <div class="doc doc-contents ">
13264
13468
  <p class="doc doc-class-bases">
13265
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" optional hover>FilterTestCase</autoref></code></p>
13469
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" href="#nautobot.apps.testing.FilterTestCases.FilterTestCase">FilterTestCase</a></code></p>
13470
+
13471
+
13472
+ <p>Add simple tests for filtering by name.</p>
13473
+
13474
+
13475
+
13266
13476
 
13267
13477
 
13268
- <p>Add simple tests for filtering by name.</p>
13269
13478
 
13270
13479
 
13271
13480
 
@@ -13301,10 +13510,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13301
13510
 
13302
13511
  <div class="doc doc-contents ">
13303
13512
  <p class="doc doc-class-bases">
13304
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" optional hover>FilterTestCase</autoref></code></p>
13513
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" href="#nautobot.apps.testing.FilterTestCases.FilterTestCase">FilterTestCase</a></code></p>
13514
+
13515
+
13516
+ <p>Add simple tests for filtering by name and by slug.</p>
13517
+
13518
+
13519
+
13305
13520
 
13306
13521
 
13307
- <p>Add simple tests for filtering by name and by slug.</p>
13308
13522
 
13309
13523
 
13310
13524
 
@@ -13340,10 +13554,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13340
13554
 
13341
13555
  <div class="doc doc-contents ">
13342
13556
  <p class="doc doc-class-bases">
13343
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13557
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13558
+
13559
+
13560
+ <p>Add test cases for tenant and tenant-group filters.</p>
13561
+
13562
+
13563
+
13344
13564
 
13345
13565
 
13346
- <p>Add test cases for tenant and tenant-group filters.</p>
13347
13566
 
13348
13567
 
13349
13568
 
@@ -13392,6 +13611,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13392
13611
 
13393
13612
 
13394
13613
 
13614
+
13615
+
13616
+
13617
+
13618
+
13395
13619
  <div class="doc doc-children">
13396
13620
 
13397
13621
 
@@ -13414,10 +13638,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13414
13638
 
13415
13639
  <div class="doc doc-contents ">
13416
13640
  <p class="doc doc-class-bases">
13417
- Bases: <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13641
+ Bases: <code><span title="django.test.TestCase">TestCase</span></code></p>
13642
+
13643
+
13644
+ <p>Base class for generic form tests.</p>
13645
+
13646
+
13647
+
13418
13648
 
13419
13649
 
13420
- <p>Base class for generic form tests.</p>
13421
13650
 
13422
13651
 
13423
13652
 
@@ -13462,10 +13691,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13462
13691
 
13463
13692
  <div class="doc doc-contents ">
13464
13693
  <p class="doc doc-class-bases">
13465
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13694
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13695
+
13696
+
13697
+ <p>Parent class for TestCases which deal with models.</p>
13698
+
13699
+
13700
+
13466
13701
 
13467
13702
 
13468
- <p>Parent class for TestCases which deal with models.</p>
13469
13703
 
13470
13704
 
13471
13705
 
@@ -13505,6 +13739,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13505
13739
 
13506
13740
 
13507
13741
 
13742
+
13743
+
13744
+
13745
+
13746
+
13508
13747
  <div class="doc doc-children">
13509
13748
 
13510
13749
 
@@ -13527,10 +13766,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13527
13766
 
13528
13767
  <div class="doc doc-contents ">
13529
13768
  <p class="doc doc-class-bases">
13530
- Bases: <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code>, <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13769
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code>, <code><span title="django.test.TestCase">TestCase</span></code></p>
13770
+
13771
+
13772
+ <p>Base class for generic model tests.</p>
13773
+
13774
+
13775
+
13531
13776
 
13532
13777
 
13533
- <p>Base class for generic model tests.</p>
13534
13778
 
13535
13779
 
13536
13780
 
@@ -13556,7 +13800,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13556
13800
 
13557
13801
  <div class="doc doc-contents ">
13558
13802
 
13559
- <p>Check that <code>composite_key</code> and filtering by <code>composite_key</code> both work.</p>
13803
+ <p>Check that <code>composite_key</code> and filtering by <code>composite_key</code> both work.</p>
13560
13804
 
13561
13805
  </div>
13562
13806
 
@@ -13573,7 +13817,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13573
13817
 
13574
13818
  <div class="doc doc-contents ">
13575
13819
 
13576
- <p>For dynamic-group capable models, check that they work as intended.</p>
13820
+ <p>For dynamic-group capable models, check that they work as intended.</p>
13577
13821
 
13578
13822
  </div>
13579
13823
 
@@ -13590,7 +13834,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13590
13834
 
13591
13835
  <div class="doc doc-contents ">
13592
13836
 
13593
- <p>Check that <code>get_docs_url()</code> returns a valid static file path for this model.</p>
13837
+ <p>Check that <code>get_docs_url()</code> returns a valid static file path for this model.</p>
13594
13838
 
13595
13839
  </div>
13596
13840
 
@@ -13607,7 +13851,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13607
13851
 
13608
13852
  <div class="doc doc-contents ">
13609
13853
 
13610
- <p>Check that <code>natural_key()</code> and <code>get_by_natural_key()</code> work reciprocally.</p>
13854
+ <p>Check that <code>natural_key()</code> and <code>get_by_natural_key()</code> work reciprocally.</p>
13611
13855
 
13612
13856
  </div>
13613
13857
 
@@ -13643,10 +13887,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13643
13887
 
13644
13888
  <div class="doc doc-contents ">
13645
13889
  <p class="doc doc-class-bases">
13646
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelTestCase" optional hover>ModelTestCase</autoref></code></p>
13890
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelTestCase" href="#nautobot.apps.testing.ModelTestCase">ModelTestCase</a></code></p>
13891
+
13892
+
13893
+ <p>Base TestCase for model views. Subclass to test individual views.</p>
13894
+
13895
+
13896
+
13647
13897
 
13648
13898
 
13649
- <p>Base TestCase for model views. Subclass to test individual views.</p>
13650
13899
 
13651
13900
 
13652
13901
 
@@ -13676,7 +13925,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13676
13925
 
13677
13926
  <div class="doc doc-contents ">
13678
13927
 
13679
- <p>Name of instance field to pass as a kwarg when looking up URLs for creating/editing/deleting a model instance.</p>
13928
+ <p>Name of instance field to pass as a kwarg when looking up URLs for creating/editing/deleting a model instance.</p>
13680
13929
  <p>If unspecified, "pk" and "slug" will be tried, in that order.</p>
13681
13930
  </div>
13682
13931
 
@@ -13705,7 +13954,12 @@ This expects a field named <code>devices</code> on the model and a filter named
13705
13954
 
13706
13955
  <div class="doc doc-contents ">
13707
13956
  <p class="doc doc-class-bases">
13708
- Bases: <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13957
+ Bases: <code><span title="django.test.TestCase">TestCase</span></code></p>
13958
+
13959
+
13960
+
13961
+
13962
+
13709
13963
 
13710
13964
 
13711
13965
 
@@ -13732,7 +13986,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13732
13986
 
13733
13987
  <div class="doc doc-contents ">
13734
13988
 
13735
- <p>Populate your Nautobot data before migrating from the first migration to the second</p>
13989
+ <p>Populate your Nautobot data before migrating from the first migration to the second</p>
13736
13990
 
13737
13991
  </div>
13738
13992
 
@@ -13760,7 +14014,12 @@ This expects a field named <code>devices</code> on the model and a filter named
13760
14014
  <div class="doc doc-contents ">
13761
14015
 
13762
14016
 
13763
- <p>Base class for all Nautobot-specific unit tests.</p>
14017
+ <p>Base class for all Nautobot-specific unit tests.</p>
14018
+
14019
+
14020
+
14021
+
14022
+
13764
14023
 
13765
14024
 
13766
14025
 
@@ -13786,7 +14045,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13786
14045
 
13787
14046
  <div class="doc doc-contents ">
13788
14047
 
13789
- <p>Get the absolute API URL ("http://nautobot.example.com/api/...") for a given object.</p>
14048
+ <p>Get the absolute API URL ("http://nautobot.example.com/api/...") for a given object.</p>
13790
14049
 
13791
14050
  </div>
13792
14051
 
@@ -13796,14 +14055,21 @@ This expects a field named <code>devices</code> on the model and a filter named
13796
14055
 
13797
14056
 
13798
14057
  <h3 id="nautobot.apps.testing.NautobotTestCaseMixin.add_permissions" class="doc doc-heading">
13799
- <code class="highlight language-python"><span class="n">add_permissions</span><span class="p">(</span><span class="o">*</span><span class="n">names</span><span class="p">)</span></code>
14058
+ <code class="highlight language-python"><span class="n">add_permissions</span><span class="p">(</span><span class="o">*</span><span class="n">names</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
13800
14059
 
13801
14060
  <a href="#nautobot.apps.testing.NautobotTestCaseMixin.add_permissions" class="headerlink" title="Permanent link">&para;</a></h3>
13802
14061
 
13803
14062
 
13804
14063
  <div class="doc doc-contents ">
13805
14064
 
13806
- <p>Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.</p>
14065
+ <p>Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.
14066
+ Additional keyword arguments will be passed to the ObjectPermission constructor to allow creating more detailed permissions.</p>
14067
+
14068
+
14069
+ <p><span class="doc-section-title">Examples:</span></p>
14070
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="gp">&gt;&gt;&gt; </span><span class="n">add_permissions</span><span class="p">(</span><span class="s2">&quot;ipam.add_vlangroup&quot;</span><span class="p">,</span> <span class="s2">&quot;ipam.view_vlangroup&quot;</span><span class="p">)</span>
14071
+ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="gp">&gt;&gt;&gt; </span><span class="n">add_permissions</span><span class="p">(</span><span class="s2">&quot;ipam.add_vlangroup&quot;</span><span class="p">,</span> <span class="s2">&quot;ipam.view_vlangroup&quot;</span><span class="p">,</span> <span class="n">constraints</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;pk&quot;</span><span class="p">:</span> <span class="s2">&quot;uuid-1234&quot;</span><span class="p">})</span>
14072
+ </code></pre></div>
13807
14073
 
13808
14074
  </div>
13809
14075
 
@@ -13820,7 +14086,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13820
14086
 
13821
14087
  <div class="doc doc-contents ">
13822
14088
 
13823
- <p>Like assertNumQueries, but fuzzier. Assert that the number of queries falls within an acceptable range.</p>
14089
+ <p>Like assertNumQueries, but fuzzier. Assert that the number of queries falls within an acceptable range.</p>
13824
14090
 
13825
14091
  </div>
13826
14092
 
@@ -13837,7 +14103,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13837
14103
 
13838
14104
  <div class="doc doc-contents ">
13839
14105
 
13840
- <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
14106
+ <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
13841
14107
 
13842
14108
 
13843
14109
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13852,9 +14118,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13852
14118
  </thead>
13853
14119
  <tbody>
13854
14120
  <tr class="doc-section-item">
13855
- <td><code>response</code></td>
13856
14121
  <td>
13857
- <code><autoref identifier="HttpResponse" optional>HttpResponse</autoref></code>
14122
+ <code>response</code>
14123
+ </td>
14124
+ <td>
14125
+ <code>HttpResponse</code>
13858
14126
  </td>
13859
14127
  <td>
13860
14128
  <div class="doc-md-description">
@@ -13866,9 +14134,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13866
14134
  </td>
13867
14135
  </tr>
13868
14136
  <tr class="doc-section-item">
13869
- <td><code>text</code></td>
13870
14137
  <td>
13871
- <code><autoref identifier="str" optional>str</autoref></code>
14138
+ <code>text</code>
14139
+ </td>
14140
+ <td>
14141
+ <code>str</code>
13872
14142
  </td>
13873
14143
  <td>
13874
14144
  <div class="doc-md-description">
@@ -13880,9 +14150,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13880
14150
  </td>
13881
14151
  </tr>
13882
14152
  <tr class="doc-section-item">
13883
- <td><code>count</code></td>
13884
14153
  <td>
13885
- <code><autoref identifier="int" optional>int</autoref></code>
14154
+ <code>count</code>
14155
+ </td>
14156
+ <td>
14157
+ <code>int</code>
13886
14158
  </td>
13887
14159
  <td>
13888
14160
  <div class="doc-md-description">
@@ -13895,9 +14167,11 @@ it's present at all.</p>
13895
14167
  </td>
13896
14168
  </tr>
13897
14169
  <tr class="doc-section-item">
13898
- <td><code>status_code</code></td>
13899
14170
  <td>
13900
- <code><autoref identifier="int" optional>int</autoref></code>
14171
+ <code>status_code</code>
14172
+ </td>
14173
+ <td>
14174
+ <code>int</code>
13901
14175
  </td>
13902
14176
  <td>
13903
14177
  <div class="doc-md-description">
@@ -13909,9 +14183,11 @@ it's present at all.</p>
13909
14183
  </td>
13910
14184
  </tr>
13911
14185
  <tr class="doc-section-item">
13912
- <td><code>html</code></td>
13913
14186
  <td>
13914
- <code><autoref identifier="bool" optional>bool</autoref></code>
14187
+ <code>html</code>
14188
+ </td>
14189
+ <td>
14190
+ <code>bool</code>
13915
14191
  </td>
13916
14192
  <td>
13917
14193
  <div class="doc-md-description">
@@ -13940,7 +14216,7 @@ it's present at all.</p>
13940
14216
 
13941
14217
  <div class="doc doc-contents ">
13942
14218
 
13943
- <p>TestCase method. Provide more detail in the event of an unexpected HTTP response.</p>
14219
+ <p>TestCase method. Provide more detail in the event of an unexpected HTTP response.</p>
13944
14220
 
13945
14221
  </div>
13946
14222
 
@@ -13957,7 +14233,7 @@ it's present at all.</p>
13957
14233
 
13958
14234
  <div class="doc doc-contents ">
13959
14235
 
13960
- <p>Compare a model instance to a dictionary, checking that its attribute values match those specified
14236
+ <p>Compare a model instance to a dictionary, checking that its attribute values match those specified
13961
14237
  in the dictionary.</p>
13962
14238
  <p>:param instance: Python object instance
13963
14239
  :param data: Dictionary of test data used to define the instance
@@ -13979,7 +14255,7 @@ in the dictionary.</p>
13979
14255
 
13980
14256
  <div class="doc doc-contents ">
13981
14257
 
13982
- <p>Wrapper for assertQuerysetEqual with additional logic to assert input queryset and values are not empty</p>
14258
+ <p>Wrapper for assertQuerysetEqual with additional logic to assert input queryset and values are not empty</p>
13983
14259
 
13984
14260
  </div>
13985
14261
 
@@ -14000,7 +14276,7 @@ in the dictionary.</p>
14000
14276
 
14001
14277
  <div class="doc doc-contents ">
14002
14278
 
14003
- <p>Create and return a Tag instance for each name given.</p>
14279
+ <p>Create and return a Tag instance for each name given.</p>
14004
14280
  <p>DEPRECATED: use TagFactory instead.</p>
14005
14281
 
14006
14282
  </div>
@@ -14018,7 +14294,7 @@ in the dictionary.</p>
14018
14294
 
14019
14295
  <div class="doc doc-contents ">
14020
14296
 
14021
- <p>Return a dictionary representation of an instance.</p>
14297
+ <p>Return a dictionary representation of an instance.</p>
14022
14298
 
14023
14299
  </div>
14024
14300
 
@@ -14035,7 +14311,7 @@ in the dictionary.</p>
14035
14311
 
14036
14312
  <div class="doc doc-contents ">
14037
14313
 
14038
- <p>Test cases can override this method to perform any necessary manipulation of an instance prior to its evaluation
14314
+ <p>Test cases can override this method to perform any necessary manipulation of an instance prior to its evaluation
14039
14315
  against test data. For example, it can be used to decrypt a Secret's plaintext attribute.</p>
14040
14316
 
14041
14317
  </div>
@@ -14053,7 +14329,7 @@ against test data. For example, it can be used to decrypt a Secret's plaintext a
14053
14329
 
14054
14330
  <div class="doc doc-contents ">
14055
14331
 
14056
- <p>Setup shared testuser, statuses and client.</p>
14332
+ <p>Setup shared testuser, statuses and client.</p>
14057
14333
 
14058
14334
  </div>
14059
14335
 
@@ -14070,7 +14346,7 @@ against test data. For example, it can be used to decrypt a Secret's plaintext a
14070
14346
 
14071
14347
  <div class="doc doc-contents ">
14072
14348
 
14073
- <p>Clear cache after each test case.</p>
14349
+ <p>Clear cache after each test case.</p>
14074
14350
  <p>In theory this shouldn't be necessary as our cache <strong>should</strong> appropriately update and clear itself when
14075
14351
  data changes occur, but in practice we've seen issues here. Best guess at present is that it's due to
14076
14352
  <code>TransactionTestCase</code> truncating the database, which presumably doesn't trigger the relevant Django signals
@@ -14102,15 +14378,20 @@ that would otherwise refresh the cache appropriately.</p>
14102
14378
 
14103
14379
  <div class="doc doc-contents ">
14104
14380
  <p class="doc doc-class-bases">
14105
- Bases: <code><autoref identifier="rest_framework.test.APIClient" optional hover>APIClient</autoref></code></p>
14381
+ Bases: <code><span title="rest_framework.test.APIClient">APIClient</span></code></p>
14106
14382
 
14107
14383
 
14108
- <p>Base client class for Nautobot testing.</p>
14384
+ <p>Base client class for Nautobot testing.</p>
14109
14385
  <p>DO NOT USE THIS IN PRODUCTION NAUTOBOT CODE.</p>
14110
14386
 
14111
14387
 
14112
14388
 
14113
14389
 
14390
+
14391
+
14392
+
14393
+
14394
+
14114
14395
  <div class="doc doc-children">
14115
14396
 
14116
14397
 
@@ -14132,7 +14413,7 @@ that would otherwise refresh the cache appropriately.</p>
14132
14413
 
14133
14414
  <div class="doc doc-contents ">
14134
14415
 
14135
- <p>Default the SERVER_NAME to "nautobot.example.com" rather than Django's default "testserver".</p>
14416
+ <p>Default the SERVER_NAME to "nautobot.example.com" rather than Django's default "testserver".</p>
14136
14417
  <p>This matches the ALLOWED_HOSTS set in nautobot/core/tests/nautobot_config.py and
14137
14418
  helps to protect us against issues like https://github.com/nautobot/nautobot/issues/3065.</p>
14138
14419
 
@@ -14165,6 +14446,11 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14165
14446
 
14166
14447
 
14167
14448
 
14449
+
14450
+
14451
+
14452
+
14453
+
14168
14454
  <div class="doc doc-children">
14169
14455
 
14170
14456
 
@@ -14187,10 +14473,15 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14187
14473
 
14188
14474
  <div class="doc doc-contents ">
14189
14475
  <p class="doc doc-class-bases">
14190
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
14476
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
14477
+
14478
+
14479
+ <p>Base class for testing of the OpenAPI schema.</p>
14480
+
14481
+
14482
+
14191
14483
 
14192
14484
 
14193
- <p>Base class for testing of the OpenAPI schema.</p>
14194
14485
 
14195
14486
 
14196
14487
 
@@ -14216,7 +14507,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14216
14507
 
14217
14508
  <div class="doc doc-contents ">
14218
14509
 
14219
- <p>Test method to assert that this polymorphic component has the expected permitted types.</p>
14510
+ <p>Test method to assert that this polymorphic component has the expected permitted types.</p>
14220
14511
 
14221
14512
  </div>
14222
14513
 
@@ -14233,7 +14524,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14233
14524
 
14234
14525
  <div class="doc doc-contents ">
14235
14526
 
14236
- <p>Test method to assert that the given component property is marked as non-nullable.</p>
14527
+ <p>Test method to assert that the given component property is marked as non-nullable.</p>
14237
14528
 
14238
14529
  </div>
14239
14530
 
@@ -14250,7 +14541,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14250
14541
 
14251
14542
  <div class="doc doc-contents ">
14252
14543
 
14253
- <p>Test method to assert that the given component property is not marked as read-only.</p>
14544
+ <p>Test method to assert that the given component property is not marked as read-only.</p>
14254
14545
 
14255
14546
  </div>
14256
14547
 
@@ -14267,7 +14558,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14267
14558
 
14268
14559
  <div class="doc doc-contents ">
14269
14560
 
14270
- <p>Test method to assert that the given component property is marked as nullable.</p>
14561
+ <p>Test method to assert that the given component property is marked as nullable.</p>
14271
14562
 
14272
14563
  </div>
14273
14564
 
@@ -14284,7 +14575,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14284
14575
 
14285
14576
  <div class="doc doc-contents ">
14286
14577
 
14287
- <p>Test method to assert that the given component property is marked as read-only.</p>
14578
+ <p>Test method to assert that the given component property is marked as read-only.</p>
14288
14579
 
14289
14580
  </div>
14290
14581
 
@@ -14301,7 +14592,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14301
14592
 
14302
14593
  <div class="doc doc-contents ">
14303
14594
 
14304
- <p>Helper method to pull a specific component schema from the larger OpenAPI schema already loaded.</p>
14595
+ <p>Helper method to pull a specific component schema from the larger OpenAPI schema already loaded.</p>
14305
14596
 
14306
14597
  </div>
14307
14598
 
@@ -14318,7 +14609,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14318
14609
 
14319
14610
  <div class="doc doc-contents ">
14320
14611
 
14321
- <p>Helper method to identify a component referenced by the given property of the current component.</p>
14612
+ <p>Helper method to identify a component referenced by the given property of the current component.</p>
14322
14613
 
14323
14614
  </div>
14324
14615
 
@@ -14335,7 +14626,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14335
14626
 
14336
14627
  <div class="doc doc-contents ">
14337
14628
 
14338
- <p>Helper method to pull a specific property schema from a larger component schema already extracted.</p>
14629
+ <p>Helper method to pull a specific property schema from a larger component schema already extracted.</p>
14339
14630
 
14340
14631
  </div>
14341
14632
 
@@ -14352,7 +14643,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14352
14643
 
14353
14644
  <div class="doc doc-contents ">
14354
14645
 
14355
- <p>Bringing it all together.</p>
14646
+ <p>Bringing it all together.</p>
14356
14647
  <p>This validates the schema to show that:
14357
14648
  - The component exists and has such a property
14358
14649
  - The property has the correct <code>nullable</code> and <code>readOnly</code> values
@@ -14372,7 +14663,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14372
14663
  <tbody>
14373
14664
  <tr class="doc-section-item">
14374
14665
  <td>
14375
- <code><autoref identifier="Tuple" optional>Tuple</autoref>[<autoref identifier="ref_component_name" optional>ref_component_name</autoref>, <autoref identifier="ref_component_schema" optional>ref_component_schema</autoref>]</code>
14666
+ <code>Tuple[ref_component_name, ref_component_schema]</code>
14376
14667
  </td>
14377
14668
  <td>
14378
14669
  <div class="doc-md-description">
@@ -14417,16 +14708,21 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14417
14708
 
14418
14709
  <div class="doc doc-contents ">
14419
14710
  <p class="doc doc-class-bases">
14420
- Bases: <code><autoref identifier="django.contrib.staticfiles.testing.StaticLiveServerTestCase" optional hover>StaticLiveServerTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code></p>
14711
+ Bases: <code><span title="django.contrib.staticfiles.testing.StaticLiveServerTestCase">StaticLiveServerTestCase</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code></p>
14421
14712
 
14422
14713
 
14423
- <p>Base test case for Splinter Selenium integration testing with custom helper methods.</p>
14714
+ <p>Base test case for Splinter Selenium integration testing with custom helper methods.</p>
14424
14715
  <p>This extends <code>django.contrib.staticfiles.testing.StaticLiveServerTestCase</code>
14425
14716
  so there is no need to run <code>collectstatic</code> prior to running tests.</p>
14426
14717
 
14427
14718
 
14428
14719
 
14429
14720
 
14721
+
14722
+
14723
+
14724
+
14725
+
14430
14726
  <div class="doc doc-children">
14431
14727
 
14432
14728
 
@@ -14448,7 +14744,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14448
14744
 
14449
14745
  <div class="doc doc-contents ">
14450
14746
 
14451
- <p>Helper function to click the "Create" button on a form.</p>
14747
+ <p>Helper function to click the "Create" button on a form.</p>
14452
14748
 
14453
14749
  </div>
14454
14750
 
@@ -14465,7 +14761,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14465
14761
 
14466
14762
  <div class="doc doc-contents ">
14467
14763
 
14468
- <p>Helper function to click the "Add" button on a list view.</p>
14764
+ <p>Helper function to click the "Add" button on a list view.</p>
14469
14765
 
14470
14766
  </div>
14471
14767
 
@@ -14482,7 +14778,24 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14482
14778
 
14483
14779
  <div class="doc doc-contents ">
14484
14780
 
14485
- <p>Helper function to click on a parent menu and child menu in the navigation bar.</p>
14781
+ <p>Helper function to click on a parent menu and child menu in the navigation bar.</p>
14782
+
14783
+ </div>
14784
+
14785
+ </div>
14786
+
14787
+ <div class="doc doc-object doc-function">
14788
+
14789
+
14790
+ <h3 id="nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="doc doc-heading">
14791
+ <code class="highlight language-python"><span class="n">fill_filters_select2_field</span><span class="p">(</span><span class="n">field_name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></code>
14792
+
14793
+ <a href="#nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="headerlink" title="Permanent link">&para;</a></h3>
14794
+
14795
+
14796
+ <div class="doc doc-contents ">
14797
+
14798
+ <p>Helper function to fill a Select2 single selection field on filters modals.</p>
14486
14799
 
14487
14800
  </div>
14488
14801
 
@@ -14499,7 +14812,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14499
14812
 
14500
14813
  <div class="doc doc-contents ">
14501
14814
 
14502
- <p>Helper function to fill a Select2 single selection field.</p>
14815
+ <p>Helper function to fill a Select2 single selection field on add/edit forms.</p>
14503
14816
 
14504
14817
  </div>
14505
14818
 
@@ -14516,7 +14829,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14516
14829
 
14517
14830
  <div class="doc doc-contents ">
14518
14831
 
14519
- <p>Helper function to fill a Select2 multi-selection field.</p>
14832
+ <p>Helper function to fill a Select2 multi-selection field.</p>
14520
14833
 
14521
14834
  </div>
14522
14835
 
@@ -14533,7 +14846,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14533
14846
 
14534
14847
  <div class="doc doc-contents ">
14535
14848
 
14536
- <p>Navigate to <code>login_url</code> and perform a login w/ the provided <code>username</code> and <code>password</code>.</p>
14849
+ <p>Navigate to <code>login_url</code> and perform a login w/ the provided <code>username</code> and <code>password</code>.</p>
14537
14850
 
14538
14851
  </div>
14539
14852
 
@@ -14554,7 +14867,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14554
14867
 
14555
14868
  <div class="doc doc-contents ">
14556
14869
 
14557
- <p>Close down the browser after tests are ran.</p>
14870
+ <p>Close down the browser after tests are ran.</p>
14558
14871
 
14559
14872
  </div>
14560
14873
 
@@ -14581,10 +14894,15 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14581
14894
 
14582
14895
  <div class="doc doc-contents ">
14583
14896
  <p class="doc doc-class-bases">
14584
- Bases: <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code>, <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
14897
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code>, <code><span title="django.test.TestCase">TestCase</span></code></p>
14898
+
14899
+
14900
+ <p>Base class for all Nautobot-specific unit tests.</p>
14901
+
14902
+
14903
+
14585
14904
 
14586
14905
 
14587
- <p>Base class for all Nautobot-specific unit tests.</p>
14588
14906
 
14589
14907
 
14590
14908
 
@@ -14610,7 +14928,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14610
14928
 
14611
14929
  <div class="doc doc-contents ">
14612
14930
 
14613
- <p>Initialize user and client.</p>
14931
+ <p>Initialize user and client.</p>
14614
14932
 
14615
14933
  </div>
14616
14934
 
@@ -14637,10 +14955,15 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14637
14955
 
14638
14956
  <div class="doc doc-contents ">
14639
14957
  <p class="doc doc-class-bases">
14640
- Bases: <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code>, <code><autoref identifier="django.test.TransactionTestCase" optional hover>TransactionTestCase</autoref></code></p>
14958
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code>, <code><span title="django.test.TransactionTestCase">TransactionTestCase</span></code></p>
14959
+
14960
+
14961
+ <p>Base test case class using the TransactionTestCase for unit testing</p>
14962
+
14963
+
14964
+
14641
14965
 
14642
14966
 
14643
- <p>Base test case class using the TransactionTestCase for unit testing</p>
14644
14967
 
14645
14968
 
14646
14969
 
@@ -14666,7 +14989,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14666
14989
 
14667
14990
  <div class="doc doc-contents ">
14668
14991
 
14669
- <p>Provide a clean, post-migration state before each test case.</p>
14992
+ <p>Provide a clean, post-migration state before each test case.</p>
14670
14993
  <p>django.test.TransactionTestCase truncates the database after each test runs. We need at least the default
14671
14994
  statuses present in the database in order to run tests.</p>
14672
14995
 
@@ -14696,7 +15019,12 @@ statuses present in the database in order to run tests.</p>
14696
15019
  <div class="doc doc-contents ">
14697
15020
 
14698
15021
 
14699
- <p>We keep any TestCases with test_* methods inside a class to prevent unittest from trying to run them.</p>
15022
+ <p>We keep any TestCases with test_* methods inside a class to prevent unittest from trying to run them.</p>
15023
+
15024
+
15025
+
15026
+
15027
+
14700
15028
 
14701
15029
 
14702
15030
 
@@ -14723,10 +15051,15 @@ statuses present in the database in order to run tests.</p>
14723
15051
 
14724
15052
  <div class="doc doc-contents ">
14725
15053
  <p class="doc doc-class-bases">
14726
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15054
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15055
+
15056
+
15057
+ <p>Delete multiple instances.</p>
15058
+
15059
+
15060
+
14727
15061
 
14728
15062
 
14729
- <p>Delete multiple instances.</p>
14730
15063
 
14731
15064
 
14732
15065
 
@@ -14752,7 +15085,7 @@ statuses present in the database in order to run tests.</p>
14752
15085
 
14753
15086
  <div class="doc doc-contents ">
14754
15087
 
14755
- <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
15088
+ <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
14756
15089
  <p>For some models this may just be any random objects, but when we have FKs with <code>on_delete=models.PROTECT</code>
14757
15090
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
14758
15091
 
@@ -14781,16 +15114,21 @@ statuses present in the database in order to run tests.</p>
14781
15114
 
14782
15115
  <div class="doc doc-contents ">
14783
15116
  <p class="doc doc-class-bases">
14784
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15117
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14785
15118
 
14786
15119
 
14787
- <p>Edit multiple instances.</p>
15120
+ <p>Edit multiple instances.</p>
14788
15121
  <p>:bulk_edit_data: A dictionary of data to be used when bulk editing a set of objects. This data should differ
14789
15122
  from that used for initial object creation within setUpTestData().</p>
14790
15123
 
14791
15124
 
14792
15125
 
14793
15126
 
15127
+
15128
+
15129
+
15130
+
15131
+
14794
15132
  <div class="doc doc-children">
14795
15133
 
14796
15134
 
@@ -14822,10 +15160,15 @@ statuses present in the database in order to run tests.</p>
14822
15160
 
14823
15161
  <div class="doc doc-contents ">
14824
15162
  <p class="doc doc-class-bases">
14825
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15163
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15164
+
15165
+
15166
+ <p>Rename multiple instances.</p>
15167
+
15168
+
15169
+
14826
15170
 
14827
15171
 
14828
- <p>Rename multiple instances.</p>
14829
15172
 
14830
15173
 
14831
15174
 
@@ -14861,16 +15204,21 @@ statuses present in the database in order to run tests.</p>
14861
15204
 
14862
15205
  <div class="doc doc-contents ">
14863
15206
  <p class="doc doc-class-bases">
14864
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15207
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14865
15208
 
14866
15209
 
14867
- <p>Create multiple instances using a single form. Expects the creation of three new instances by default.</p>
15210
+ <p>Create multiple instances using a single form. Expects the creation of three new instances by default.</p>
14868
15211
  <p>:bulk_create_count: The number of objects expected to be created (default: 3).
14869
15212
  :bulk_create_data: A dictionary of data to be used for bulk object creation.</p>
14870
15213
 
14871
15214
 
14872
15215
 
14873
15216
 
15217
+
15218
+
15219
+
15220
+
15221
+
14874
15222
  <div class="doc doc-children">
14875
15223
 
14876
15224
 
@@ -14902,15 +15250,20 @@ statuses present in the database in order to run tests.</p>
14902
15250
 
14903
15251
  <div class="doc doc-contents ">
14904
15252
  <p class="doc doc-class-bases">
14905
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15253
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14906
15254
 
14907
15255
 
14908
- <p>Create a single new instance.</p>
15256
+ <p>Create a single new instance.</p>
14909
15257
  <p>:form_data: Data to be used when creating a new object.</p>
14910
15258
 
14911
15259
 
14912
15260
 
14913
15261
 
15262
+
15263
+
15264
+
15265
+
15266
+
14914
15267
  <div class="doc doc-children">
14915
15268
 
14916
15269
 
@@ -14942,10 +15295,15 @@ statuses present in the database in order to run tests.</p>
14942
15295
 
14943
15296
  <div class="doc doc-contents ">
14944
15297
  <p class="doc doc-class-bases">
14945
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15298
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15299
+
15300
+
15301
+ <p>Delete a single instance.</p>
15302
+
15303
+
15304
+
14946
15305
 
14947
15306
 
14948
- <p>Delete a single instance.</p>
14949
15307
 
14950
15308
 
14951
15309
 
@@ -14971,7 +15329,7 @@ statuses present in the database in order to run tests.</p>
14971
15329
 
14972
15330
  <div class="doc doc-contents ">
14973
15331
 
14974
- <p>Get an instance that can be deleted.</p>
15332
+ <p>Get an instance that can be deleted.</p>
14975
15333
  <p>For some models this may just be any random object, but when we have FKs with <code>on_delete=models.PROTECT</code>
14976
15334
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
14977
15335
 
@@ -15000,10 +15358,15 @@ statuses present in the database in order to run tests.</p>
15000
15358
 
15001
15359
  <div class="doc doc-contents ">
15002
15360
  <p class="doc doc-class-bases">
15003
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" optional hover>CreateMultipleObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" optional hover>BulkEditObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" optional hover>BulkRenameObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15361
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateMultipleObjectsViewTestCase">CreateMultipleObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkEditObjectsViewTestCase">BulkEditObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkRenameObjectsViewTestCase">BulkRenameObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15362
+
15363
+
15364
+ <p>TestCase suitable for testing device component template models (ConsolePortTemplates, InterfaceTemplates, etc.)</p>
15365
+
15366
+
15367
+
15004
15368
 
15005
15369
 
15006
- <p>TestCase suitable for testing device component template models (ConsolePortTemplates, InterfaceTemplates, etc.)</p>
15007
15370
 
15008
15371
 
15009
15372
 
@@ -15039,10 +15402,15 @@ statuses present in the database in order to run tests.</p>
15039
15402
 
15040
15403
  <div class="doc doc-contents ">
15041
15404
  <p class="doc doc-class-bases">
15042
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" optional hover>GetObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" optional hover>GetObjectChangelogViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" optional hover>GetObjectNotesViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" optional hover>ListObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" optional hover>CreateMultipleObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" optional hover>BulkEditObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" optional hover>BulkRenameObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15405
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectViewTestCase">GetObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectChangelogViewTestCase">GetObjectChangelogViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectNotesViewTestCase">GetObjectNotesViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.ListObjectsViewTestCase">ListObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateMultipleObjectsViewTestCase">CreateMultipleObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkEditObjectsViewTestCase">BulkEditObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkRenameObjectsViewTestCase">BulkRenameObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15406
+
15407
+
15408
+ <p>TestCase suitable for testing device component models (ConsolePorts, Interfaces, etc.)</p>
15409
+
15410
+
15411
+
15043
15412
 
15044
15413
 
15045
- <p>TestCase suitable for testing device component models (ConsolePorts, Interfaces, etc.)</p>
15046
15414
 
15047
15415
 
15048
15416
 
@@ -15072,7 +15440,7 @@ statuses present in the database in order to run tests.</p>
15072
15440
 
15073
15441
  <div class="doc doc-contents ">
15074
15442
 
15075
- <p>Used for bulk-add (distinct from bulk-create) view testing; self.bulk_create_data will be used if unset.</p>
15443
+ <p>Used for bulk-add (distinct from bulk-create) view testing; self.bulk_create_data will be used if unset.</p>
15076
15444
  </div>
15077
15445
 
15078
15446
  </div>
@@ -15090,7 +15458,7 @@ statuses present in the database in order to run tests.</p>
15090
15458
 
15091
15459
  <div class="doc doc-contents ">
15092
15460
 
15093
- <p>Test bulk-adding this component to devices/virtual-machines.</p>
15461
+ <p>Test bulk-adding this component to devices/virtual-machines.</p>
15094
15462
 
15095
15463
  </div>
15096
15464
 
@@ -15117,16 +15485,21 @@ statuses present in the database in order to run tests.</p>
15117
15485
 
15118
15486
  <div class="doc doc-contents ">
15119
15487
  <p class="doc doc-class-bases">
15120
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15488
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15121
15489
 
15122
15490
 
15123
- <p>Edit a single existing instance.</p>
15491
+ <p>Edit a single existing instance.</p>
15124
15492
  <p>:update_data: Data to be used when updating the first existing object, fall back to form_data if not provided.
15125
15493
  :form_data: Fall back to this data if update_data is not provided, for backward compatibility.</p>
15126
15494
 
15127
15495
 
15128
15496
 
15129
15497
 
15498
+
15499
+
15500
+
15501
+
15502
+
15130
15503
  <div class="doc doc-children">
15131
15504
 
15132
15505
 
@@ -15158,10 +15531,15 @@ statuses present in the database in order to run tests.</p>
15158
15531
 
15159
15532
  <div class="doc doc-contents ">
15160
15533
  <p class="doc doc-class-bases">
15161
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15534
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15535
+
15536
+
15537
+ <p>View the changelog for an instance.</p>
15538
+
15539
+
15540
+
15162
15541
 
15163
15542
 
15164
- <p>View the changelog for an instance.</p>
15165
15543
 
15166
15544
 
15167
15545
 
@@ -15197,10 +15575,15 @@ statuses present in the database in order to run tests.</p>
15197
15575
 
15198
15576
  <div class="doc doc-contents ">
15199
15577
  <p class="doc doc-class-bases">
15200
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15578
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15579
+
15580
+
15581
+ <p>View the notes for an instance.</p>
15582
+
15583
+
15584
+
15201
15585
 
15202
15586
 
15203
- <p>View the notes for an instance.</p>
15204
15587
 
15205
15588
 
15206
15589
 
@@ -15236,10 +15619,15 @@ statuses present in the database in order to run tests.</p>
15236
15619
 
15237
15620
  <div class="doc doc-contents ">
15238
15621
  <p class="doc doc-class-bases">
15239
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15622
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15623
+
15624
+
15625
+ <p>Retrieve a single instance.</p>
15626
+
15627
+
15628
+
15240
15629
 
15241
15630
 
15242
- <p>Retrieve a single instance.</p>
15243
15631
 
15244
15632
 
15245
15633
 
@@ -15275,10 +15663,15 @@ statuses present in the database in order to run tests.</p>
15275
15663
 
15276
15664
  <div class="doc doc-contents ">
15277
15665
  <p class="doc doc-class-bases">
15278
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15666
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15667
+
15668
+
15669
+ <p>Retrieve multiple instances.</p>
15670
+
15671
+
15672
+
15279
15673
 
15280
15674
 
15281
- <p>Retrieve multiple instances.</p>
15282
15675
 
15283
15676
 
15284
15677
 
@@ -15304,7 +15697,7 @@ statuses present in the database in order to run tests.</p>
15304
15697
 
15305
15698
  <div class="doc doc-contents ">
15306
15699
 
15307
- <p>Verify that without STRICT_FILTERING, an unknown filter is ignored.</p>
15700
+ <p>Verify that without STRICT_FILTERING, an unknown filter is ignored.</p>
15308
15701
 
15309
15702
  </div>
15310
15703
 
@@ -15321,7 +15714,7 @@ statuses present in the database in order to run tests.</p>
15321
15714
 
15322
15715
  <div class="doc doc-contents ">
15323
15716
 
15324
- <p>Verify that with STRICT_FILTERING, an unknown filter results in an error message and no matches.</p>
15717
+ <p>Verify that with STRICT_FILTERING, an unknown filter results in an error message and no matches.</p>
15325
15718
 
15326
15719
  </div>
15327
15720
 
@@ -15338,7 +15731,7 @@ statuses present in the database in order to run tests.</p>
15338
15731
 
15339
15732
  <div class="doc doc-contents ">
15340
15733
 
15341
- <p>If example app is installed, check if the app banner is rendered correctly in ObjectListView.</p>
15734
+ <p>If example app is installed, check if the app banner is rendered correctly in ObjectListView.</p>
15342
15735
 
15343
15736
  </div>
15344
15737
 
@@ -15365,10 +15758,15 @@ statuses present in the database in order to run tests.</p>
15365
15758
 
15366
15759
  <div class="doc doc-contents ">
15367
15760
  <p class="doc doc-class-bases">
15368
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" optional hover>GetObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" optional hover>GetObjectChangelogViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" optional hover>GetObjectNotesViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" optional hover>CreateObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" optional hover>ListObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15761
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectViewTestCase">GetObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectChangelogViewTestCase">GetObjectChangelogViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectNotesViewTestCase">GetObjectNotesViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase">CreateObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.ListObjectsViewTestCase">ListObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15762
+
15763
+
15764
+ <p>TestCase suitable for all organizational objects</p>
15765
+
15766
+
15767
+
15369
15768
 
15370
15769
 
15371
- <p>TestCase suitable for all organizational objects</p>
15372
15770
 
15373
15771
 
15374
15772
 
@@ -15404,10 +15802,15 @@ statuses present in the database in order to run tests.</p>
15404
15802
 
15405
15803
  <div class="doc doc-contents ">
15406
15804
  <p class="doc doc-class-bases">
15407
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" optional hover>GetObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" optional hover>GetObjectChangelogViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" optional hover>GetObjectNotesViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" optional hover>CreateObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" optional hover>ListObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" optional hover>BulkEditObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15805
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectViewTestCase">GetObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectChangelogViewTestCase">GetObjectChangelogViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectNotesViewTestCase">GetObjectNotesViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase">CreateObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.ListObjectsViewTestCase">ListObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkEditObjectsViewTestCase">BulkEditObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15806
+
15807
+
15808
+ <p>TestCase suitable for testing all standard View functions for primary objects</p>
15809
+
15810
+
15811
+
15408
15812
 
15409
15813
 
15410
- <p>TestCase suitable for testing all standard View functions for primary objects</p>
15411
15814
 
15412
15815
 
15413
15816
 
@@ -15451,7 +15854,7 @@ statuses present in the database in order to run tests.</p>
15451
15854
 
15452
15855
  <div class="doc doc-contents ">
15453
15856
 
15454
- <p>Test helper function to call get_job_class_and_model() then call run_job_for_testing().</p>
15857
+ <p>Test helper function to call get_job_class_and_model() then call run_job_for_testing().</p>
15455
15858
 
15456
15859
  </div>
15457
15860
 
@@ -15468,7 +15871,7 @@ statuses present in the database in order to run tests.</p>
15468
15871
 
15469
15872
  <div class="doc doc-contents ">
15470
15873
 
15471
- <p>Create a User with the given permissions.</p>
15874
+ <p>Create a User with the given permissions.</p>
15472
15875
 
15473
15876
  </div>
15474
15877
 
@@ -15485,7 +15888,7 @@ statuses present in the database in order to run tests.</p>
15485
15888
 
15486
15889
  <div class="doc doc-contents ">
15487
15890
 
15488
- <p>Temporarily suppress expected warning messages to keep the test output clean.</p>
15891
+ <p>Temporarily suppress expected warning messages to keep the test output clean.</p>
15489
15892
 
15490
15893
  </div>
15491
15894
 
@@ -15502,7 +15905,7 @@ statuses present in the database in order to run tests.</p>
15502
15905
 
15503
15906
  <div class="doc doc-contents ">
15504
15907
 
15505
- <p>Given decoded HTML content from an HTTP response, return a list of form errors.</p>
15908
+ <p>Given decoded HTML content from an HTTP response, return a list of form errors.</p>
15506
15909
 
15507
15910
  </div>
15508
15911
 
@@ -15519,7 +15922,7 @@ statuses present in the database in order to run tests.</p>
15519
15922
 
15520
15923
  <div class="doc doc-contents ">
15521
15924
 
15522
- <p>Given raw HTML content from an HTTP response, extract the main div only.</p>
15925
+ <p>Given raw HTML content from an HTTP response, extract the main div only.</p>
15523
15926
  <html>
15524
15927
  <head>... <link href="../../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
15525
15928
  html.glightbox-open { overflow: initial; height: 100%; }
@@ -15558,7 +15961,7 @@ document$.subscribe(() => { lightbox.reload() });
15558
15961
 
15559
15962
  <div class="doc doc-contents ">
15560
15963
 
15561
- <p>For testing purposes only; it returns a random string of size 100 consisting of letters and numbers.</p>
15964
+ <p>For testing purposes only; it returns a random string of size 100 consisting of letters and numbers.</p>
15562
15965
 
15563
15966
  </div>
15564
15967
 
@@ -15575,7 +15978,7 @@ document$.subscribe(() => { lightbox.reload() });
15575
15978
 
15576
15979
  <div class="doc doc-contents ">
15577
15980
 
15578
- <p>Returns a subset of objects in the given queryset that have no protected relationships that would prevent deletion.</p>
15981
+ <p>Returns a subset of objects in the given queryset that have no protected relationships that would prevent deletion.</p>
15579
15982
 
15580
15983
  </div>
15581
15984
 
@@ -15592,7 +15995,7 @@ document$.subscribe(() => { lightbox.reload() });
15592
15995
 
15593
15996
  <div class="doc doc-contents ">
15594
15997
 
15595
- <p>Test helper function to look up a job class and job model and ensure the latter is enabled.</p>
15998
+ <p>Test helper function to look up a job class and job model and ensure the latter is enabled.</p>
15596
15999
 
15597
16000
 
15598
16001
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15607,9 +16010,11 @@ document$.subscribe(() => { lightbox.reload() });
15607
16010
  </thead>
15608
16011
  <tbody>
15609
16012
  <tr class="doc-section-item">
15610
- <td><code>module</code></td>
15611
16013
  <td>
15612
- <code><autoref identifier="str" optional>str</autoref></code>
16014
+ <code>module</code>
16015
+ </td>
16016
+ <td>
16017
+ <code>str</code>
15613
16018
  </td>
15614
16019
  <td>
15615
16020
  <div class="doc-md-description">
@@ -15621,9 +16026,11 @@ document$.subscribe(() => { lightbox.reload() });
15621
16026
  </td>
15622
16027
  </tr>
15623
16028
  <tr class="doc-section-item">
15624
- <td><code>name</code></td>
15625
16029
  <td>
15626
- <code><autoref identifier="str" optional>str</autoref></code>
16030
+ <code>name</code>
16031
+ </td>
16032
+ <td>
16033
+ <code>str</code>
15627
16034
  </td>
15628
16035
  <td>
15629
16036
  <div class="doc-md-description">
@@ -15635,9 +16042,11 @@ document$.subscribe(() => { lightbox.reload() });
15635
16042
  </td>
15636
16043
  </tr>
15637
16044
  <tr class="doc-section-item">
15638
- <td><code>source</code></td>
15639
16045
  <td>
15640
- <code><autoref identifier="str" optional>str</autoref></code>
16046
+ <code>source</code>
16047
+ </td>
16048
+ <td>
16049
+ <code>str</code>
15641
16050
  </td>
15642
16051
  <td>
15643
16052
  <div class="doc-md-description">
@@ -15663,7 +16072,7 @@ document$.subscribe(() => { lightbox.reload() });
15663
16072
  <tbody>
15664
16073
  <tr class="doc-section-item">
15665
16074
  <td>
15666
- <code><autoref identifier="nautobot.core.testing.JobClassInfo" optional hover>JobClassInfo</autoref></code>
16075
+ <code><span title="nautobot.core.testing.JobClassInfo">JobClassInfo</span></code>
15667
16076
  </td>
15668
16077
  <td>
15669
16078
  <div class="doc-md-description">
@@ -15689,7 +16098,7 @@ document$.subscribe(() => { lightbox.reload() });
15689
16098
 
15690
16099
  <div class="doc doc-contents ">
15691
16100
 
15692
- <p>Take a dictionary of test data (suitable for comparison to an instance) and return a dict suitable for POSTing.</p>
16101
+ <p>Take a dictionary of test data (suitable for comparison to an instance) and return a dict suitable for POSTing.</p>
15693
16102
 
15694
16103
  </div>
15695
16104
 
@@ -15706,7 +16115,7 @@ document$.subscribe(() => { lightbox.reload() });
15706
16115
 
15707
16116
  <div class="doc doc-contents ">
15708
16117
 
15709
- <p>Provide a common interface to run Nautobot jobs as part of unit tests.</p>
16118
+ <p>Provide a common interface to run Nautobot jobs as part of unit tests.</p>
15710
16119
 
15711
16120
 
15712
16121
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15721,9 +16130,11 @@ document$.subscribe(() => { lightbox.reload() });
15721
16130
  </thead>
15722
16131
  <tbody>
15723
16132
  <tr class="doc-section-item">
15724
- <td><code>job</code></td>
15725
16133
  <td>
15726
- <code><autoref identifier="nautobot.extras.models.Job" optional hover>Job</autoref></code>
16134
+ <code>job</code>
16135
+ </td>
16136
+ <td>
16137
+ <code><span title="nautobot.extras.models.Job">Job</span></code>
15727
16138
  </td>
15728
16139
  <td>
15729
16140
  <div class="doc-md-description">
@@ -15735,9 +16146,11 @@ document$.subscribe(() => { lightbox.reload() });
15735
16146
  </td>
15736
16147
  </tr>
15737
16148
  <tr class="doc-section-item">
15738
- <td><code>username</code></td>
15739
16149
  <td>
15740
- <code><autoref identifier="str" optional>str</autoref></code>
16150
+ <code>username</code>
16151
+ </td>
16152
+ <td>
16153
+ <code>str</code>
15741
16154
  </td>
15742
16155
  <td>
15743
16156
  <div class="doc-md-description">
@@ -15749,9 +16162,11 @@ document$.subscribe(() => { lightbox.reload() });
15749
16162
  </td>
15750
16163
  </tr>
15751
16164
  <tr class="doc-section-item">
15752
- <td><code>profile</code></td>
15753
16165
  <td>
15754
- <code><autoref identifier="bool" optional>bool</autoref></code>
16166
+ <code>profile</code>
16167
+ </td>
16168
+ <td>
16169
+ <code>bool</code>
15755
16170
  </td>
15756
16171
  <td>
15757
16172
  <div class="doc-md-description">
@@ -15779,7 +16194,7 @@ document$.subscribe(() => { lightbox.reload() });
15779
16194
  <tr class="doc-section-item">
15780
16195
  <td><code>**kwargs</code></td>
15781
16196
  <td>
15782
- <code><autoref identifier="any" optional>any</autoref></code>
16197
+ <code>any</code>
15783
16198
  </td>
15784
16199
  <td>
15785
16200
  <div class="doc-md-description">
@@ -15802,7 +16217,7 @@ document$.subscribe(() => { lightbox.reload() });
15802
16217
  <tbody>
15803
16218
  <tr class="doc-section-item">
15804
16219
  <td>
15805
- <code><autoref identifier="nautobot.extras.models.JobResult" optional hover>JobResult</autoref></code>
16220
+ <code><span title="nautobot.extras.models.JobResult">JobResult</span></code>
15806
16221
  </td>
15807
16222
  <td>
15808
16223
  <div class="doc-md-description">
@@ -15970,7 +16385,7 @@ document$.subscribe(() => { lightbox.reload() });
15970
16385
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
15971
16386
 
15972
16387
 
15973
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
16388
+ <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
15974
16389
 
15975
16390
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
15976
16391