Files
django-dav-events/dav_events/tests/generic.py

46 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.apps import apps
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from ..models.event import Event
from ..models.eventstatus import EventStatus
class RoleMixin(object):
def create_user_for_role(self, role_name, password, first_name, last_name):
group = Group(name=role_name)
group.save()
user_model = get_user_model()
email = '{}@localhost'.format(role_name)
user_name = email
user = user_model.objects.create_user(username=user_name, password=password, email=user_name,
first_name=first_name, last_name=last_name)
user.groups.add(group)
setting_name = 'groups_{}'.format(role_name)
app_config = apps.get_app_config('dav_events')
setattr(app_config.settings, setting_name, [role_name])
return user
class EventMixin(object):
def get_status_label(self, status_code):
return EventStatus.objects.get(code=status_code).label
def create_event(self, data):
event = Event(**data)
event.save()
return event
def submit_event(self, event):
event.workflow.update_status('submitted', event.owner)
return event
def accept_event(self, event, user):
event.workflow.update_status('accepted', user)
return event