forked from jazzband/django-permission
/
utils.py
74 lines (62 loc) · 1.99 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# coding=utf-8
"""
"""
__author__ = 'Alisue <lambdalisue@hashnote.net>'
def create_user(username, **kwargs):
from django.contrib.auth.models import User
user = User.objects.create_user(
username=username,
email="%s@test.com" % username,
password="password",
)
# attribute assignment
for key, value in kwargs.items():
user.__dict__[key] = value
user.save()
return user
def create_anonymous(**kwargs):
from django.contrib.auth.models import AnonymousUser
return AnonymousUser(**kwargs)
def create_group(name, user=None):
from django.contrib.auth.models import Group
group = Group.objects.create(name=name)
if user is not None:
user.groups.add(group)
user.save()
group.save()
return group
def create_article(title, user=None, bridge=None):
import datetime
from permission.tests.models import Article
user = user or create_user(str(datetime.datetime.now()))
article = Article.objects.create(
title=title,
content=title*20,
author=user,
single_bridge=bridge
)
article.save()
return article
def create_bridge(user=None, editors=None):
import datetime
from permission.tests.models import Bridge
user = user or create_user(str(datetime.datetime.now()))
editors = editors or [create_user(str(datetime.datetime.now())+str(i))
for i in range(2)]
bridge = Bridge.objects.create(author=user)
for editor in editors:
bridge.editors.add(editor)
bridge.save()
return bridge
def create_permission(name, model=None):
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from permission.tests.models import Article
model = model or Article
ct = ContentType.objects.get_for_model(model)
permission = Permission.objects.create(
name=name, codename=name,
content_type=ct
)
permission.save()
return permission