import pytest from django.urls import reverse from rest_framework import status from openslides.agenda.models import Item from openslides.topics.models import Topic from openslides.utils.test import TestCase from ..helpers import count_queries @pytest.mark.django_db(transaction=False) def test_topic_item_db_queries(): """ Tests that only the following db queries are done: * 1 requests to get the list of all topics, * 1 request to get attachments, * 1 request to get the agenda item """ for index in range(10): Topic.objects.create(title='topic-{}'.format(index)) assert count_queries(Topic.get_elements) == 3 class TopicCreate(TestCase): """ Tests creation of new topics. """ def setUp(self): self.client.login( username='admin', password='admin', ) def test_simple_create(self): response = self.client.post( reverse('topic-list'), {'title': 'test_title_ahyo1uifoo9Aiph2av5a', 'text': 'test_text_chu9Uevoo5choo0Xithe'}) self.assertEqual(response.status_code, status.HTTP_201_CREATED) topic = Topic.objects.get() self.assertEqual(topic.title, 'test_title_ahyo1uifoo9Aiph2av5a') self.assertEqual(topic.text, 'test_text_chu9Uevoo5choo0Xithe') self.assertEqual(Item.objects.get(), topic.agenda_item)