60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from ..models import Index
|
|
|
|
from .literals import (
|
|
TEST_INDEX_LABEL, TEST_INDEX_LABEL_EDITED, TEST_INDEX_SLUG
|
|
)
|
|
|
|
|
|
class IndexTestMixin(object):
|
|
def _create_test_index(self, rebuild=False):
|
|
# Create empty index
|
|
self.test_index = Index.objects.create(label=TEST_INDEX_LABEL)
|
|
|
|
# Add our document type to the new index
|
|
self.test_index.document_types.add(self.test_document_type)
|
|
|
|
# Rebuild indexes
|
|
if rebuild:
|
|
Index.objects.rebuild()
|
|
|
|
|
|
class IndexViewTestMixin(object):
|
|
def _request_test_index_create_view(self):
|
|
# Typecast to list to force queryset evaluation
|
|
values = list(Index.objects.values_list('pk', flat=True))
|
|
|
|
response = self.post(
|
|
viewname='indexing:index_setup_create', data={
|
|
'label': TEST_INDEX_LABEL, 'slug': TEST_INDEX_SLUG
|
|
}
|
|
)
|
|
|
|
self.test_index = Index.objects.exclude(pk__in=values).first()
|
|
|
|
return response
|
|
|
|
def _request_test_index_delete_view(self):
|
|
return self.post(
|
|
viewname='indexing:index_setup_delete', kwargs={
|
|
'pk': self.test_index.pk
|
|
}
|
|
)
|
|
|
|
def _request_test_index_edit_view(self):
|
|
return self.post(
|
|
viewname='indexing:index_setup_edit', kwargs={
|
|
'pk': self.test_index.pk
|
|
}, data={
|
|
'label': TEST_INDEX_LABEL_EDITED, 'slug': TEST_INDEX_SLUG
|
|
}
|
|
)
|
|
|
|
def _request_test_index_rebuild_view(self):
|
|
return self.post(
|
|
viewname='indexing:index_setup_rebuild', kwargs={
|
|
'pk': self.test_index.pk
|
|
}
|
|
)
|