nautobot 2.4.0b1__py3-none-any.whl → 2.4.2__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 (668) 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/tests/integration/test_circuits_bulk_operations.py +43 -0
  22. nautobot/circuits/tests/integration/test_relationships.py +1 -1
  23. nautobot/circuits/views.py +3 -3
  24. nautobot/cloud/api/views.py +6 -10
  25. nautobot/cloud/models.py +1 -1
  26. nautobot/cloud/views.py +0 -16
  27. nautobot/core/api/constants.py +11 -0
  28. nautobot/core/api/fields.py +5 -5
  29. nautobot/core/api/filter_backends.py +3 -9
  30. nautobot/core/api/schema.py +13 -2
  31. nautobot/core/api/serializers.py +40 -34
  32. nautobot/core/api/views.py +56 -4
  33. nautobot/core/apps/__init__.py +0 -5
  34. nautobot/core/celery/log.py +4 -4
  35. nautobot/core/celery/schedulers.py +2 -2
  36. nautobot/core/choices.py +2 -2
  37. nautobot/core/events/__init__.py +3 -3
  38. nautobot/core/filters.py +67 -35
  39. nautobot/core/forms/__init__.py +19 -19
  40. nautobot/core/forms/fields.py +14 -11
  41. nautobot/core/forms/forms.py +33 -2
  42. nautobot/core/graphql/types.py +1 -1
  43. nautobot/core/jobs/__init__.py +28 -7
  44. nautobot/core/jobs/bulk_actions.py +285 -0
  45. nautobot/core/jobs/cleanup.py +48 -12
  46. nautobot/core/jobs/groups.py +1 -1
  47. nautobot/core/management/commands/validate_models.py +1 -1
  48. nautobot/core/models/__init__.py +3 -1
  49. nautobot/core/models/query_functions.py +2 -2
  50. nautobot/core/models/tree_queries.py +6 -3
  51. nautobot/core/settings.py +29 -2
  52. nautobot/core/settings.yaml +21 -0
  53. nautobot/core/tables.py +79 -61
  54. nautobot/core/templates/about.html +67 -0
  55. nautobot/core/templates/generic/object_bulk_destroy.html +1 -1
  56. nautobot/core/templates/inc/media.html +3 -0
  57. nautobot/core/templates/inc/nav_menu.html +1 -0
  58. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  59. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  60. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  61. nautobot/core/templates/search.html +7 -0
  62. nautobot/core/templates/utilities/render_jinja2.html +1 -1
  63. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  64. nautobot/core/templates/utilities/theme_preview.html +7 -0
  65. nautobot/core/templatetags/helpers.py +11 -2
  66. nautobot/core/testing/__init__.py +8 -8
  67. nautobot/core/testing/api.py +170 -15
  68. nautobot/core/testing/filters.py +45 -10
  69. nautobot/core/testing/forms.py +2 -0
  70. nautobot/core/testing/integration.py +514 -5
  71. nautobot/core/testing/mixins.py +7 -2
  72. nautobot/core/testing/views.py +44 -29
  73. nautobot/core/tests/integration/test_app_home.py +0 -1
  74. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  75. nautobot/core/tests/integration/test_filters.py +0 -2
  76. nautobot/core/tests/integration/test_home.py +0 -1
  77. nautobot/core/tests/integration/test_navbar.py +0 -1
  78. nautobot/core/tests/integration/test_view_authentication.py +1 -0
  79. nautobot/core/tests/runner.py +1 -1
  80. nautobot/core/tests/test_api.py +98 -1
  81. nautobot/core/tests/test_csv.py +25 -3
  82. nautobot/core/tests/test_filters.py +209 -246
  83. nautobot/core/tests/test_forms.py +1 -0
  84. nautobot/core/tests/test_jobs.py +492 -1
  85. nautobot/core/tests/test_models.py +9 -0
  86. nautobot/core/tests/test_settings_schema.py +7 -0
  87. nautobot/core/tests/test_tables.py +100 -0
  88. nautobot/core/tests/test_utils.py +63 -1
  89. nautobot/core/tests/test_views.py +30 -3
  90. nautobot/core/ui/nav.py +1 -0
  91. nautobot/core/ui/object_detail.py +15 -1
  92. nautobot/core/urls.py +11 -0
  93. nautobot/core/utils/git.py +7 -2
  94. nautobot/core/utils/lookup.py +11 -8
  95. nautobot/core/utils/querysets.py +64 -0
  96. nautobot/core/utils/requests.py +24 -9
  97. nautobot/core/views/__init__.py +42 -0
  98. nautobot/core/views/generic.py +131 -197
  99. nautobot/core/views/mixins.py +136 -41
  100. nautobot/core/views/renderers.py +6 -6
  101. nautobot/core/views/utils.py +2 -2
  102. nautobot/dcim/api/serializers.py +56 -64
  103. nautobot/dcim/api/views.py +47 -113
  104. nautobot/dcim/constants.py +6 -13
  105. nautobot/dcim/factory.py +6 -1
  106. nautobot/dcim/filters/__init__.py +31 -2
  107. nautobot/dcim/forms.py +48 -17
  108. nautobot/dcim/graphql/types.py +2 -2
  109. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  110. nautobot/dcim/models/__init__.py +1 -1
  111. nautobot/dcim/models/device_component_templates.py +2 -2
  112. nautobot/dcim/models/device_components.py +22 -20
  113. nautobot/dcim/models/devices.py +10 -1
  114. nautobot/dcim/models/locations.py +3 -3
  115. nautobot/dcim/models/power.py +6 -5
  116. nautobot/dcim/models/racks.py +4 -4
  117. nautobot/dcim/tables/__init__.py +3 -3
  118. nautobot/dcim/tables/devices.py +9 -6
  119. nautobot/dcim/tables/devicetypes.py +2 -2
  120. nautobot/dcim/tables/racks.py +1 -1
  121. nautobot/dcim/templates/dcim/cable.html +1 -1
  122. nautobot/dcim/templates/dcim/controller_create.html +1 -7
  123. nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
  124. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
  125. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
  126. nautobot/dcim/templates/dcim/device/base.html +1 -1
  127. nautobot/dcim/templates/dcim/device.html +3 -11
  128. nautobot/dcim/templates/dcim/device_component.html +1 -1
  129. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  130. nautobot/dcim/templates/dcim/devicetype.html +1 -1
  131. nautobot/dcim/templates/dcim/location.html +2 -10
  132. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  133. nautobot/dcim/templates/dcim/locationtype.html +1 -1
  134. nautobot/dcim/templates/dcim/locationtype_retrieve.html +1 -1
  135. nautobot/dcim/templates/dcim/manufacturer.html +1 -1
  136. nautobot/dcim/templates/dcim/platform.html +1 -1
  137. nautobot/dcim/templates/dcim/powerfeed.html +1 -1
  138. nautobot/dcim/templates/dcim/powerpanel.html +1 -1
  139. nautobot/dcim/templates/dcim/rack.html +2 -10
  140. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  141. nautobot/dcim/templates/dcim/rackgroup.html +1 -1
  142. nautobot/dcim/templates/dcim/rackreservation.html +3 -11
  143. nautobot/dcim/templates/dcim/virtualchassis.html +1 -1
  144. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
  145. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
  146. nautobot/dcim/tests/integration/test_controller.py +62 -0
  147. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  148. nautobot/dcim/tests/integration/test_device_bulk_operations.py +30 -0
  149. nautobot/dcim/tests/integration/test_location_bulk_operations.py +43 -0
  150. nautobot/dcim/tests/test_api.py +16 -5
  151. nautobot/dcim/tests/test_filters.py +33 -0
  152. nautobot/dcim/tests/test_forms.py +51 -2
  153. nautobot/dcim/tests/test_graphql.py +52 -0
  154. nautobot/dcim/tests/test_jobs.py +118 -0
  155. nautobot/dcim/tests/test_models.py +52 -9
  156. nautobot/dcim/tests/test_views.py +30 -84
  157. nautobot/dcim/views.py +13 -28
  158. nautobot/extras/api/customfields.py +2 -2
  159. nautobot/extras/api/serializers.py +123 -85
  160. nautobot/extras/api/views.py +33 -30
  161. nautobot/extras/constants.py +3 -0
  162. nautobot/extras/datasources/git.py +125 -0
  163. nautobot/extras/filters/__init__.py +8 -6
  164. nautobot/extras/forms/base.py +2 -2
  165. nautobot/extras/forms/forms.py +139 -31
  166. nautobot/extras/forms/mixins.py +14 -6
  167. nautobot/extras/group_sync.py +3 -3
  168. nautobot/extras/health_checks.py +1 -2
  169. nautobot/extras/jobs.py +85 -18
  170. nautobot/extras/managers.py +3 -1
  171. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  172. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  173. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  174. nautobot/extras/migrations/0122_add_graphqlquery_owner_content_type.py +34 -0
  175. nautobot/extras/models/__init__.py +1 -1
  176. nautobot/extras/models/contacts.py +1 -1
  177. nautobot/extras/models/customfields.py +41 -23
  178. nautobot/extras/models/datasources.py +85 -0
  179. nautobot/extras/models/groups.py +11 -9
  180. nautobot/extras/models/jobs.py +23 -4
  181. nautobot/extras/models/models.py +17 -2
  182. nautobot/extras/models/relationships.py +17 -5
  183. nautobot/extras/plugins/__init__.py +13 -2
  184. nautobot/extras/plugins/marketplace_manifest.yml +84 -79
  185. nautobot/extras/plugins/tables.py +16 -14
  186. nautobot/extras/plugins/views.py +65 -69
  187. nautobot/extras/registry.py +1 -1
  188. nautobot/extras/secrets/__init__.py +2 -2
  189. nautobot/extras/signals.py +15 -1
  190. nautobot/extras/tables.py +7 -5
  191. nautobot/extras/templates/extras/computedfield.html +1 -1
  192. nautobot/extras/templates/extras/configcontext.html +1 -1
  193. nautobot/extras/templates/extras/configcontextschema.html +1 -1
  194. nautobot/extras/templates/extras/customfield.html +1 -1
  195. nautobot/extras/templates/extras/customlink.html +1 -1
  196. nautobot/extras/templates/extras/dynamicgroup.html +2 -10
  197. nautobot/extras/templates/extras/exporttemplate.html +1 -1
  198. nautobot/extras/templates/extras/gitrepository.html +1 -1
  199. nautobot/extras/templates/extras/graphqlquery.html +1 -1
  200. nautobot/extras/templates/extras/job_detail.html +17 -1
  201. nautobot/extras/templates/extras/job_edit.html +1 -0
  202. nautobot/extras/templates/extras/jobbutton_retrieve.html +1 -1
  203. nautobot/extras/templates/extras/jobhook.html +1 -1
  204. nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
  205. nautobot/extras/templates/extras/jobresult.html +1 -1
  206. nautobot/extras/templates/extras/marketplace.html +29 -11
  207. nautobot/extras/templates/extras/objectchange.html +1 -1
  208. nautobot/extras/templates/extras/plugin_detail.html +33 -16
  209. nautobot/extras/templates/extras/plugins_tiles.html +21 -10
  210. nautobot/extras/templates/extras/relationship.html +1 -63
  211. nautobot/extras/templates/extras/role_retrieve.html +1 -1
  212. nautobot/extras/templates/extras/scheduledjob.html +1 -1
  213. nautobot/extras/templates/extras/secret.html +1 -1
  214. nautobot/extras/templates/extras/secretsgroup.html +1 -1
  215. nautobot/extras/templates/extras/status.html +1 -1
  216. nautobot/extras/templates/extras/tag.html +1 -1
  217. nautobot/extras/templates/extras/webhook.html +1 -1
  218. nautobot/extras/templatetags/job_buttons.py +4 -4
  219. nautobot/extras/test_jobs/api_test_job.py +1 -1
  220. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  221. nautobot/extras/test_jobs/dry_run.py +1 -1
  222. nautobot/extras/test_jobs/fail.py +5 -5
  223. nautobot/extras/test_jobs/file_output.py +1 -1
  224. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  225. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  226. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  227. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  228. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  229. nautobot/extras/test_jobs/log_redaction.py +1 -1
  230. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  231. nautobot/extras/test_jobs/modify_db.py +1 -1
  232. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  233. nautobot/extras/test_jobs/object_var_required.py +1 -1
  234. nautobot/extras/test_jobs/object_vars.py +1 -1
  235. nautobot/extras/test_jobs/pass.py +3 -3
  236. nautobot/extras/test_jobs/profiling.py +1 -1
  237. nautobot/extras/test_jobs/relative_import.py +3 -3
  238. nautobot/extras/test_jobs/singleton.py +16 -0
  239. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  240. nautobot/extras/test_jobs/task_queues.py +1 -1
  241. nautobot/extras/tests/git_data/01-valid-files/graphql_queries/device_interfaces.gql +8 -0
  242. nautobot/extras/tests/git_data/01-valid-files/graphql_queries/device_names.gql +5 -0
  243. nautobot/extras/tests/git_data/02-invalid-files/graphql_queries/bad_device_names.gql +5 -0
  244. nautobot/extras/tests/git_helper.py +9 -1
  245. nautobot/extras/tests/integration/__init__.py +29 -16
  246. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  247. nautobot/extras/tests/test_api.py +19 -13
  248. nautobot/extras/tests/test_customfields.py +50 -52
  249. nautobot/extras/tests/test_datasources.py +29 -1
  250. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  251. nautobot/extras/tests/test_filters.py +6 -6
  252. nautobot/extras/tests/test_forms.py +33 -1
  253. nautobot/extras/tests/test_jobs.py +178 -32
  254. nautobot/extras/tests/test_models.py +299 -10
  255. nautobot/extras/tests/test_plugins.py +62 -9
  256. nautobot/extras/tests/test_relationships.py +120 -9
  257. nautobot/extras/tests/test_utils.py +22 -1
  258. nautobot/extras/tests/test_views.py +56 -194
  259. nautobot/extras/utils.py +20 -10
  260. nautobot/extras/views.py +85 -110
  261. nautobot/ipam/api/fields.py +3 -3
  262. nautobot/ipam/api/serializers.py +41 -33
  263. nautobot/ipam/api/views.py +68 -117
  264. nautobot/ipam/factory.py +1 -1
  265. nautobot/ipam/filters.py +3 -2
  266. nautobot/ipam/lookups.py +101 -62
  267. nautobot/ipam/models.py +74 -18
  268. nautobot/ipam/querysets.py +2 -2
  269. nautobot/ipam/tables.py +25 -9
  270. nautobot/ipam/templates/ipam/ipaddress.html +2 -10
  271. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  272. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  273. nautobot/ipam/templates/ipam/prefix.html +2 -10
  274. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  275. nautobot/ipam/templates/ipam/rir.html +1 -1
  276. nautobot/ipam/templates/ipam/routetarget.html +1 -1
  277. nautobot/ipam/templates/ipam/service.html +1 -1
  278. nautobot/ipam/templates/ipam/vlan.html +2 -10
  279. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  280. nautobot/ipam/templates/ipam/vlangroup.html +1 -1
  281. nautobot/ipam/templates/ipam/vrf.html +1 -1
  282. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  283. nautobot/ipam/tests/test_api.py +436 -3
  284. nautobot/ipam/tests/test_forms.py +49 -47
  285. nautobot/ipam/tests/test_migrations.py +30 -30
  286. nautobot/ipam/tests/test_models.py +119 -34
  287. nautobot/ipam/tests/test_querysets.py +63 -1
  288. nautobot/ipam/tests/test_utils.py +41 -2
  289. nautobot/ipam/tests/test_views.py +3 -0
  290. nautobot/ipam/utils/__init__.py +54 -17
  291. nautobot/ipam/views.py +61 -87
  292. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  293. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  294. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  295. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  296. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  297. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  298. nautobot/project-static/docs/404.html +131 -14
  299. nautobot/project-static/docs/apps/index.html +131 -14
  300. nautobot/project-static/docs/apps/nautobot-apps.html +132 -16
  301. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  302. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.60a45f97.min.js} +2 -2
  303. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.60a45f97.min.js.map} +2 -2
  304. nautobot/project-static/docs/assets/javascripts/workers/{search.6ce7567c.min.js → search.f8cc74c7.min.js} +1 -1
  305. nautobot/project-static/docs/assets/javascripts/workers/{search.6ce7567c.min.js.map → search.f8cc74c7.min.js.map} +1 -1
  306. nautobot/project-static/docs/assets/stylesheets/{main.6f8fc17f.min.css → main.a40c8224.min.css} +1 -1
  307. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +147 -20
  308. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +144 -17
  309. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +459 -132
  310. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +175 -28
  311. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +180 -31
  312. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +138 -16
  313. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +137 -15
  314. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +164 -27
  315. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +187 -38
  316. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +193 -31
  317. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +216 -48
  318. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +324 -75
  319. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +666 -175
  320. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +194 -46
  321. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +538 -177
  322. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +578 -221
  323. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +145 -18
  324. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +156 -25
  325. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +492 -65
  326. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +705 -215
  327. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +943 -422
  328. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +144 -17
  329. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +619 -200
  330. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +474 -159
  331. nautobot/project-static/docs/development/apps/api/configuration-view.html +131 -14
  332. nautobot/project-static/docs/development/apps/api/database-backend-config.html +131 -14
  333. nautobot/project-static/docs/development/apps/api/models/django-admin.html +131 -14
  334. nautobot/project-static/docs/development/apps/api/models/global-search.html +131 -14
  335. nautobot/project-static/docs/development/apps/api/models/graphql.html +131 -14
  336. nautobot/project-static/docs/development/apps/api/models/index.html +131 -14
  337. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +131 -14
  338. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +131 -14
  339. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +131 -14
  340. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +131 -14
  341. nautobot/project-static/docs/development/apps/api/platform-features/index.html +131 -14
  342. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +131 -14
  343. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +131 -14
  344. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +131 -14
  345. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +131 -14
  346. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +153 -17
  347. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +131 -14
  348. nautobot/project-static/docs/development/apps/api/prometheus.html +131 -14
  349. nautobot/project-static/docs/development/apps/api/setup.html +131 -14
  350. nautobot/project-static/docs/development/apps/api/testing.html +131 -14
  351. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +131 -14
  352. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +131 -14
  353. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +131 -14
  354. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +131 -14
  355. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +131 -14
  356. nautobot/project-static/docs/development/apps/api/views/base-template.html +131 -14
  357. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +131 -14
  358. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +131 -14
  359. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +131 -14
  360. nautobot/project-static/docs/development/apps/api/views/index.html +131 -14
  361. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +131 -14
  362. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +131 -14
  363. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +131 -14
  364. nautobot/project-static/docs/development/apps/api/views/notes.html +131 -14
  365. nautobot/project-static/docs/development/apps/api/views/rest-api.html +137 -16
  366. nautobot/project-static/docs/development/apps/api/views/urls.html +131 -14
  367. nautobot/project-static/docs/development/apps/index.html +131 -14
  368. nautobot/project-static/docs/development/apps/migration/code-updates.html +131 -14
  369. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +131 -14
  370. nautobot/project-static/docs/development/apps/migration/from-v1.html +131 -14
  371. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +131 -14
  372. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +131 -14
  373. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +131 -14
  374. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +131 -14
  375. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +135 -18
  376. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +131 -14
  377. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +297 -25
  378. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +131 -14
  379. nautobot/project-static/docs/development/apps/porting-from-netbox.html +131 -14
  380. nautobot/project-static/docs/development/core/application-registry.html +131 -14
  381. nautobot/project-static/docs/development/core/best-practices.html +131 -14
  382. nautobot/project-static/docs/development/core/bootstrap-ui.html +131 -14
  383. nautobot/project-static/docs/development/core/caching.html +131 -14
  384. nautobot/project-static/docs/development/core/controllers.html +131 -14
  385. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +158 -84
  386. nautobot/project-static/docs/development/core/generic-views.html +131 -14
  387. nautobot/project-static/docs/development/core/getting-started.html +334 -234
  388. nautobot/project-static/docs/development/core/homepage.html +134 -17
  389. nautobot/project-static/docs/development/core/index.html +131 -14
  390. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9829 -0
  391. nautobot/project-static/docs/development/core/model-checklist.html +141 -22
  392. nautobot/project-static/docs/development/core/model-features.html +131 -14
  393. nautobot/project-static/docs/development/core/natural-keys.html +131 -14
  394. nautobot/project-static/docs/development/core/navigation-menu.html +131 -14
  395. nautobot/project-static/docs/development/core/release-checklist.html +134 -17
  396. nautobot/project-static/docs/development/core/role-internals.html +131 -14
  397. nautobot/project-static/docs/development/core/settings.html +131 -14
  398. nautobot/project-static/docs/development/core/style-guide.html +134 -17
  399. nautobot/project-static/docs/development/core/templates.html +132 -15
  400. nautobot/project-static/docs/development/core/testing.html +131 -14
  401. nautobot/project-static/docs/development/core/ui-component-framework.html +454 -283
  402. nautobot/project-static/docs/development/core/user-preferences.html +131 -14
  403. nautobot/project-static/docs/development/index.html +131 -14
  404. nautobot/project-static/docs/development/jobs/index.html +301 -132
  405. nautobot/project-static/docs/development/jobs/migration/from-v1.html +131 -14
  406. nautobot/project-static/docs/index.html +139 -33
  407. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  408. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  409. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  410. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  411. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  412. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  413. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  414. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  415. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  416. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  417. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  418. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  419. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  420. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  421. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  422. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  423. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  424. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  425. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  426. nautobot/project-static/docs/objects.inv +0 -0
  427. nautobot/project-static/docs/overview/application_stack.html +132 -17
  428. nautobot/project-static/docs/overview/design_philosophy.html +131 -14
  429. nautobot/project-static/docs/release-notes/index.html +137 -22
  430. nautobot/project-static/docs/release-notes/version-1.0.html +319 -203
  431. nautobot/project-static/docs/release-notes/version-1.1.html +316 -200
  432. nautobot/project-static/docs/release-notes/version-1.2.html +391 -275
  433. nautobot/project-static/docs/release-notes/version-1.3.html +417 -301
  434. nautobot/project-static/docs/release-notes/version-1.4.html +502 -387
  435. nautobot/project-static/docs/release-notes/version-1.5.html +690 -576
  436. nautobot/project-static/docs/release-notes/version-1.6.html +989 -457
  437. nautobot/project-static/docs/release-notes/version-2.0.html +613 -499
  438. nautobot/project-static/docs/release-notes/version-2.1.html +448 -334
  439. nautobot/project-static/docs/release-notes/version-2.2.html +441 -327
  440. nautobot/project-static/docs/release-notes/version-2.3.html +1171 -451
  441. nautobot/project-static/docs/release-notes/version-2.4.html +800 -111
  442. nautobot/project-static/docs/requirements.txt +2 -2
  443. nautobot/project-static/docs/search/search_index.json +1 -1
  444. nautobot/project-static/docs/sitemap.xml +303 -287
  445. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  446. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +131 -14
  447. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +131 -14
  448. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +133 -16
  449. nautobot/project-static/docs/user-guide/administration/configuration/index.html +131 -14
  450. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +131 -14
  451. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +195 -18
  452. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +131 -14
  453. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +134 -17
  454. nautobot/project-static/docs/user-guide/administration/guides/docker.html +131 -14
  455. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +131 -14
  456. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +131 -14
  457. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +131 -14
  458. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +131 -14
  459. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +131 -14
  460. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +133 -16
  461. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +131 -14
  462. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +131 -14
  463. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +131 -14
  464. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +151 -18
  465. nautobot/project-static/docs/user-guide/administration/installation/index.html +131 -14
  466. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +132 -15
  467. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +131 -14
  468. nautobot/project-static/docs/user-guide/administration/installation/services.html +131 -14
  469. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +131 -14
  470. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +131 -14
  471. nautobot/project-static/docs/user-guide/administration/security/index.html +9420 -0
  472. nautobot/project-static/docs/user-guide/administration/security/notices.html +9843 -0
  473. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +131 -14
  474. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +131 -14
  475. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +131 -14
  476. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +131 -14
  477. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +131 -14
  478. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +131 -14
  479. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +131 -14
  480. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +134 -18
  481. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +131 -14
  482. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +131 -14
  483. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +131 -14
  484. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +131 -14
  485. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +131 -14
  486. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +131 -14
  487. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +131 -14
  488. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +131 -14
  489. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +131 -14
  490. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +131 -14
  491. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +131 -14
  492. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +131 -14
  493. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +131 -14
  494. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +131 -14
  495. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +131 -14
  496. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +131 -14
  497. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +131 -14
  498. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +131 -14
  499. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +131 -14
  500. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +131 -14
  501. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +131 -14
  502. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +131 -14
  503. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +131 -14
  504. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +131 -14
  505. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +131 -14
  506. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +131 -14
  507. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +131 -14
  508. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +131 -14
  509. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +131 -14
  510. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +131 -14
  511. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +131 -14
  512. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +131 -14
  513. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +131 -14
  514. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +131 -14
  515. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +131 -14
  516. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +131 -14
  517. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +131 -14
  518. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +131 -14
  519. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +131 -14
  520. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +131 -14
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +131 -14
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +131 -14
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +131 -14
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +131 -14
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +131 -14
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +131 -14
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +131 -14
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +131 -14
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +131 -14
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +131 -14
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +131 -14
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +131 -14
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +131 -14
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +131 -14
  535. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +131 -14
  536. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +131 -14
  537. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +131 -14
  538. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +135 -22
  539. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +131 -14
  540. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +131 -14
  541. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +131 -14
  542. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +131 -14
  543. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +131 -14
  544. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +131 -14
  545. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +131 -14
  546. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +131 -14
  547. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +131 -14
  548. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +131 -14
  549. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +131 -14
  550. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +131 -14
  551. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +134 -17
  552. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +131 -14
  553. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +131 -14
  554. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +131 -14
  555. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +131 -14
  556. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +131 -14
  557. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +131 -14
  558. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +131 -14
  559. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +131 -14
  560. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +131 -14
  561. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +131 -14
  562. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +131 -14
  563. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +131 -14
  564. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +131 -14
  565. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +131 -14
  566. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +131 -14
  567. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +134 -17
  568. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +131 -14
  569. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +131 -14
  570. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +131 -14
  571. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +131 -14
  572. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +131 -14
  573. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +131 -14
  574. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +236 -34
  575. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +131 -14
  576. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  577. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  578. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  579. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  580. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  581. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  582. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  583. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  584. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  585. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  586. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  587. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  589. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +131 -14
  590. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +131 -14
  591. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +134 -17
  592. nautobot/project-static/docs/{development/core/local-k8s.html → user-guide/feature-guides/wireless-networks-and-controllers.html} +632 -566
  593. nautobot/project-static/docs/user-guide/index.html +131 -14
  594. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +131 -14
  595. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +135 -18
  596. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +131 -14
  597. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +131 -14
  598. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +131 -14
  599. nautobot/project-static/docs/user-guide/platform-functionality/events.html +131 -14
  600. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +131 -14
  601. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +131 -14
  602. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +451 -16
  603. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +131 -14
  604. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +131 -14
  605. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +131 -14
  606. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +135 -17
  607. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +131 -14
  608. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +134 -17
  609. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +131 -14
  610. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +131 -14
  611. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9797 -0
  612. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +131 -14
  613. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +131 -14
  614. nautobot/project-static/docs/user-guide/platform-functionality/note.html +131 -14
  615. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +131 -14
  616. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +132 -15
  617. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +131 -14
  618. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +131 -14
  619. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +179 -35
  620. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +159 -15
  621. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +131 -14
  622. nautobot/project-static/docs/user-guide/platform-functionality/role.html +131 -14
  623. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +131 -14
  624. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +131 -14
  625. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +131 -14
  626. nautobot/project-static/docs/user-guide/platform-functionality/status.html +131 -14
  627. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +131 -14
  628. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +131 -14
  629. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +131 -14
  630. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +131 -14
  631. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +131 -14
  632. nautobot/project-static/js/forms.js +1 -1
  633. nautobot/tenancy/api/views.py +9 -13
  634. nautobot/tenancy/templates/tenancy/tenant.html +1 -2
  635. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  636. nautobot/tenancy/views.py +4 -2
  637. nautobot/users/admin.py +1 -1
  638. nautobot/users/api/serializers.py +5 -4
  639. nautobot/users/api/views.py +3 -3
  640. nautobot/virtualization/api/serializers.py +4 -4
  641. nautobot/virtualization/api/views.py +5 -24
  642. nautobot/virtualization/filters.py +20 -3
  643. nautobot/virtualization/models.py +1 -1
  644. nautobot/virtualization/tables.py +2 -2
  645. nautobot/virtualization/templates/virtualization/cluster.html +1 -1
  646. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  647. nautobot/virtualization/templates/virtualization/clustergroup.html +1 -1
  648. nautobot/virtualization/templates/virtualization/clustertype.html +1 -1
  649. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -10
  650. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  651. nautobot/virtualization/templates/virtualization/vminterface.html +1 -1
  652. nautobot/virtualization/tests/test_filters.py +17 -0
  653. nautobot/wireless/filters.py +2 -2
  654. nautobot/wireless/forms.py +1 -1
  655. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
  656. nautobot/wireless/tests/integration/__init__.py +0 -0
  657. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  658. nautobot/wireless/tests/test_filters.py +29 -1
  659. nautobot/wireless/tests/test_views.py +22 -1
  660. nautobot/wireless/views.py +0 -10
  661. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/METADATA +9 -9
  662. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/RECORD +667 -610
  663. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/WHEEL +1 -1
  664. nautobot/core/fixtures/user-data.json +0 -59
  665. /nautobot/project-static/docs/assets/stylesheets/{main.6f8fc17f.min.css.map → main.a40c8224.min.css.map} +0 -0
  666. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/LICENSE.txt +0 -0
  667. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/NOTICE +0 -0
  668. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.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.50">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.6f8fc17f.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.a40c8224.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1"/></svg>');}</style>
