12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import pytest
- from django.urls import reverse
- from ....test import assert_contains
- from ...models import MenuLink
- def test_nav_contains_menus_link(admin_client, list_url):
- response = admin_client.get(list_url)
- assert_contains(response, reverse("misago:admin:settings:links:index"))
- def test_empty_list_renders(admin_client, list_url):
- response = admin_client.get(list_url)
- assert response.status_code == 200
- def test_list_renders_menu_link(admin_client, list_url, menu_link):
- response = admin_client.get(list_url)
- assert_contains(response, menu_link.title)
- def test_menu_links_can_be_mass_deleted(admin_client, list_url, superuser):
- links = []
- for _ in range(10):
- link = MenuLink.objects.create(
- position=MenuLink.POSITION_FOOTER,
- title="Test Link {}".format(_),
- link="https://links{}.com".format(_),
- )
- links.append(link.pk)
- assert MenuLink.objects.count() == 10
- response = admin_client.post(
- list_url, data={"action": "delete", "selected_items": links}
- )
- assert response.status_code == 302
- assert MenuLink.objects.count() == 0
- def test_creation_form_renders(admin_client):
- response = admin_client.get(reverse("misago:admin:settings:links:new"))
- assert response.status_code == 200
- def test_form_creates_new_menu_link(admin_client):
- response = admin_client.post(
- reverse("misago:admin:settings:links:new"),
- {
- "position": MenuLink.POSITION_FOOTER,
- "title": "Test Link",
- "link": "https://admin.com/links/",
- },
- )
- link = MenuLink.objects.get()
- assert link.position == MenuLink.POSITION_FOOTER
- assert link.title == "Test Link"
- assert link.link == "https://admin.com/links/"
- def test_edit_form_renders(admin_client, menu_link):
- response = admin_client.get(
- reverse("misago:admin:settings:links:edit", kwargs={"pk": menu_link.pk})
- )
- assert_contains(response, menu_link.title)
- def test_edit_form_updates_menu_links(admin_client, menu_link):
- response = admin_client.post(
- reverse("misago:admin:settings:links:edit", kwargs={"pk": menu_link.pk}),
- data={
- "position": menu_link.POSITION_BOTH,
- "title": "Test Edited",
- "link": "https://example.com/edited/",
- },
- )
- assert response.status_code == 302
- menu_link.refresh_from_db()
- assert menu_link.position == MenuLink.POSITION_BOTH
- assert menu_link.title == "Test Edited"
- assert menu_link.link == "https://example.com/edited/"
- def test_menu_link_can_be_deleted(admin_client, menu_link):
- response = admin_client.post(
- reverse("misago:admin:settings:links:delete", kwargs={"pk": menu_link.pk})
- )
- assert response.status_code == 302
- with pytest.raises(MenuLink.DoesNotExist):
- menu_link.refresh_from_db()
|