# -*- coding: utf-8 -*- import sys from django.contrib.auth import get_user_model from helpdesk.models import Ticket, Queue, UserSettings User = get_user_model() def get_staff_user(username='helpdesk.staff', password='password'): try: user = User.objects.get(username=username) except User.DoesNotExist: user = User.objects.create_user(username=username, password=password, email='staff@example.com') user.is_staff = True user.save() else: user.set_password(password) user.save() return user def reload_urlconf(urlconf=None): from django.utils import six if six.PY2: from imp import reload else: from importlib import reload if urlconf is None: from django.conf import settings urlconf = settings.ROOT_URLCONF if HELPDESK_URLCONF in sys.modules: reload(sys.modules[HELPDESK_URLCONF]) if urlconf in sys.modules: reload(sys.modules[urlconf]) from django.urls import clear_url_caches clear_url_caches() def update_user_settings(user, **kwargs): usersettings = user.usersettings_helpdesk settings = usersettings.settings settings.update(kwargs) usersettings.settings = settings usersettings.save() def delete_user_settings(user, *args): usersettings = user.usersettings_helpdesk settings = usersettings.settings for setting in args: if setting in settings: del settings[setting] usersettings.settings = settings usersettings.save() def create_ticket(**kwargs): q = kwargs.get('queue', None) if q is None: try: q = Queue.objects.all()[0] except IndexError: q = Queue.objects.create(title='Test Q', slug='test', ) data = { 'title': "I wish to register a complaint", 'queue': q, } data.update(kwargs) return Ticket.objects.create(**data) HELPDESK_URLCONF = 'helpdesk.urls' def print_response(response, stdout=False): content = response.content.decode() if stdout: print(content) else: with open("response.html", "w") as f: # pragma: no cover f.write(content) # pragma: no cover