41
+ <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1"/></svg>');}</style>
42
42
 
43
43
 
44
44
 
@@ -217,7 +217,7 @@
217
217
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
218
218
  <div class="md-source__icon md-icon">
219
219
 
220
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
220
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
221
221
  </div>
222
222
  <div class="md-source__repository">
223
223
  GitHub
@@ -377,7 +377,7 @@
377
377
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
378
378
  <div class="md-source__icon md-icon">
379
379
 
380
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
380
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
381
381
  </div>
382
382
  <div class="md-source__repository">
383
383
  GitHub
@@ -1697,6 +1697,81 @@
1697
1697
 
1698
1698
 
1699
1699
 
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+ <li class="md-nav__item md-nav__item--nested">
1714
+
1715
+
1716
+
1717
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_7" >
1718
+
1719
+
1720
+
1721
+ <div class="md-nav__link md-nav__container">
1722
+ <a href="../../../user-guide/administration/security/index.html" class="md-nav__link ">
1723
+
1724
+
1725
+ <span class="md-ellipsis">
1726
+ Security
1727
+ </span>
1728
+
1729
+
1730
+ </a>
1731
+
1732
+
1733
+ <label class="md-nav__link " for="__nav_2_1_7" id="__nav_2_1_7_label" tabindex="0">
1734
+ <span class="md-nav__icon md-icon"></span>
1735
+ </label>
1736
+
1737
+ </div>
1738
+
1739
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_7_label" aria-expanded="false">
1740
+ <label class="md-nav__title" for="__nav_2_1_7">
1741
+ <span class="md-nav__icon md-icon"></span>
1742
+ Security
1743
+ </label>
1744
+ <ul class="md-nav__list" data-md-scrollfix>
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+ <li class="md-nav__item">
1753
+ <a href="../../../user-guide/administration/security/notices.html" class="md-nav__link">
1754
+
1755
+
1756
+ <span class="md-ellipsis">
1757
+ Notices
1758
+ </span>
1759
+
1760
+
1761
+ </a>
1762
+ </li>
1763
+
1764
+
1765
+
1766
+
1767
+ </ul>
1768
+ </nav>
1769
+
1770
+ </li>
1771
+
1772
+
1773
+
1774
+
1700
1775
  </ul>
