Used a separate admin site for autocomplete tests.

This commit is contained in:
Tim Graham 2017-12-01 14:43:40 -05:00
parent cf12257db2
commit 474bd7a5d4
2 changed files with 7 additions and 5 deletions

View File

@ -1,7 +1,6 @@
import json
from django.contrib import admin
from django.contrib.admin import site
from django.contrib.admin.tests import AdminSeleniumTestCase
from django.contrib.admin.views.autocomplete import AutocompleteJsonView
from django.contrib.auth.models import Permission, User
@ -30,6 +29,7 @@ class BookAdmin(admin.ModelAdmin):
inlines = [AuthorshipInline]
site = admin.AdminSite(name='autocomplete_admin')
site.register(Question, QuestionAdmin)
site.register(Answer, AnswerAdmin)
site.register(Author, AuthorAdmin)
@ -39,7 +39,7 @@ site.register(Book, BookAdmin)
class AutocompleteJsonViewTests(AdminViewBasicTestCase):
as_view_args = {'model_admin': QuestionAdmin(Question, site)}
factory = RequestFactory()
url = reverse_lazy('admin:admin_views_question_autocomplete')
url = reverse_lazy('autocomplete_admin:admin_views_question_autocomplete')
@classmethod
def setUpTestData(cls):
@ -156,12 +156,12 @@ class SeleniumTests(AdminSeleniumTestCase):
self.superuser = User.objects.create_superuser(
username='super', password='secret', email='super@example.com',
)
self.admin_login(username='super', password='secret', login_url=reverse('admin:index'))
self.admin_login(username='super', password='secret', login_url=reverse('autocomplete_admin:index'))
def test_select(self):
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
self.selenium.get(self.live_server_url + reverse('admin:admin_views_answer_add'))
self.selenium.get(self.live_server_url + reverse('autocomplete_admin:admin_views_answer_add'))
elem = self.selenium.find_element_by_css_selector('.select2-selection')
elem.click() # Open the autocomplete dropdown.
results = self.selenium.find_element_by_css_selector('.select2-results')
@ -196,7 +196,7 @@ class SeleniumTests(AdminSeleniumTestCase):
def test_select_multiple(self):
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
self.selenium.get(self.live_server_url + reverse('admin:admin_views_question_add'))
self.selenium.get(self.live_server_url + reverse('autocomplete_admin:admin_views_question_add'))
elem = self.selenium.find_element_by_css_selector('.select2-selection')
elem.click() # Open the autocomplete dropdown.
results = self.selenium.find_element_by_css_selector('.select2-results')

View File

@ -1,6 +1,7 @@
from django.conf.urls import include, url
from . import admin, custom_has_permission_admin, customadmin, views
from .test_autocomplete_view import site as autocomplete_site
urlpatterns = [
url(r'^test_admin/admin/doc/', include('django.contrib.admindocs.urls')),
@ -15,4 +16,5 @@ urlpatterns = [
# All admin views accept `extra_context` to allow adding it like this:
url(r'^test_admin/admin8/', (admin.site.get_urls(), 'admin', 'admin-extra-context'), {'extra_context': {}}),
url(r'^test_admin/has_permission_admin/', custom_has_permission_admin.site.urls),
url(r'^test_admin/autocomplete_admin/', autocomplete_site.urls),
]