12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import pytest
- from django.urls import reverse
- from ....test import assert_contains
- from ...models import MenuItem
- def test_nav_contains_menus_item(admin_client, list_url):
- response = admin_client.get(list_url)
- assert_contains(response, reverse("misago:admin:settings:menu-items: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_item(admin_client, list_url, menu_item):
- response = admin_client.get(list_url)
- assert_contains(response, menu_item.title)
- def test_menu_items_can_be_mass_deleted(admin_client, list_url, superuser):
- items = []
- for _ in range(10):
- item = MenuItem.objects.create(
- menu=MenuItem.MENU_FOOTER,
- title="Test Item {}".format(_),
- url="https://items{}.com".format(_),
- )
- items.append(item.pk)
- assert MenuItem.objects.count() == 10
- response = admin_client.post(
- list_url, data={"action": "delete", "selected_items": items}
- )
- assert response.status_code == 302
- assert MenuItem.objects.count() == 0
- def test_creation_form_renders(admin_client):
- response = admin_client.get(reverse("misago:admin:settings:menu-items:new"))
- assert response.status_code == 200
- def test_form_creates_new_menu_item(admin_client):
- response = admin_client.post(
- reverse("misago:admin:settings:menu-items:new"),
- {
- "menu": MenuItem.MENU_FOOTER,
- "title": "Test Item",
- "url": "https://admin.com/items/",
- },
- )
- item = MenuItem.objects.get()
- assert item.menu == MenuItem.MENU_FOOTER
- assert item.title == "Test Item"
- assert item.url == "https://admin.com/items/"
- def test_edit_form_renders(admin_client, menu_item):
- response = admin_client.get(
- reverse("misago:admin:settings:menu-items:edit", kwargs={"pk": menu_item.pk})
- )
- assert_contains(response, menu_item.title)
- def test_edit_form_updates_menu_items(admin_client, menu_item):
- response = admin_client.post(
- reverse("misago:admin:settings:menu-items:edit", kwargs={"pk": menu_item.pk}),
- data={
- "menu": menu_item.MENU_BOTH,
- "title": "Test Edited",
- "url": "https://example.com/edited/",
- },
- )
- assert response.status_code == 302
- menu_item.refresh_from_db()
- assert menu_item.menu == MenuItem.MENU_BOTH
- assert menu_item.title == "Test Edited"
- assert menu_item.url == "https://example.com/edited/"
- def test_menu_item_can_be_deleted(admin_client, menu_item):
- response = admin_client.post(
- reverse("misago:admin:settings:menu-items:delete", kwargs={"pk": menu_item.pk})
- )
- assert response.status_code == 302
- with pytest.raises(MenuItem.DoesNotExist):
- menu_item.refresh_from_db()
|