1701
1776
  </nav>
1702
1777
 
@@ -2112,6 +2187,27 @@
2112
2187
 
2113
2188
 
2114
2189
 
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+ <li class="md-nav__item">
2197
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2198
+
2199
+
2200
+ <span class="md-ellipsis">
2201
+ Wireless Networks and Controllers
2202
+ </span>
2203
+
2204
+
2205
+ </a>
2206
+ </li>
2207
+
2208
+
2209
+
2210
+
2115
2211
  </ul>
2116
2212
  </nav>
2117
2213
 
@@ -5131,6 +5227,27 @@
5131
5227
 
5132
5228
 
5133
5229
 
5230
+ <li class="md-nav__item">
5231
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5232
+
5233
+
5234
+ <span class="md-ellipsis">
5235
+ Kubernetes Job Support
5236
+ </span>
5237
+
5238
+
5239
+ </a>
5240
+ </li>
5241
+
5242
+
5243
+
5244
+
5245
+
5246
+
5247
+
5248
+
5249
+
5250
+
5134
5251
  <li class="md-nav__item">
5135
5252
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
5136
5253
 
@@ -7326,6 +7443,15 @@
7326
7443
  </span>
7327
7444
  </a>
7328
7445
 
7446
+ </li>
7447
+
7448
+ <li class="md-nav__item">
7449
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="md-nav__link">
7450
+ <span class="md-ellipsis">
7451
+ get_m2m_fields
7452
+ </span>
7453
+ </a>
7454
+
7329
7455
  </li>
7330
7456
 
7331
7457
  <li class="md-nav__item">
@@ -7828,6 +7954,15 @@
7828
7954
  </span>
7829
7955
  </a>
7830
7956
 
7957
+ </li>
7958
+
7959
+ <li class="md-nav__item">
7960
+ <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="md-nav__link">
7961
+ <span class="md-ellipsis">
7962
+ test_id
7963
+ </span>
7964
+ </a>
7965
+
7831
7966
  </li>
7832
7967
 
7833
7968
  <li class="md-nav__item">
@@ -8334,6 +8469,15 @@
8334
8469
  </span>
8335
8470
  </a>
8336
8471
 
8472
+ </li>
8473
+
8474
+ <li class="md-nav__item">
8475
+ <a href="#nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="md-nav__link">
8476
+ <span class="md-ellipsis">
8477
+ fill_filters_select2_field
8478
+ </span>
8479
+ </a>
8480
+
8337
8481
  </li>
8338
8482
 
8339
8483
  <li class="md-nav__item">
@@ -9547,11 +9691,11 @@
9547
9691
 
9548
9692
 
9549
9693
  <li class="md-nav__item">
9550
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
9694
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
9551
9695
 
9552
9696
 
9553
9697
  <span class="md-ellipsis">
9554
- Local Kubernetes Cluster
9698
+ Minikube Dev Environment for K8s Jobs
9555
9699
  </span>
9556
9700
 
9557
9701
 
@@ -10484,6 +10628,15 @@
10484
10628
  </span>
10485
10629
  </a>
10486
10630
 
10631
+ </li>
10632
+
10633
+ <li class="md-nav__item">
10634
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="md-nav__link">
10635
+ <span class="md-ellipsis">
10636
+ get_m2m_fields
10637
+ </span>
10638
+ </a>
10639
+
10487
10640
  </li>
10488
10641
 
10489
10642
  <li class="md-nav__item">
@@ -10986,6 +11139,15 @@
10986
11139
  </span>
10987
11140
  </a>
10988
11141
 
11142
+ </li>
11143
+
11144
+ <li class="md-nav__item">
11145
+ <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="md-nav__link">
11146
+ <span class="md-ellipsis">
11147
+ test_id
11148
+ </span>
11149
+ </a>
11150
+
10989
11151
  </li>
10990
11152
 
10991
11153
  <li class="md-nav__item">
@@ -11492,6 +11654,15 @@
11492
11654
  </span>
11493
11655
  </a>
11494
11656
 
11657
+ </li>
11658
+
11659
+ <li class="md-nav__item">
11660
+ <a href="#nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="md-nav__link">
11661
+ <span class="md-ellipsis">
11662
+ fill_filters_select2_field
11663
+ </span>
11664
+ </a>
11665
+
11495
11666
  </li>
11496
11667
 
11497
11668
  <li class="md-nav__item">
@@ -11940,7 +12111,12 @@
11940
12111
 
11941
12112
  <div class="doc doc-contents first">
11942
12113
 
11943
- <p>Utilities for apps to implement test automation.</p>
12114
+ <p>Utilities for apps to implement test automation.</p>
12115
+
12116
+
12117
+
12118
+
12119
+
11944
12120
 
11945
12121
 
11946
12122
 
@@ -11966,15 +12142,20 @@
11966
12142
 
11967
12143
  <div class="doc doc-contents ">
11968
12144
  <p class="doc doc-class-bases">
11969
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelTestCase" optional hover>ModelTestCase</autoref></code></p>
12145
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelTestCase" href="#nautobot.apps.testing.ModelTestCase">ModelTestCase</a></code></p>
11970
12146
 
11971
12147
 
11972
- <p>Base test case for API requests.</p>
12148
+ <p>Base test case for API requests.</p>
11973
12149
  <p>api_version: Specific API version to test. Leave unset to test the default behavior. Override with set_api_version()</p>
11974
12150
 
11975
12151
 
11976
12152
 
11977
12153
 
12154
+
12155
+
12156
+
12157
+
12158
+
11978
12159
  <div class="doc doc-children">
11979
12160
 
11980
12161
 
@@ -11996,7 +12177,7 @@
11996
12177
 
11997
12178
  <div class="doc doc-contents ">
11998
12179
 
11999
- <p>Check an API response for content that should not be exposed in the API.</p>
12180
+ <p>Check an API response for content that should not be exposed in the API.</p>
12000
12181
  <p>If a specific API has a false failure here (maybe it has security-related strings as model flags or something?),
12001
12182
  its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12002
12183
 
@@ -12007,6 +12188,23 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12007
12188
  <div class="doc doc-object doc-function">
12008
12189
 
12009
12190
 
12191
+ <h3 id="nautobot.apps.testing.APITestCase.get_m2m_fields" class="doc doc-heading">
12192
+ <code class="highlight language-python"><span class="n">get_m2m_fields</span><span class="p">()</span></code>
12193
+
12194
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="headerlink" title="Permanent link">&para;</a></h3>
12195
+
12196
+
12197
+ <div class="doc doc-contents ">
12198
+
12199
+ <p>Get serializer field names that are many-to-many or one-to-many and thus affected by ?exclude_m2m=true.</p>
12200
+
12201
+ </div>
12202
+
12203
+ </div>
12204
+
12205
+ <div class="doc doc-object doc-function">
12206
+
12207
+
12010
12208
  <h3 id="nautobot.apps.testing.APITestCase.setUp" class="doc doc-heading">
12011
12209
  <code class="highlight language-python"><span class="n">setUp</span><span class="p">()</span></code>
12012
12210
 
@@ -12015,7 +12213,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12015
12213
 
12016
12214
  <div class="doc doc-contents ">
12017
12215
 
12018
- <p>Create a token for API calls.</p>
12216
+ <p>Create a token for API calls.</p>
12019
12217
 
12020
12218
  </div>
12021
12219
 
@@ -12032,7 +12230,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12032
12230
 
12033
12231
  <div class="doc doc-contents ">
12034
12232
 
12035
- <p>Set or unset a specific API version for requests in this test case.</p>
12233
+ <p>Set or unset a specific API version for requests in this test case.</p>
12036
12234
 
12037
12235
  </div>
12038
12236
 
@@ -12059,7 +12257,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12059
12257
 
12060
12258
  <div class="doc doc-contents ">
12061
12259
  <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>
12260
+ 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>
12261
+
12262
+
12263
+
12264
+
12265
+
12063
12266
 
12064
12267
 
12065
12268
 
@@ -12086,7 +12289,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12086
12289
 
12087
12290
  <div class="doc doc-contents ">
12088
12291
 
12089
- <p>Create a superuser and token for API calls.</p>
12292
+ <p>Create a superuser and token for API calls.</p>
12090
12293
 
12091
12294
  </div>
12092
12295
 
@@ -12117,6 +12320,11 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12117
12320
 
12118
12321
 
12119
12322
 
12323
+
12324
+
12325
+
12326
+
12327
+
12120
12328
  <div class="doc doc-children">
12121
12329
 
12122
12330
 
@@ -12139,7 +12347,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12139
12347
 
12140
12348
  <div class="doc doc-contents ">
12141
12349
  <p class="doc doc-class-bases">
12142
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12350
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12351
+
12352
+
12353
+
12354
+
12355
+
12143
12356
 
12144
12357
 
12145
12358
 
@@ -12166,7 +12379,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12166
12379
 
12167
12380
  <div class="doc doc-contents ">
12168
12381
 
12169
- <p>POST a set of objects in a single request.</p>
12382
+ <p>POST a set of objects in a single request.</p>
12170
12383
 
12171
12384
  </div>
12172
12385
 
@@ -12183,7 +12396,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12183
12396
 
12184
12397
  <div class="doc doc-contents ">
12185
12398
 
12186
- <p>POST a single object with permission.</p>
12399
+ <p>POST a single object with permission.</p>
12187
12400
 
12188
12401
  </div>
12189
12402
 
@@ -12200,7 +12413,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12200
12413
 
12201
12414
  <div class="doc doc-contents ">
12202
12415
 
12203
- <p>POST a single object without permission.</p>
12416
+ <p>POST a single object without permission.</p>
12204
12417
 
12205
12418
  </div>
12206
12419
 
@@ -12217,7 +12430,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12217
12430
 
12218
12431
  <div class="doc doc-contents ">
12219
12432
 
12220
- <p>CSV export an object, delete it, and recreate it via CSV import.</p>
12433
+ <p>CSV export an object, delete it, and recreate it via CSV import.</p>
12221
12434
 
12222
12435
  </div>
12223
12436
 
@@ -12244,7 +12457,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12244
12457
 
12245
12458
  <div class="doc doc-contents ">
12246
12459
  <p class="doc doc-class-bases">
12247
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12460
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12461
+
12462
+
12463
+
12464
+
12465
+
12248
12466
 
12249
12467
 
12250
12468
 
@@ -12271,7 +12489,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12271
12489
 
12272
12490
  <div class="doc doc-contents ">
12273
12491
 
12274
- <p>Get an instance that can be deleted.</p>
12492
+ <p>Get an instance that can be deleted.</p>
12275
12493
  <p>For some models this may just be any random object, but when we have FKs with <code>on_delete=models.PROTECT</code>
12276
12494
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
12277
12495
 
@@ -12290,7 +12508,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12290
12508
 
12291
12509
  <div class="doc doc-contents ">
12292
12510
 
12293
- <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
12511
+ <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
12294
12512
  <p>For some models this may just be any random objects, but when we have FKs with <code>on_delete=models.PROTECT</code>
12295
12513
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
12296
12514
 
@@ -12309,7 +12527,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12309
12527
 
12310
12528
  <div class="doc doc-contents ">
12311
12529
 
12312
- <p>DELETE a set of objects in a single request.</p>
12530
+ <p>DELETE a set of objects in a single request.</p>
12313
12531
 
12314
12532
  </div>
12315
12533
 
@@ -12326,7 +12544,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12326
12544
 
12327
12545
  <div class="doc doc-contents ">
12328
12546
 
12329
- <p>DELETE a single object identified by its primary key.</p>
12547
+ <p>DELETE a single object identified by its primary key.</p>
12330
12548
 
12331
12549
  </div>
12332
12550
 
@@ -12343,7 +12561,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12343
12561
 
12344
12562
  <div class="doc doc-contents ">
12345
12563
 
12346
- <p>DELETE a single object without permission.</p>
12564
+ <p>DELETE a single object without permission.</p>
12347
12565
 
12348
12566
  </div>
12349
12567
 
@@ -12370,7 +12588,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12370
12588
 
12371
12589
  <div class="doc doc-contents ">
12372
12590
  <p class="doc doc-class-bases">
12373
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12591
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12592
+
12593
+
12594
+
12595
+
12596
+
12374
12597
 
12375
12598
 
12376
12599
 
@@ -12397,7 +12620,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12397
12620
 
12398
12621
  <div class="doc doc-contents ">
12399
12622
 
12400
- <p>GET a single object as an authenticated user with permission to view the object.</p>
12623
+ <p>GET a single object as an authenticated user with permission to view the object.</p>
12401
12624
 
12402
12625
  </div>
12403
12626
 
@@ -12414,7 +12637,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12414
12637
 
12415
12638
  <div class="doc doc-contents ">
12416
12639
 
12417
- <p>GET a single object as an unauthenticated user.</p>
12640
+ <p>GET a single object as an unauthenticated user.</p>
12418
12641
 
12419
12642
  </div>
12420
12643
 
@@ -12431,7 +12654,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12431
12654
 
12432
12655
  <div class="doc doc-contents ">
12433
12656
 
12434
- <p>GET a single object as an authenticated user without the required permission.</p>
12657
+ <p>GET a single object as an authenticated user without the required permission.</p>
12435
12658
 
12436
12659
  </div>
12437
12660
 
@@ -12448,7 +12671,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12448
12671
 
12449
12672
  <div class="doc doc-contents ">
12450
12673
 
12451
- <p>Make an OPTIONS request for a single object.</p>
12674
+ <p>Make an OPTIONS request for a single object.</p>
12452
12675
 
12453
12676
  </div>
12454
12677
 
@@ -12475,7 +12698,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12475
12698
 
12476
12699
  <div class="doc doc-contents ">
12477
12700
  <p class="doc doc-class-bases">
12478
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12701
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12702
+
12703
+
12704
+
12705
+
12706
+
12479
12707
 
12480
12708
 
12481
12709
 
@@ -12502,7 +12730,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12502
12730
 
12503
12731
  <div class="doc doc-contents ">
12504
12732
 
12505
- <p>Get a list of model fields that could be tested with the ?depth query parameter</p>
12733
+ <p>Get a list of model fields that could be tested with the ?depth query parameter</p>
12506
12734
 
12507
12735
  </div>
12508
12736
 
@@ -12519,7 +12747,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12519
12747
 
12520
12748
  <div class="doc doc-contents ">
12521
12749
 
12522
- <p>GET a list of objects as an authenticated user with permission to view the objects.</p>
12750
+ <p>GET a list of objects as an authenticated user with permission to view the objects.</p>
12523
12751
 
12524
12752
  </div>
12525
12753
 
@@ -12536,7 +12764,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12536
12764
 
12537
12765
  <div class="doc doc-contents ">
12538
12766
 
12539
- <p>GET a list of objects as an unauthenticated user.</p>
12767
+ <p>GET a list of objects as an unauthenticated user.</p>
12540
12768
 
12541
12769
  </div>
12542
12770
 
@@ -12553,7 +12781,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12553
12781
 
12554
12782
  <div class="doc doc-contents ">
12555
12783
 
12556
- <p>GET a list of objects in CSV format as an authenticated user with permission to view some objects.</p>
12784
+ <p>GET a list of objects in CSV format as an authenticated user with permission to view some objects.</p>
12557
12785
 
12558
12786
  </div>
12559
12787
 
@@ -12570,7 +12798,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12570
12798
 
12571
12799
  <div class="doc doc-contents ">
12572
12800
 
12573
- <p>GET a list of objects using the "?depth=0" parameter.</p>
12801
+ <p>GET a list of objects using the "?depth=0" parameter.</p>
12574
12802
 
12575
12803
  </div>
12576
12804
 
@@ -12587,7 +12815,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12587
12815
 
12588
12816
  <div class="doc doc-contents ">
12589
12817
 
12590
- <p>GET a list of objects using the "?depth=1" parameter.</p>
12818
+ <p>GET a list of objects using the "?depth=1" parameter.</p>
12591
12819
 
12592
12820
  </div>
12593
12821
 
@@ -12604,7 +12832,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12604
12832
 
12605
12833
  <div class="doc doc-contents ">
12606
12834
 
12607
- <p>GET a list of objects filtered by ID.</p>
12835
+ <p>GET a list of objects filtered by ID.</p>
12608
12836
 
12609
12837
  </div>
12610
12838
 
@@ -12621,7 +12849,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12621
12849
 
12622
12850
  <div class="doc doc-contents ">
12623
12851
 
12624
- <p>GET a list of objects with an unknown filter parameter and no strict filtering, expect it to be ignored.</p>
12852
+ <p>GET a list of objects with an unknown filter parameter and no strict filtering, expect it to be ignored.</p>
12625
12853
 
12626
12854
  </div>
12627
12855
 
@@ -12638,7 +12866,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12638
12866
 
12639
12867
  <div class="doc doc-contents ">
12640
12868
 
12641
- <p>GET a list of objects with an unknown filter parameter and strict filtering, expect a 400 response.</p>
12869
+ <p>GET a list of objects with an unknown filter parameter and strict filtering, expect a 400 response.</p>
12642
12870
 
12643
12871
  </div>
12644
12872
 
@@ -12655,7 +12883,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12655
12883
 
12656
12884
  <div class="doc doc-contents ">
12657
12885
 
12658
- <p>GET a list of objects as an authenticated user without the required permission.</p>
12886
+ <p>GET a list of objects as an authenticated user without the required permission.</p>
12659
12887
 
12660
12888
  </div>
12661
12889
 
@@ -12672,7 +12900,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12672
12900
 
12673
12901
  <div class="doc doc-contents ">
12674
12902
 
12675
- <p>Make an OPTIONS request for a list endpoint.</p>
12903
+ <p>Make an OPTIONS request for a list endpoint.</p>
12676
12904
 
12677
12905
  </div>
12678
12906
 
@@ -12699,10 +12927,15 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12699
12927
 
12700
12928
  <div class="doc doc-contents ">
12701
12929
  <p class="doc doc-class-bases">
12702
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12930
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12931
+
12932
+
12933
+ <p>Validate Notes URL on objects that have the Note model Mixin.</p>
12934
+
12935
+
12936
+
12703
12937
 
12704
12938
 
12705
- <p>Validate Notes URL on objects that have the Note model Mixin.</p>
12706
12939
 
12707
12940
 
12708
12941
 
@@ -12739,7 +12972,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12739
12972
  <div class="doc doc-contents ">
12740
12973
 
12741
12974
 
12742
- <p>Test <code>?depth=2</code> query parameter for TreeModel</p>
12975
+ <p>Test <code>?depth=2</code> query parameter for TreeModel</p>
12976
+
12977
+
12978
+
12979
+
12980
+
12743
12981
 
12744
12982
 
12745
12983
 
@@ -12765,7 +13003,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12765
13003
 
12766
13004
  <div class="doc doc-contents ">
12767
13005
 
12768
- <p>GET a list of objects using the "?depth=2" parameter.
13006
+ <p>GET a list of objects using the "?depth=2" parameter.
12769
13007
  TreeModel Only</p>
12770
13008
 
12771
13009
  </div>
@@ -12793,7 +13031,12 @@ TreeModel Only</p>
12793
13031
 
12794
13032
  <div class="doc doc-contents ">
12795
13033
  <p class="doc doc-class-bases">
12796
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
13034
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
13035
+
13036
+
13037
+
13038
+
13039
+
12797
13040
 
12798
13041
 
12799
13042
 
@@ -12820,7 +13063,7 @@ TreeModel Only</p>
12820
13063
 
12821
13064
  <div class="doc doc-contents ">
12822
13065
 
12823
- <p>PATCH a set of objects in a single request.</p>
13066
+ <p>PATCH a set of objects in a single request.</p>
12824
13067
 
12825
13068
  </div>
12826
13069
 
@@ -12837,7 +13080,7 @@ TreeModel Only</p>
12837
13080
 
12838
13081
  <div class="doc doc-contents ">
12839
13082
 
12840
- <p>GET and then PUT an object and verify that it's accepted and unchanged.</p>
13083
+ <p>GET and then PUT an object and verify that it's accepted and unchanged.</p>
12841
13084
 
12842
13085
  </div>
12843
13086
 
@@ -12854,7 +13097,7 @@ TreeModel Only</p>
12854
13097
 
12855
13098
  <div class="doc doc-contents ">
12856
13099
 
12857
- <p>Make an OPTIONS request for a list endpoint and validate choices match expected choices for serializer.</p>
13100
+ <p>Make an OPTIONS request for a list endpoint and validate choices match expected choices for serializer.</p>
12858
13101
 
12859
13102
  </div>
12860
13103
 
@@ -12871,7 +13114,7 @@ TreeModel Only</p>
12871
13114
 
12872
13115
  <div class="doc doc-contents ">
12873
13116
 
12874
- <p>PATCH a single object identified by its ID.</p>
13117
+ <p>PATCH a single object identified by its ID.</p>
12875
13118
 
12876
13119
  </div>
12877
13120
 
@@ -12888,7 +13131,7 @@ TreeModel Only</p>
12888
13131
 
12889
13132
  <div class="doc doc-contents ">
12890
13133
 
12891
- <p>PATCH a single object without permission.</p>
13134
+ <p>PATCH a single object without permission.</p>
12892
13135
 
12893
13136
  </div>
12894
13137
 
@@ -12928,6 +13171,11 @@ TreeModel Only</p>
12928
13171
 
12929
13172
 
12930
13173
 
13174
+
13175
+
13176
+
13177
+
13178
+
12931
13179
  <div class="doc doc-children">
12932
13180
 
12933
13181
 
@@ -12950,10 +13198,15 @@ TreeModel Only</p>
12950
13198
 
12951
13199
  <div class="doc doc-contents ">
12952
13200
  <p class="doc doc-class-bases">
12953
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13201
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13202
+
13203
+
13204
+ <p>Base class for testing of FilterSets.</p>
13205
+
13206
+
13207
+
12954
13208
 
12955
13209
 
12956
- <p>Base class for testing of FilterSets.</p>
12957
13210
 
12958
13211
 
12959
13212
 
@@ -12979,7 +13232,7 @@ TreeModel Only</p>
12979
13232
 
12980
13233
  <div class="doc doc-contents ">
12981
13234
 
12982
- <p>Returns a list of distinct values from the requested queryset field to use in filterset tests.</p>
13235
+ <p>Returns a list of distinct values from the requested queryset field to use in filterset tests.</p>
12983
13236
  <p>Returns a list for use in testing multiple choice filters. The size of the returned list is random
12984
13237
  but will contain at minimum 2 unique values. The list of values will match at least 2 instances when
12985
13238
  passed to the queryset's filter(field_name__in=[]) method but will fail to match at least one instance.</p>
@@ -12997,9 +13250,11 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
12997
13250
  </thead>
12998
13251
  <tbody>
12999
13252
  <tr class="doc-section-item">
13000
- <td><code>field_name</code></td>
13001
13253
  <td>
13002
- <code><autoref identifier="str" optional>str</autoref></code>
13254
+ <code>field_name</code>
13255
+ </td>
13256
+ <td>
13257
+ <code>str</code>
13003
13258
  </td>
13004
13259
  <td>
13005
13260
  <div class="doc-md-description">
@@ -13011,9 +13266,11 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
13011
13266
  </td>
13012
13267
  </tr>
13013
13268
  <tr class="doc-section-item">
13014
- <td><code>queryset</code></td>
13015
13269
  <td>
13016
- <code><autoref identifier="django.db.models.QuerySet" optional hover>QuerySet</autoref></code>
13270
+ <code>queryset</code>
13271
+ </td>
13272
+ <td>
13273
+ <code><span title="django.db.models.QuerySet">QuerySet</span></code>
13017
13274
  </td>
13018
13275
  <td>
13019
13276
  <div class="doc-md-description">
@@ -13039,7 +13296,7 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
13039
13296
  <tbody>
13040
13297
  <tr class="doc-section-item">
13041
13298
  <td>
13042
- <code><autoref identifier="list" optional>list</autoref></code>
13299
+ <code>list</code>
13043
13300
  </td>
13044
13301
  <td>
13045
13302
  <div class="doc-md-description">
@@ -13062,7 +13319,7 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
13062
13319
  <tbody>
13063
13320
  <tr class="doc-section-item">
13064
13321
  <td>
13065
- <code><autoref identifier="ValueError" optional>ValueError</autoref></code>
13322
+ <code>ValueError</code>
13066
13323
  </td>
13067
13324
  <td>
13068
13325
  <div class="doc-md-description">
@@ -13099,10 +13356,15 @@ to filter the queryset to a subset of the total instances.</p>
13099
13356
 
13100
13357
  <div class="doc doc-contents ">
13101
13358
  <p class="doc doc-class-bases">
13102
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.BaseFilterTestCase" optional hover>BaseFilterTestCase</autoref></code></p>
13359
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.BaseFilterTestCase" href="#nautobot.apps.testing.FilterTestCases.BaseFilterTestCase">BaseFilterTestCase</a></code></p>
13360
+
13361
+
13362
+ <p>Add common tests for all FilterSets.</p>
13363
+
13364
+
13365
+
13103
13366
 
13104
13367
 
13105
- <p>Add common tests for all FilterSets.</p>
13106
13368
 
13107
13369
 
13108
13370
 
@@ -13128,7 +13390,7 @@ to filter the queryset to a subset of the total instances.</p>
13128
13390
 
13129
13391
  <div class="doc doc-contents ">
13130
13392
 
13131
- <p>Helper method to return q filter.</p>
13393
+ <p>Helper method to return q filter.</p>
13132
13394
 
13133
13395
  </div>
13134
13396
 
@@ -13145,7 +13407,7 @@ to filter the queryset to a subset of the total instances.</p>
13145
13407
 
13146
13408
  <div class="doc doc-contents ">
13147
13409
 
13148
- <p>Test all <code>RelatedMembershipBooleanFilter</code> filters found in <code>self.filterset.get_filters()</code>
13410
+ <p>Test all <code>RelatedMembershipBooleanFilter</code> filters found in <code>self.filterset.get_filters()</code>
13149
13411
  except for the ones with custom filter logic defined in its <code>method</code> attribute.</p>
13150
13412
  <p>This test asserts that <code>filter=True</code> matches <code>self.queryset.filter(field__isnull=False)</code> and
13151
13413
  that <code>filter=False</code> matches <code>self.queryset.filter(field__isnull=True)</code>.</p>
@@ -13165,7 +13427,7 @@ that <code>filter=False</code> matches <code>self.queryset.filter(field__isnull=
13165
13427
 
13166
13428
  <div class="doc doc-contents ">
13167
13429
 
13168
- <p>Test all multiple choice filters declared in <code>self.generic_filter_tests</code>.</p>
13430
+ <p>Test all multiple choice filters declared in <code>self.generic_filter_tests</code>.</p>
13169
13431
  <p>This test uses <code>get_filterset_test_values()</code> to retrieve a valid set of test data and asserts
13170
13432
  that the filterset filter output matches the corresponding queryset filter.
13171
13433
  The majority of Nautobot filters use conjoined=False, so the extra logic to support conjoined=True has not
@@ -13193,6 +13455,23 @@ This expects a field named <code>devices</code> on the model and a filter named
13193
13455
  <div class="doc doc-object doc-function">
13194
13456
 
13195
13457
 
13458
+ <h4 id="nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="doc doc-heading">
13459
+ <code class="highlight language-python"><span class="n">test_id</span><span class="p">()</span></code>
13460
+
13461
+ <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_id" class="headerlink" title="Permanent link">&para;</a></h4>
13462
+
13463
+
13464
+ <div class="doc doc-contents ">
13465
+
13466
+ <p>Verify that the filterset supports filtering by id with only lookup <code>__n</code>.</p>
13467
+
13468
+ </div>
13469
+
13470
+ </div>
13471
+
13472
+ <div class="doc doc-object doc-function">
13473
+
13474
+
13196
13475
  <h4 id="nautobot.apps.testing.FilterTestCases.FilterTestCase.test_invalid_filter" class="doc doc-heading">
13197
13476
  <code class="highlight language-python"><span class="n">test_invalid_filter</span><span class="p">()</span></code>
13198
13477
 
@@ -13201,7 +13480,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13201
13480
 
13202
13481
  <div class="doc doc-contents ">
13203
13482
 
13204
- <p>Verify that the filterset reports as invalid when initialized with an unsupported filter parameter.</p>
13483
+ <p>Verify that the filterset reports as invalid when initialized with an unsupported filter parameter.</p>
13205
13484
 
13206
13485
  </div>
13207
13486
 
@@ -13218,7 +13497,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13218
13497
 
13219
13498
  <div class="doc doc-contents ">
13220
13499
 
13221
- <p>Test the <code>q</code> filter based on attributes in <code>filter_predicates</code>.</p>
13500
+ <p>Test the <code>q</code> filter based on attributes in <code>filter_predicates</code>.</p>
13222
13501
 
13223
13502
  </div>
13224
13503
 
@@ -13235,7 +13514,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13235
13514
 
13236
13515
  <div class="doc doc-contents ">
13237
13516
 
13238
- <p>Test the <code>tags</code> filter which should be present on all PrimaryModel filtersets.</p>
13517
+ <p>Test the <code>tags</code> filter which should be present on all PrimaryModel filtersets.</p>
13239
13518
 
13240
13519
  </div>
13241
13520
 
@@ -13262,10 +13541,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13262
13541
 
13263
13542
  <div class="doc doc-contents ">
13264
13543
  <p class="doc doc-class-bases">
13265
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" optional hover>FilterTestCase</autoref></code></p>
13544
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" href="#nautobot.apps.testing.FilterTestCases.FilterTestCase">FilterTestCase</a></code></p>
13545
+
13546
+
13547
+ <p>Add simple tests for filtering by name.</p>
13548
+
13549
+
13550
+
13266
13551
 
13267
13552
 
13268
- <p>Add simple tests for filtering by name.</p>
13269
13553
 
13270
13554
 
13271
13555
 
@@ -13301,10 +13585,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13301
13585
 
13302
13586
  <div class="doc doc-contents ">
13303
13587
  <p class="doc doc-class-bases">
13304
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" optional hover>FilterTestCase</autoref></code></p>
13588
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" href="#nautobot.apps.testing.FilterTestCases.FilterTestCase">FilterTestCase</a></code></p>
13589
+
13590
+
13591
+ <p>Add simple tests for filtering by name and by slug.</p>
13592
+
13593
+
13594
+
13305
13595
 
13306
13596
 
13307
- <p>Add simple tests for filtering by name and by slug.</p>
13308
13597
 
13309
13598
 
13310
13599
 
@@ -13340,10 +13629,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13340
13629
 
13341
13630
  <div class="doc doc-contents ">
13342
13631
  <p class="doc doc-class-bases">
13343
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13632
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13633
+
13634
+
13635
+ <p>Add test cases for tenant and tenant-group filters.</p>
13636
+
13637
+
13638
+
13344
13639
 
13345
13640
 
13346
- <p>Add test cases for tenant and tenant-group filters.</p>
13347
13641
 
13348
13642
 
13349
13643
 
@@ -13392,6 +13686,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13392
13686
 
13393
13687
 
13394
13688
 
13689
+
13690
+
13691
+
13692
+
13693
+
13395
13694
  <div class="doc doc-children">
13396
13695
 
13397
13696
 
@@ -13414,10 +13713,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13414
13713
 
13415
13714
  <div class="doc doc-contents ">
13416
13715
  <p class="doc doc-class-bases">
13417
- Bases: <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13716
+ Bases: <code><span title="django.test.TestCase">TestCase</span></code></p>
13717
+
13718
+
13719
+ <p>Base class for generic form tests.</p>
13720
+
13721
+
13722
+
13418
13723
 
13419
13724
 
13420
- <p>Base class for generic form tests.</p>
13421
13725
 
13422
13726
 
13423
13727
 
@@ -13462,10 +13766,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13462
13766
 
13463
13767
  <div class="doc doc-contents ">
13464
13768
  <p class="doc doc-class-bases">
13465
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13769
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13770
+
13771
+
13772
+ <p>Parent class for TestCases which deal with models.</p>
13773
+
13774
+
13775
+
13466
13776
 
13467
13777
 
13468
- <p>Parent class for TestCases which deal with models.</p>
13469
13778
 
13470
13779
 
13471
13780
 
@@ -13505,6 +13814,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13505
13814
 
13506
13815
 
13507
13816
 
13817
+
13818
+
13819
+
13820
+
13821
+
13508
13822
  <div class="doc doc-children">
13509
13823
 
13510
13824
 
@@ -13527,10 +13841,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13527
13841
 
13528
13842
  <div class="doc doc-contents ">
13529
13843
  <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>
13844
+ 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>
13845
+
13846
+
13847
+ <p>Base class for generic model tests.</p>
13848
+
13849
+
13850
+
13531
13851
 
13532
13852
 
13533
- <p>Base class for generic model tests.</p>
13534
13853
 
13535
13854
 
13536
13855
 
@@ -13556,7 +13875,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13556
13875
 
13557
13876
  <div class="doc doc-contents ">
13558
13877
 
13559
- <p>Check that <code>composite_key</code> and filtering by <code>composite_key</code> both work.</p>
13878
+ <p>Check that <code>composite_key</code> and filtering by <code>composite_key</code> both work.</p>
13560
13879
 
13561
13880
  </div>
13562
13881
 
@@ -13573,7 +13892,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13573
13892
 
13574
13893
  <div class="doc doc-contents ">
13575
13894
 
13576
- <p>For dynamic-group capable models, check that they work as intended.</p>
13895
+ <p>For dynamic-group capable models, check that they work as intended.</p>
13577
13896
 
13578
13897
  </div>
13579
13898
 
@@ -13590,7 +13909,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13590
13909
 
13591
13910
  <div class="doc doc-contents ">
13592
13911
 
13593
- <p>Check that <code>get_docs_url()</code> returns a valid static file path for this model.</p>
13912
+ <p>Check that <code>get_docs_url()</code> returns a valid static file path for this model.</p>
13594
13913
 
13595
13914
  </div>
13596
13915
 
@@ -13607,7 +13926,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13607
13926
 
13608
13927
  <div class="doc doc-contents ">
13609
13928
 
13610
- <p>Check that <code>natural_key()</code> and <code>get_by_natural_key()</code> work reciprocally.</p>
13929
+ <p>Check that <code>natural_key()</code> and <code>get_by_natural_key()</code> work reciprocally.</p>
13611
13930
 
13612
13931
  </div>
13613
13932
 
@@ -13643,10 +13962,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13643
13962
 
13644
13963
  <div class="doc doc-contents ">
13645
13964
  <p class="doc doc-class-bases">
13646
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelTestCase" optional hover>ModelTestCase</autoref></code></p>
13965
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelTestCase" href="#nautobot.apps.testing.ModelTestCase">ModelTestCase</a></code></p>
13966
+
13967
+
13968
+ <p>Base TestCase for model views. Subclass to test individual views.</p>
13969
+
13970
+
13971
+
13647
13972
 
13648
13973
 
13649
- <p>Base TestCase for model views. Subclass to test individual views.</p>
13650
13974
 
13651
13975
 
13652
13976
 
@@ -13676,7 +14000,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13676
14000
 
13677
14001
  <div class="doc doc-contents ">
13678
14002
 
13679
- <p>Name of instance field to pass as a kwarg when looking up URLs for creating/editing/deleting a model instance.</p>
14003
+ <p>Name of instance field to pass as a kwarg when looking up URLs for creating/editing/deleting a model instance.</p>
13680
14004
  <p>If unspecified, "pk" and "slug" will be tried, in that order.</p>
13681
14005
  </div>
13682
14006
 
@@ -13705,7 +14029,12 @@ This expects a field named <code>devices</code> on the model and a filter named
13705
14029
 
13706
14030
  <div class="doc doc-contents ">
13707
14031
  <p class="doc doc-class-bases">
13708
- Bases: <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
14032
+ Bases: <code><span title="django.test.TestCase">TestCase</span></code></p>
14033
+
14034
+
14035
+
14036
+
14037
+
13709
14038
 
13710
14039
 
13711
14040
 
@@ -13732,7 +14061,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13732
14061
 
13733
14062
  <div class="doc doc-contents ">
13734
14063
 
13735
- <p>Populate your Nautobot data before migrating from the first migration to the second</p>
14064
+ <p>Populate your Nautobot data before migrating from the first migration to the second</p>
13736
14065
 
13737
14066
  </div>
13738
14067
 
@@ -13760,7 +14089,12 @@ This expects a field named <code>devices</code> on the model and a filter named
13760
14089
  <div class="doc doc-contents ">
13761
14090
 
13762
14091
 
13763
- <p>Base class for all Nautobot-specific unit tests.</p>
14092
+ <p>Base class for all Nautobot-specific unit tests.</p>
14093
+
14094
+
14095
+
14096
+
14097
+
13764
14098
 
13765
14099
 
13766
14100
 
@@ -13786,7 +14120,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13786
14120
 
13787
14121
  <div class="doc doc-contents ">
13788
14122
 
13789
- <p>Get the absolute API URL ("http://nautobot.example.com/api/...") for a given object.</p>
14123
+ <p>Get the absolute API URL ("http://nautobot.example.com/api/...") for a given object.</p>
13790
14124
 
13791
14125
  </div>
13792
14126
 
@@ -13796,14 +14130,21 @@ This expects a field named <code>devices</code> on the model and a filter named
13796
14130
 
13797
14131
 
13798
14132
  <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>
14133
+ <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
14134
 
13801
14135
  <a href="#nautobot.apps.testing.NautobotTestCaseMixin.add_permissions" class="headerlink" title="Permanent link">&para;</a></h3>
13802
14136
 
13803
14137
 
13804
14138
  <div class="doc doc-contents ">
13805
14139
 
13806
- <p>Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.</p>
14140
+ <p>Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.
14141
+ Additional keyword arguments will be passed to the ObjectPermission constructor to allow creating more detailed permissions.</p>
14142
+
14143
+
14144
+ <p><span class="doc-section-title">Examples:</span></p>
14145
+ <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>
14146
+ <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>
14147
+ </code></pre></div>
13807
14148
 
13808
14149
  </div>
13809
14150
 
@@ -13820,7 +14161,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13820
14161
 
13821
14162
  <div class="doc doc-contents ">
13822
14163
 
13823
- <p>Like assertNumQueries, but fuzzier. Assert that the number of queries falls within an acceptable range.</p>
14164
+ <p>Like assertNumQueries, but fuzzier. Assert that the number of queries falls within an acceptable range.</p>
13824
14165
 
13825
14166
  </div>
13826
14167
 
@@ -13837,7 +14178,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13837
14178
 
13838
14179
  <div class="doc doc-contents ">
13839
14180
 
13840
- <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
14181
+ <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
13841
14182
 
13842
14183
 
13843
14184
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13852,9 +14193,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13852
14193
  </thead>
13853
14194
  <tbody>
13854
14195
  <tr class="doc-section-item">
13855
- <td><code>response</code></td>
13856
14196
  <td>
13857
- <code><autoref identifier="HttpResponse" optional>HttpResponse</autoref></code>
14197
+ <code>response</code>
14198
+ </td>
14199
+ <td>
14200
+ <code>HttpResponse</code>
13858
14201
  </td>
13859
14202
  <td>
13860
14203
  <div class="doc-md-description">
@@ -13866,9 +14209,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13866
14209
  </td>
13867
14210
  </tr>
13868
14211
  <tr class="doc-section-item">
13869
- <td><code>text</code></td>
13870
14212
  <td>
13871
- <code><autoref identifier="str" optional>str</autoref></code>
14213
+ <code>text</code>
14214
+ </td>
14215
+ <td>
14216
+ <code>str</code>
13872
14217
  </td>
13873
14218
  <td>
13874
14219
  <div class="doc-md-description">
@@ -13880,9 +14225,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13880
14225
  </td>
13881
14226
  </tr>
13882
14227
  <tr class="doc-section-item">
13883
- <td><code>count</code></td>
13884
14228
  <td>
13885
- <code><autoref identifier="int" optional>int</autoref></code>
14229
+ <code>count</code>
14230
+ </td>
14231
+ <td>
14232
+ <code>int</code>
13886
14233
  </td>
13887
14234
  <td>
13888
14235
  <div class="doc-md-description">
@@ -13895,9 +14242,11 @@ it's present at all.</p>
13895
14242
  </td>
13896
14243
  </tr>
13897
14244
  <tr class="doc-section-item">
13898
- <td><code>status_code</code></td>
13899
14245
  <td>
13900
- <code><autoref identifier="int" optional>int</autoref></code>
14246
+ <code>status_code</code>
14247
+ </td>
14248
+ <td>
14249
+ <code>int</code>
13901
14250
  </td>
13902
14251
  <td>
13903
14252
  <div class="doc-md-description">
@@ -13909,9 +14258,11 @@ it's present at all.</p>
13909
14258
  </td>
13910
14259
  </tr>
13911
14260
  <tr class="doc-section-item">
13912
- <td><code>html</code></td>
13913
14261
  <td>
13914
- <code><autoref identifier="bool" optional>bool</autoref></code>
14262
+ <code>html</code>
14263
+ </td>
14264
+ <td>
14265
+ <code>bool</code>
13915
14266
  </td>
13916
14267
  <td>
13917
14268
  <div class="doc-md-description">
@@ -13940,7 +14291,7 @@ it's present at all.</p>
13940
14291
 
13941
14292
  <div class="doc doc-contents ">
13942
14293
 
13943
- <p>TestCase method. Provide more detail in the event of an unexpected HTTP response.</p>
14294
+ <p>TestCase method. Provide more detail in the event of an unexpected HTTP response.</p>
13944
14295
 
13945
14296
  </div>
13946
14297
 
@@ -13957,7 +14308,7 @@ it's present at all.</p>
13957
14308
 
13958
14309
  <div class="doc doc-contents ">
13959
14310
 
13960
- <p>Compare a model instance to a dictionary, checking that its attribute values match those specified
14311
+ <p>Compare a model instance to a dictionary, checking that its attribute values match those specified
13961
14312
  in the dictionary.</p>
13962
14313
  <p>:param instance: Python object instance
13963
14314
  :param data: Dictionary of test data used to define the instance
@@ -13979,7 +14330,7 @@ in the dictionary.</p>
13979
14330
 
13980
14331
  <div class="doc doc-contents ">
13981
14332
 
13982
- <p>Wrapper for assertQuerysetEqual with additional logic to assert input queryset and values are not empty</p>
14333
+ <p>Wrapper for assertQuerysetEqual with additional logic to assert input queryset and values are not empty</p>
13983
14334
 
13984
14335
  </div>
13985
14336
 
@@ -14000,7 +14351,7 @@ in the dictionary.</p>
14000
14351
 
14001
14352
  <div class="doc doc-contents ">
14002
14353
 
14003
- <p>Create and return a Tag instance for each name given.</p>
14354
+ <p>Create and return a Tag instance for each name given.</p>
14004
14355
  <p>DEPRECATED: use TagFactory instead.</p>
14005
14356
 
14006
14357
  </div>
@@ -14018,7 +14369,7 @@ in the dictionary.</p>
14018
14369
 
14019
14370
  <div class="doc doc-contents ">
14020
14371
 
14021
- <p>Return a dictionary representation of an instance.</p>
14372
+ <p>Return a dictionary representation of an instance.</p>
14022
14373
 
14023
14374
  </div>
14024
14375
 
@@ -14035,7 +14386,7 @@ in the dictionary.</p>
14035
14386
 
14036
14387
  <div class="doc doc-contents ">
14037
14388
 
14038
- <p>Test cases can override this method to perform any necessary manipulation of an instance prior to its evaluation
14389
+ <p>Test cases can override this method to perform any necessary manipulation of an instance prior to its evaluation
14039
14390
  against test data. For example, it can be used to decrypt a Secret's plaintext attribute.</p>
14040
14391
 
14041
14392
  </div>
@@ -14053,7 +14404,7 @@ against test data. For example, it can be used to decrypt a Secret's plaintext a
14053
14404
 
14054
14405
  <div class="doc doc-contents ">
14055
14406
 
14056
- <p>Setup shared testuser, statuses and client.</p>
14407
+ <p>Setup shared testuser, statuses and client.</p>
14057
14408
 
14058
14409
  </div>
14059
14410
 
@@ -14070,7 +14421,7 @@ against test data. For example, it can be used to decrypt a Secret's plaintext a
14070
14421
 
14071
14422
  <div class="doc doc-contents ">
14072
14423
 
14073
- <p>Clear cache after each test case.</p>
14424
+ <p>Clear cache after each test case.</p>
14074
14425
  <p>In theory this shouldn't be necessary as our cache <strong>should</strong> appropriately update and clear itself when
14075
14426
  data changes occur, but in practice we've seen issues here. Best guess at present is that it's due to
14076
14427
  <code>TransactionTestCase</code> truncating the database, which presumably doesn't trigger the relevant Django signals
@@ -14102,15 +14453,20 @@ that would otherwise refresh the cache appropriately.</p>
14102
14453
 
14103
14454
  <div class="doc doc-contents ">
14104
14455
  <p class="doc doc-class-bases">
14105
- Bases: <code><autoref identifier="rest_framework.test.APIClient" optional hover>APIClient</autoref></code></p>
14456
+ Bases: <code><span title="rest_framework.test.APIClient">APIClient</span></code></p>
14106
14457
 
14107
14458
 
14108
- <p>Base client class for Nautobot testing.</p>
14459
+ <p>Base client class for Nautobot testing.</p>
14109
14460
  <p>DO NOT USE THIS IN PRODUCTION NAUTOBOT CODE.</p>
14110
14461
 
14111
14462
 
14112
14463
 
14113
14464
 
14465
+
14466
+
14467
+
14468
+
14469
+
14114
14470
  <div class="doc doc-children">
14115
14471
 
14116
14472
 
@@ -14132,7 +14488,7 @@ that would otherwise refresh the cache appropriately.</p>
14132
14488
 
14133
14489
  <div class="doc doc-contents ">
14134
14490
 
14135
- <p>Default the SERVER_NAME to "nautobot.example.com" rather than Django's default "testserver".</p>
14491
+ <p>Default the SERVER_NAME to "nautobot.example.com" rather than Django's default "testserver".</p>
14136
14492
  <p>This matches the ALLOWED_HOSTS set in nautobot/core/tests/nautobot_config.py and
14137
14493
  helps to protect us against issues like https://github.com/nautobot/nautobot/issues/3065.</p>
14138
14494
 
@@ -14165,6 +14521,11 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14165
14521
 
14166
14522
 
14167
14523
 
14524
+
14525
+
14526
+
14527
+
14528
+
14168
14529
  <div class="doc doc-children">
14169
14530
 
14170
14531
 
@@ -14187,10 +14548,15 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14187
14548
 
14188
14549
  <div class="doc doc-contents ">
14189
14550
  <p class="doc doc-class-bases">
14190
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
14551
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
14552
+
14553
+
14554
+ <p>Base class for testing of the OpenAPI schema.</p>
14555
+
14556
+
14557
+
14191
14558
 
14192
14559
 
14193
- <p>Base class for testing of the OpenAPI schema.</p>
14194
14560
 
14195
14561
 
14196
14562
 
@@ -14216,7 +14582,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14216
14582
 
14217
14583
  <div class="doc doc-contents ">
14218
14584
 
14219
- <p>Test method to assert that this polymorphic component has the expected permitted types.</p>
14585
+ <p>Test method to assert that this polymorphic component has the expected permitted types.</p>
14220
14586
 
14221
14587
  </div>
14222
14588
 
@@ -14233,7 +14599,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14233
14599
 
14234
14600
  <div class="doc doc-contents ">
14235
14601
 
14236
- <p>Test method to assert that the given component property is marked as non-nullable.</p>
14602
+ <p>Test method to assert that the given component property is marked as non-nullable.</p>
14237
14603
 
14238
14604
  </div>
14239
14605
 
@@ -14250,7 +14616,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14250
14616
 
14251
14617
  <div class="doc doc-contents ">
14252
14618
 
14253
- <p>Test method to assert that the given component property is not marked as read-only.</p>
14619
+ <p>Test method to assert that the given component property is not marked as read-only.</p>
14254
14620
 
14255
14621
  </div>
14256
14622
 
@@ -14267,7 +14633,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14267
14633
 
14268
14634
  <div class="doc doc-contents ">
14269
14635
 
14270
- <p>Test method to assert that the given component property is marked as nullable.</p>
14636
+ <p>Test method to assert that the given component property is marked as nullable.</p>
14271
14637
 
14272
14638
  </div>
14273
14639
 
@@ -14284,7 +14650,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14284
14650
 
14285
14651
  <div class="doc doc-contents ">
14286
14652
 
14287
- <p>Test method to assert that the given component property is marked as read-only.</p>
14653
+ <p>Test method to assert that the given component property is marked as read-only.</p>
14288
14654
 
14289
14655
  </div>
14290
14656
 
@@ -14301,7 +14667,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14301
14667
 
14302
14668
  <div class="doc doc-contents ">
14303
14669
 
14304
- <p>Helper method to pull a specific component schema from the larger OpenAPI schema already loaded.</p>
14670
+ <p>Helper method to pull a specific component schema from the larger OpenAPI schema already loaded.</p>
14305
14671
 
14306
14672
  </div>
14307
14673
 
@@ -14318,7 +14684,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14318
14684
 
14319
14685
  <div class="doc doc-contents ">
14320
14686
 
14321
- <p>Helper method to identify a component referenced by the given property of the current component.</p>
14687
+ <p>Helper method to identify a component referenced by the given property of the current component.</p>
14322
14688
 
14323
14689
  </div>
14324
14690
 
@@ -14335,7 +14701,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14335
14701
 
14336
14702
  <div class="doc doc-contents ">
14337
14703
 
14338
- <p>Helper method to pull a specific property schema from a larger component schema already extracted.</p>
14704
+ <p>Helper method to pull a specific property schema from a larger component schema already extracted.</p>
14339
14705
 
14340
14706
  </div>
14341
14707
 
@@ -14352,7 +14718,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14352
14718
 
14353
14719
  <div class="doc doc-contents ">
14354
14720
 
14355
- <p>Bringing it all together.</p>
14721
+ <p>Bringing it all together.</p>
14356
14722
  <p>This validates the schema to show that:
14357
14723
  - The component exists and has such a property
14358
14724
  - The property has the correct <code>nullable</code> and <code>readOnly</code> values
@@ -14372,7 +14738,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14372
14738
  <tbody>
14373
14739
  <tr class="doc-section-item">
14374
14740
  <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>
14741
+ <code>Tuple[ref_component_name, ref_component_schema]</code>
14376
14742
  </td>
14377
14743
  <td>
14378
14744
  <div class="doc-md-description">
@@ -14417,16 +14783,21 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14417
14783
 
14418
14784
  <div class="doc doc-contents ">
14419
14785
  <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>
14786
+ 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
14787
 
14422
14788
 
14423
- <p>Base test case for Splinter Selenium integration testing with custom helper methods.</p>
14789
+ <p>Base test case for Splinter Selenium integration testing with custom helper methods.</p>
14424
14790
  <p>This extends <code>django.contrib.staticfiles.testing.StaticLiveServerTestCase</code>
14425
14791
  so there is no need to run <code>collectstatic</code> prior to running tests.</p>
14426
14792
 
14427
14793
 
14428
14794
 
14429
14795
 
14796
+
14797
+
14798
+
14799
+
14800
+
14430
14801
  <div class="doc doc-children">
14431
14802
 
14432
14803
 
@@ -14448,7 +14819,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14448
14819
 
14449
14820
  <div class="doc doc-contents ">
14450
14821
 
14451
- <p>Helper function to click the "Create" button on a form.</p>
14822
+ <p>Helper function to click the "Create" button on a form.</p>
14452
14823
 
14453
14824
  </div>
14454
14825
 
@@ -14465,7 +14836,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14465
14836
 
14466
14837
  <div class="doc doc-contents ">
14467
14838
 
14468
- <p>Helper function to click the "Add" button on a list view.</p>
14839
+ <p>Helper function to click the "Add" button on a list view.</p>
14469
14840
 
14470
14841
  </div>
14471
14842
 
@@ -14482,7 +14853,24 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14482
14853
 
14483
14854
  <div class="doc doc-contents ">
14484
14855
 
14485
- <p>Helper function to click on a parent menu and child menu in the navigation bar.</p>
14856
+ <p>Helper function to click on a parent menu and child menu in the navigation bar.</p>
14857
+
14858
+ </div>
14859
+
14860
+ </div>
14861
+
14862
+ <div class="doc doc-object doc-function">
14863
+
14864
+
14865
+ <h3 id="nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="doc doc-heading">
14866
+ <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>
14867
+
14868
+ <a href="#nautobot.apps.testing.SeleniumTestCase.fill_filters_select2_field" class="headerlink" title="Permanent link">&para;</a></h3>
14869
+
14870
+
14871
+ <div class="doc doc-contents ">
14872
+
14873
+ <p>Helper function to fill a Select2 single selection field on filters modals.</p>
14486
14874
 
14487
14875
  </div>
14488
14876
 
@@ -14499,7 +14887,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14499
14887
 
14500
14888
  <div class="doc doc-contents ">
14501
14889
 
14502
- <p>Helper function to fill a Select2 single selection field.</p>
14890
+ <p>Helper function to fill a Select2 single selection field on add/edit forms.</p>
14503
14891
 
14504
14892
  </div>
14505
14893
 
@@ -14516,7 +14904,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14516
14904
 
14517
14905
  <div class="doc doc-contents ">
14518
14906
 
14519
- <p>Helper function to fill a Select2 multi-selection field.</p>
14907
+ <p>Helper function to fill a Select2 multi-selection field.</p>
14520
14908
 
14521
14909
  </div>
14522
14910
 
@@ -14533,7 +14921,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14533
14921
 
14534
14922
  <div class="doc doc-contents ">
14535
14923
 
14536
- <p>Navigate to <code>login_url</code> and perform a login w/ the provided <code>username</code> and <code>password</code>.</p>
14924
+ <p>Navigate to <code>login_url</code> and perform a login w/ the provided <code>username</code> and <code>password</code>.</p>
14537
14925
 
14538
14926
  </div>
14539
14927
 
@@ -14554,7 +14942,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14554
14942
 
14555
14943
  <div class="doc doc-contents ">
14556
14944
 
14557
- <p>Close down the browser after tests are ran.</p>
14945
+ <p>Close down the browser after tests are ran.</p>
14558
14946
 
14559
14947
  </div>
14560
14948
 
@@ -14581,10 +14969,15 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14581
14969
 
14582
14970
  <div class="doc doc-contents ">
14583
14971
  <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>
14972
+ 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>
14973
+
14974
+
14975
+ <p>Base class for all Nautobot-specific unit tests.</p>
14976
+
14977
+
14978
+
14585
14979
 
14586
14980
 
14587
- <p>Base class for all Nautobot-specific unit tests.</p>
14588
14981
 
14589
14982
 
14590
14983
 
@@ -14610,7 +15003,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14610
15003
 
14611
15004
  <div class="doc doc-contents ">
14612
15005
 
14613
- <p>Initialize user and client.</p>
15006
+ <p>Initialize user and client.</p>
14614
15007
 
14615
15008
  </div>
14616
15009
 
@@ -14637,10 +15030,15 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14637
15030
 
14638
15031
  <div class="doc doc-contents ">
14639
15032
  <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>
15033
+ 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>
15034
+
15035
+
15036
+ <p>Base test case class using the TransactionTestCase for unit testing</p>
15037
+
15038
+
15039
+
14641
15040
 
14642
15041
 
14643
- <p>Base test case class using the TransactionTestCase for unit testing</p>
14644
15042
 
14645
15043
 
14646
15044
 
@@ -14666,7 +15064,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14666
15064
 
14667
15065
  <div class="doc doc-contents ">
14668
15066
 
14669
- <p>Provide a clean, post-migration state before each test case.</p>
15067
+ <p>Provide a clean, post-migration state before each test case.</p>
14670
15068
  <p>django.test.TransactionTestCase truncates the database after each test runs. We need at least the default
14671
15069
  statuses present in the database in order to run tests.</p>
14672
15070
 
@@ -14696,7 +15094,12 @@ statuses present in the database in order to run tests.</p>
14696
15094
  <div class="doc doc-contents ">
14697
15095
 
14698
15096
 
14699
- <p>We keep any TestCases with test_* methods inside a class to prevent unittest from trying to run them.</p>
15097
+ <p>We keep any TestCases with test_* methods inside a class to prevent unittest from trying to run them.</p>
15098
+
15099
+
15100
+
15101
+
15102
+
14700
15103
 
14701
15104
 
14702
15105
 
@@ -14723,10 +15126,15 @@ statuses present in the database in order to run tests.</p>
14723
15126
 
14724
15127
  <div class="doc doc-contents ">
14725
15128
  <p class="doc doc-class-bases">
14726
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15129
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15130
+
15131
+
15132
+ <p>Delete multiple instances.</p>
15133
+
15134
+
15135
+
14727
15136
 
14728
15137
 
14729
- <p>Delete multiple instances.</p>
14730
15138
 
14731
15139
 
14732
15140
 
@@ -14752,7 +15160,7 @@ statuses present in the database in order to run tests.</p>
14752
15160
 
14753
15161
  <div class="doc doc-contents ">
14754
15162
 
14755
- <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
15163
+ <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
14756
15164
  <p>For some models this may just be any random objects, but when we have FKs with <code>on_delete=models.PROTECT</code>
14757
15165
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
14758
15166
 
@@ -14781,16 +15189,21 @@ statuses present in the database in order to run tests.</p>
14781
15189
 
14782
15190
  <div class="doc doc-contents ">
14783
15191
  <p class="doc doc-class-bases">
14784
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15192
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14785
15193
 
14786
15194
 
14787
- <p>Edit multiple instances.</p>
15195
+ <p>Edit multiple instances.</p>
14788
15196
  <p>:bulk_edit_data: A dictionary of data to be used when bulk editing a set of objects. This data should differ
14789
15197
  from that used for initial object creation within setUpTestData().</p>
14790
15198
 
14791
15199
 
14792
15200
 
14793
15201
 
15202
+
15203
+
15204
+
15205
+
15206
+
14794
15207
  <div class="doc doc-children">
14795
15208
 
14796
15209
 
@@ -14822,10 +15235,15 @@ statuses present in the database in order to run tests.</p>
14822
15235
 
14823
15236
  <div class="doc doc-contents ">
14824
15237
  <p class="doc doc-class-bases">
14825
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15238
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15239
+
15240
+
15241
+ <p>Rename multiple instances.</p>
15242
+
15243
+
15244
+
14826
15245
 
14827
15246
 
14828
- <p>Rename multiple instances.</p>
14829
15247
 
14830
15248
 
14831
15249
 
@@ -14861,16 +15279,21 @@ statuses present in the database in order to run tests.</p>
14861
15279
 
14862
15280
  <div class="doc doc-contents ">
14863
15281
  <p class="doc doc-class-bases">
14864
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15282
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14865
15283
 
14866
15284
 
14867
- <p>Create multiple instances using a single form. Expects the creation of three new instances by default.</p>
15285
+ <p>Create multiple instances using a single form. Expects the creation of three new instances by default.</p>
14868
15286
  <p>:bulk_create_count: The number of objects expected to be created (default: 3).
14869
15287
  :bulk_create_data: A dictionary of data to be used for bulk object creation.</p>
14870
15288
 
14871
15289
 
14872
15290
 
14873
15291
 
15292
+
15293
+
15294
+
15295
+
15296
+
14874
15297
  <div class="doc doc-children">
14875
15298
 
14876
15299
 
@@ -14902,15 +15325,20 @@ statuses present in the database in order to run tests.</p>
14902
15325
 
14903
15326
  <div class="doc doc-contents ">
14904
15327
  <p class="doc doc-class-bases">
14905
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15328
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14906
15329
 
14907
15330
 
14908
- <p>Create a single new instance.</p>
15331
+ <p>Create a single new instance.</p>
14909
15332
  <p>:form_data: Data to be used when creating a new object.</p>
14910
15333
 
14911
15334
 
14912
15335
 
14913
15336
 
15337
+
15338
+
15339
+
15340
+
15341
+
14914
15342
  <div class="doc doc-children">
14915
15343
 
14916
15344
 
@@ -14942,10 +15370,15 @@ statuses present in the database in order to run tests.</p>
14942
15370
 
14943
15371
  <div class="doc doc-contents ">
14944
15372
  <p class="doc doc-class-bases">
14945
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15373
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15374
+
15375
+
15376
+ <p>Delete a single instance.</p>
15377
+
15378
+
15379
+
14946
15380
 
14947
15381
 
14948
- <p>Delete a single instance.</p>
14949
15382
 
14950
15383
 
14951
15384
 
@@ -14971,7 +15404,7 @@ statuses present in the database in order to run tests.</p>
14971
15404
 
14972
15405
  <div class="doc doc-contents ">
14973
15406
 
14974
- <p>Get an instance that can be deleted.</p>
15407
+ <p>Get an instance that can be deleted.</p>
14975
15408
  <p>For some models this may just be any random object, but when we have FKs with <code>on_delete=models.PROTECT</code>
14976
15409
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
14977
15410
 
@@ -15000,10 +15433,15 @@ statuses present in the database in order to run tests.</p>
15000
15433
 
15001
15434
  <div class="doc doc-contents ">
15002
15435
  <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>
15436
+ 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>
15437
+
15438
+
15439
+ <p>TestCase suitable for testing device component template models (ConsolePortTemplates, InterfaceTemplates, etc.)</p>
15440
+
15441
+
15442
+
15004
15443
 
15005
15444
 
15006
- <p>TestCase suitable for testing device component template models (ConsolePortTemplates, InterfaceTemplates, etc.)</p>
15007
15445
 
15008
15446
 
15009
15447
 
@@ -15039,10 +15477,15 @@ statuses present in the database in order to run tests.</p>
15039
15477
 
15040
15478
  <div class="doc doc-contents ">
15041
15479
  <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>
15480
+ 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>
15481
+
15482
+
15483
+ <p>TestCase suitable for testing device component models (ConsolePorts, Interfaces, etc.)</p>
15484
+
15485
+
15486
+
15043
15487
 
15044
15488
 
15045
- <p>TestCase suitable for testing device component models (ConsolePorts, Interfaces, etc.)</p>
15046
15489
 
15047
15490
 
15048
15491
 
@@ -15072,7 +15515,7 @@ statuses present in the database in order to run tests.</p>
15072
15515
 
15073
15516
  <div class="doc doc-contents ">
15074
15517
 
15075
- <p>Used for bulk-add (distinct from bulk-create) view testing; self.bulk_create_data will be used if unset.</p>
15518
+ <p>Used for bulk-add (distinct from bulk-create) view testing; self.bulk_create_data will be used if unset.</p>
15076
15519
  </div>
15077
15520
 
15078
15521
  </div>
@@ -15090,7 +15533,7 @@ statuses present in the database in order to run tests.</p>
15090
15533
 
15091
15534
  <div class="doc doc-contents ">
15092
15535
 
15093
- <p>Test bulk-adding this component to devices/virtual-machines.</p>
15536
+ <p>Test bulk-adding this component to devices/virtual-machines.</p>
15094
15537
 
15095
15538
  </div>
15096
15539
 
@@ -15117,16 +15560,21 @@ statuses present in the database in order to run tests.</p>
15117
15560
 
15118
15561
  <div class="doc doc-contents ">
15119
15562
  <p class="doc doc-class-bases">
15120
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15563
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15121
15564
 
15122
15565
 
15123
- <p>Edit a single existing instance.</p>
15566
+ <p>Edit a single existing instance.</p>
15124
15567
  <p>:update_data: Data to be used when updating the first existing object, fall back to form_data if not provided.
15125
15568
  :form_data: Fall back to this data if update_data is not provided, for backward compatibility.</p>
15126
15569
 
15127
15570
 
15128
15571
 
15129
15572
 
15573
+
15574
+
15575
+
15576
+
15577
+
15130
15578
  <div class="doc doc-children">
15131
15579
 
15132
15580
 
@@ -15158,10 +15606,15 @@ statuses present in the database in order to run tests.</p>
15158
15606
 
15159
15607
  <div class="doc doc-contents ">
15160
15608
  <p class="doc doc-class-bases">
15161
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15609
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15610
+
15611
+
15612
+ <p>View the changelog for an instance.</p>
15613
+
15614
+
15615
+
15162
15616
 
15163
15617
 
15164
- <p>View the changelog for an instance.</p>
15165
15618
 
15166
15619
 
15167
15620
 
@@ -15197,10 +15650,15 @@ statuses present in the database in order to run tests.</p>
15197
15650
 
15198
15651
  <div class="doc doc-contents ">
15199
15652
  <p class="doc doc-class-bases">
15200
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15653
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15654
+
15655
+
15656
+ <p>View the notes for an instance.</p>
15657
+
15658
+
15659
+
15201
15660
 
15202
15661
 
15203
- <p>View the notes for an instance.</p>
15204
15662
 
15205
15663
 
15206
15664
 
@@ -15236,10 +15694,15 @@ statuses present in the database in order to run tests.</p>
15236
15694
 
15237
15695
  <div class="doc doc-contents ">
15238
15696
  <p class="doc doc-class-bases">
15239
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15697
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15698
+
15699
+
15700
+ <p>Retrieve a single instance.</p>
15701
+
15702
+
15703
+
15240
15704
 
15241
15705
 
15242
- <p>Retrieve a single instance.</p>
15243
15706
 
15244
15707
 
15245
15708
 
@@ -15275,10 +15738,15 @@ statuses present in the database in order to run tests.</p>
15275
15738
 
15276
15739
  <div class="doc doc-contents ">
15277
15740
  <p class="doc doc-class-bases">
15278
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15741
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15742
+
15743
+
15744
+ <p>Retrieve multiple instances.</p>
15745
+
15746
+
15747
+
15279
15748
 
15280
15749
 
15281
- <p>Retrieve multiple instances.</p>
15282
15750
 
15283
15751
 
15284
15752
 
@@ -15304,7 +15772,7 @@ statuses present in the database in order to run tests.</p>
15304
15772
 
15305
15773
  <div class="doc doc-contents ">
15306
15774
 
15307
- <p>Verify that without STRICT_FILTERING, an unknown filter is ignored.</p>
15775
+ <p>Verify that without STRICT_FILTERING, an unknown filter is ignored.</p>
15308
15776
 
15309
15777
  </div>
15310
15778
 
@@ -15321,7 +15789,7 @@ statuses present in the database in order to run tests.</p>
15321
15789
 
15322
15790
  <div class="doc doc-contents ">
15323
15791
 
15324
- <p>Verify that with STRICT_FILTERING, an unknown filter results in an error message and no matches.</p>
15792
+ <p>Verify that with STRICT_FILTERING, an unknown filter results in an error message and no matches.</p>
15325
15793
 
15326
15794
  </div>
15327
15795
 
@@ -15338,7 +15806,7 @@ statuses present in the database in order to run tests.</p>
15338
15806
 
15339
15807
  <div class="doc doc-contents ">
15340
15808
 
15341
- <p>If example app is installed, check if the app banner is rendered correctly in ObjectListView.</p>
15809
+ <p>If example app is installed, check if the app banner is rendered correctly in ObjectListView.</p>
15342
15810
 
15343
15811
  </div>
15344
15812
 
@@ -15365,10 +15833,15 @@ statuses present in the database in order to run tests.</p>
15365
15833
 
15366
15834
  <div class="doc doc-contents ">
15367
15835
  <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>
15836
+ 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>
15837
+
15838
+
15839
+ <p>TestCase suitable for all organizational objects</p>
15840
+
15841
+
15842
+
15369
15843
 
15370
15844
 
15371
- <p>TestCase suitable for all organizational objects</p>
15372
15845
 
15373
15846
 
15374
15847
 
@@ -15404,10 +15877,15 @@ statuses present in the database in order to run tests.</p>
15404
15877
 
15405
15878
  <div class="doc doc-contents ">
15406
15879
  <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>
15880
+ 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>
15881
+
15882
+
15883
+ <p>TestCase suitable for testing all standard View functions for primary objects</p>
15884
+
15885
+
15886
+
15408
15887
 
15409
15888
 
15410
- <p>TestCase suitable for testing all standard View functions for primary objects</p>
15411
15889
 
15412
15890
 
15413
15891
 
@@ -15451,7 +15929,7 @@ statuses present in the database in order to run tests.</p>
15451
15929
 
15452
15930
  <div class="doc doc-contents ">
15453
15931
 
15454
- <p>Test helper function to call get_job_class_and_model() then call run_job_for_testing().</p>
15932
+ <p>Test helper function to call get_job_class_and_model() then call run_job_for_testing().</p>
15455
15933
 
15456
15934
  </div>
15457
15935
 
@@ -15468,7 +15946,7 @@ statuses present in the database in order to run tests.</p>
15468
15946
 
15469
15947
  <div class="doc doc-contents ">
15470
15948
 
15471
- <p>Create a User with the given permissions.</p>
15949
+ <p>Create a User with the given permissions.</p>
15472
15950
 
15473
15951
  </div>
15474
15952
 
@@ -15485,7 +15963,7 @@ statuses present in the database in order to run tests.</p>
15485
15963
 
15486
15964
  <div class="doc doc-contents ">
15487
15965
 
15488
- <p>Temporarily suppress expected warning messages to keep the test output clean.</p>
15966
+ <p>Temporarily suppress expected warning messages to keep the test output clean.</p>
15489
15967
 
15490
15968
  </div>
15491
15969
 
@@ -15502,7 +15980,7 @@ statuses present in the database in order to run tests.</p>
15502
15980
 
15503
15981
  <div class="doc doc-contents ">
15504
15982
 
15505
- <p>Given decoded HTML content from an HTTP response, return a list of form errors.</p>
15983
+ <p>Given decoded HTML content from an HTTP response, return a list of form errors.</p>
15506
15984
 
15507
15985
  </div>
15508
15986
 
@@ -15519,7 +15997,7 @@ statuses present in the database in order to run tests.</p>
15519
15997
 
15520
15998
  <div class="doc doc-contents ">
15521
15999
 
15522
- <p>Given raw HTML content from an HTTP response, extract the main div only.</p>
16000
+ <p>Given raw HTML content from an HTTP response, extract the main div only.</p>
15523
16001
  <html>
15524
16002
  <head>... <link href="../../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
15525
16003
  html.glightbox-open { overflow: initial; height: 100%; }
@@ -15558,7 +16036,7 @@ document$.subscribe(() => { lightbox.reload() });
15558
16036
 
15559
16037
  <div class="doc doc-contents ">
15560
16038
 
15561
- <p>For testing purposes only; it returns a random string of size 100 consisting of letters and numbers.</p>
16039
+ <p>For testing purposes only; it returns a random string of size 100 consisting of letters and numbers.</p>
15562
16040
 
15563
16041
  </div>
15564
16042
 
@@ -15575,7 +16053,7 @@ document$.subscribe(() => { lightbox.reload() });
15575
16053
 
15576
16054
  <div class="doc doc-contents ">
15577
16055
 
15578
- <p>Returns a subset of objects in the given queryset that have no protected relationships that would prevent deletion.</p>
16056
+ <p>Returns a subset of objects in the given queryset that have no protected relationships that would prevent deletion.</p>
15579
16057
 
15580
16058
  </div>
15581
16059
 
@@ -15592,7 +16070,7 @@ document$.subscribe(() => { lightbox.reload() });
15592
16070
 
15593
16071
  <div class="doc doc-contents ">
15594
16072
 
15595
- <p>Test helper function to look up a job class and job model and ensure the latter is enabled.</p>
16073
+ <p>Test helper function to look up a job class and job model and ensure the latter is enabled.</p>
15596
16074
 
15597
16075
 
15598
16076
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15607,9 +16085,11 @@ document$.subscribe(() => { lightbox.reload() });
15607
16085
  </thead>
15608
16086
  <tbody>
15609
16087
  <tr class="doc-section-item">
15610
- <td><code>module</code></td>
15611
16088
  <td>
15612
- <code><autoref identifier="str" optional>str</autoref></code>
16089
+ <code>module</code>
16090
+ </td>
16091
+ <td>
16092
+ <code>str</code>
15613
16093
  </td>
15614
16094
  <td>
15615
16095
  <div class="doc-md-description">
@@ -15621,9 +16101,11 @@ document$.subscribe(() => { lightbox.reload() });
15621
16101
  </td>
15622
16102
  </tr>
15623
16103
  <tr class="doc-section-item">
15624
- <td><code>name</code></td>
15625
16104
  <td>
15626
- <code><autoref identifier="str" optional>str</autoref></code>
16105
+ <code>name</code>
16106
+ </td>
16107
+ <td>
16108
+ <code>str</code>
15627
16109
  </td>
15628
16110
  <td>
15629
16111
  <div class="doc-md-description">
@@ -15635,9 +16117,11 @@ document$.subscribe(() => { lightbox.reload() });
15635
16117
  </td>
15636
16118
  </tr>
15637
16119
  <tr class="doc-section-item">
15638
- <td><code>source</code></td>
15639
16120
  <td>
15640
- <code><autoref identifier="str" optional>str</autoref></code>
16121
+ <code>source</code>
16122
+ </td>
16123
+ <td>
16124
+ <code>str</code>
15641
16125
  </td>
15642
16126
  <td>
15643
16127
  <div class="doc-md-description">
@@ -15663,7 +16147,7 @@ document$.subscribe(() => { lightbox.reload() });
15663
16147
  <tbody>
15664
16148
  <tr class="doc-section-item">
15665
16149
  <td>
15666
- <code><autoref identifier="nautobot.core.testing.JobClassInfo" optional hover>JobClassInfo</autoref></code>
16150
+ <code><span title="nautobot.core.testing.JobClassInfo">JobClassInfo</span></code>
15667
16151
  </td>
15668
16152
  <td>
15669
16153
  <div class="doc-md-description">
@@ -15689,7 +16173,7 @@ document$.subscribe(() => { lightbox.reload() });
15689
16173
 
15690
16174
  <div class="doc doc-contents ">
15691
16175
 
15692
- <p>Take a dictionary of test data (suitable for comparison to an instance) and return a dict suitable for POSTing.</p>
16176
+ <p>Take a dictionary of test data (suitable for comparison to an instance) and return a dict suitable for POSTing.</p>
15693
16177
 
15694
16178
  </div>
15695
16179
 
@@ -15706,7 +16190,7 @@ document$.subscribe(() => { lightbox.reload() });
15706
16190
 
15707
16191
  <div class="doc doc-contents ">
15708
16192
 
15709
- <p>Provide a common interface to run Nautobot jobs as part of unit tests.</p>
16193
+ <p>Provide a common interface to run Nautobot jobs as part of unit tests.</p>
15710
16194
 
15711
16195
 
15712
16196
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15721,9 +16205,11 @@ document$.subscribe(() => { lightbox.reload() });
15721
16205
  </thead>
15722
16206
  <tbody>
15723
16207
  <tr class="doc-section-item">
15724
- <td><code>job</code></td>
15725
16208
  <td>
15726
- <code><autoref identifier="nautobot.extras.models.Job" optional hover>Job</autoref></code>
16209
+ <code>job</code>
16210
+ </td>
16211
+ <td>
16212
+ <code><span title="nautobot.extras.models.Job">Job</span></code>
15727
16213
  </td>
15728
16214
  <td>
15729
16215
  <div class="doc-md-description">
@@ -15735,9 +16221,11 @@ document$.subscribe(() => { lightbox.reload() });
15735
16221
  </td>
15736
16222
  </tr>
15737
16223
  <tr class="doc-section-item">
15738
- <td><code>username</code></td>
15739
16224
  <td>
15740
- <code><autoref identifier="str" optional>str</autoref></code>
16225
+ <code>username</code>
16226
+ </td>
16227
+ <td>
16228
+ <code>str</code>
15741
16229
  </td>
15742
16230
  <td>
15743
16231
  <div class="doc-md-description">
@@ -15749,9 +16237,11 @@ document$.subscribe(() => { lightbox.reload() });
15749
16237
  </td>
15750
16238
  </tr>
15751
16239
  <tr class="doc-section-item">
15752
- <td><code>profile</code></td>
15753
16240
  <td>
15754
- <code><autoref identifier="bool" optional>bool</autoref></code>
16241
+ <code>profile</code>
16242
+ </td>
16243
+ <td>
16244
+ <code>bool</code>
15755
16245
  </td>
15756
16246
  <td>
15757
16247
  <div class="doc-md-description">
@@ -15779,7 +16269,7 @@ document$.subscribe(() => { lightbox.reload() });
15779
16269
  <tr class="doc-section-item">
15780
16270
  <td><code>**kwargs</code></td>
15781
16271
  <td>
15782
- <code><autoref identifier="any" optional>any</autoref></code>
16272
+ <code>any</code>
15783
16273
  </td>
15784
16274
  <td>
15785
16275
  <div class="doc-md-description">
@@ -15802,7 +16292,7 @@ document$.subscribe(() => { lightbox.reload() });
15802
16292
  <tbody>
15803
16293
  <tr class="doc-section-item">
15804
16294
  <td>
15805
- <code><autoref identifier="nautobot.extras.models.JobResult" optional hover>JobResult</autoref></code>
16295
+ <code><span title="nautobot.extras.models.JobResult">JobResult</span></code>
15806
16296
  </td>
15807
16297
  <td>
15808
16298
  <div class="doc-md-description">
@@ -15920,7 +16410,7 @@ document$.subscribe(() => { lightbox.reload() });
15920
16410
 
15921
16411
 
15922
16412
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
15923
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"/></svg>
16413
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"/></svg>
15924
16414
  </a>
15925
16415
 
15926
16416
 
@@ -15928,7 +16418,7 @@ document$.subscribe(() => { lightbox.reload() });
15928
16418
 
15929
16419
 
15930
16420
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
15931
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
16421
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
15932
16422
  </a>
15933
16423
 
15934
16424
 
@@ -15936,7 +16426,7 @@ document$.subscribe(() => { lightbox.reload() });
15936
16426
 
15937
16427
 
15938
16428
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
15939
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1s21.16-47.06 47.06-47.06h47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
16429
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1s21.16-47.06 47.06-47.06h47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
15940
16430
  </a>
15941
16431
 
15942
16432
 
@@ -15944,7 +16434,7 @@ document$.subscribe(() => { lightbox.reload() });
15944
16434
 
15945
16435
 
15946
16436
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
15947
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
16437
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
15948
16438
  </a>
15949
16439
 
15950
16440
 
@@ -15952,7 +16442,7 @@ document$.subscribe(() => { lightbox.reload() });
15952
16442
 
15953
16443
 
15954
16444
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
15955
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253"/></svg>
16445
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253"/></svg>
15956
16446
  </a>
15957
16447
 
15958
16448
  </div>
@@ -15967,10 +16457,10 @@ document$.subscribe(() => { lightbox.reload() });
15967
16457
  </div>
15968
16458
 
15969
16459
 
15970
- <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>
16460
+ <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.f8cc74c7.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
16461
 
15972
16462
 
15973
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
16463
+ <script src="../../../assets/javascripts/bundle.60a45f97.min.js"></script>
15974
16464
 
15975
16465
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
15976
16466