/
test_functions.py
162 lines (134 loc) · 5.51 KB
/
test_functions.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
import random
from django.contrib.auth.models import User, Group, Permission
from userprofile.models import Profile
from gleanevent.models import GleanEvent
from memberorgs.models import MemOrg
from announce.models import Announcement
from counties.models import County
from farms.models import Farm, FarmLocation
from recipientsite.models import RecipientSite
from announce.models import Template
class test_groups(object):
'An object containing the five groups in the database and their permissions for testing'
def __init__(self):
self.volunteer = Group.objects.create(name="Volunteer")
self.Member_Organization_Executive_Director = Group.objects.create(name="Member Organization Executive Director")
self.Member_Organization_Glean_Coordinator = Group.objects.create(name="Member Organization Glean Coordinator")
self.Salvation_Farms_Administrator = Group.objects.create(name="Salvation Farms Administrator")
self.Salvation_Farms_Coordinator = Group.objects.create(name="Salvation Farms Coordinator")
auth = Permission.objects.filter(codename="auth").all()
for permission in auth:
self.Member_Organization_Glean_Coordinator.permissions.add(permission)
self.Member_Organization_Executive_Director.permissions.add(permission)
self.Salvation_Farms_Administrator.permissions.add(permission)
self.Salvation_Farms_Coordinator.permissions.add(permission)
promote = Permission.objects.filter(codename="promote").all()
for permission in promote:
self.Member_Organization_Executive_Director.permissions.add(permission)
self.Salvation_Farms_Administrator.permissions.add(permission)
self.Salvation_Farms_Coordinator.permissions.add(permission)
uniauth = Permission.objects.filter(codename="uniauth").all()
for permission in uniauth:
self.Salvation_Farms_Coordinator.permissions.add(permission)
self.Salvation_Farms_Administrator.permissions.add(permission)
self.volunteer.save()
self.Member_Organization_Glean_Coordinator.save()
self.Member_Organization_Executive_Director.save()
self.Salvation_Farms_Coordinator.save()
self.Salvation_Farms_Administrator.save()
def create_volunteer_user_object():
alphabet = 'the quick brown fox jumps over a lazy dog'
name = ''
for i in range(12):
name += random.choice(alphabet)
return User.objects.create_user(name, name+"@example.com", "password")
def create_profile(user, **kwargs):
profile = Profile(
user=user,
first_name="John",
last_name="Doe",
waiver=True,
agreement=True,
photo_release=False,
**kwargs)
profile.save()
return profile
def create_salvation_farms_admin(salfarmgroup, memberorg):
user = User.objects.create_user("salfarmadmin", "salfarmadmin@gmail.com", "password")
user.is_staff = True
user.is_superuser = True
user.groups.add(salfarmgroup)
user.save()
profile = create_profile(user)
user.profile.member_organization = memberorg
user.profile.save()
return user
def create_special_user(thegroup, memberorg):
user = User.objects.create_user("specialuser", "specialuser@gmail.com", "password")
user.groups.add(thegroup)
user.save
profile = create_profile(user)
user.profile.member_organization = memberorg
user.profile.save()
return user
def create_user_and_profile(**kwargs):
user = create_volunteer_user_object()
create_profile(user, **kwargs)
user.save()
user.profile.save()
return user
def create_county(**kwargs):
county = County.objects.create(name="TestCounty")
county.save()
return county
def create_memorg(**kwargs):
memorg = MemOrg.objects.create(name="Test Member Organization", **kwargs)
memorg.save()
return memorg
def create_farm(memberorg, **kwargs):
farm = Farm.objects.create(name="Test Farm", **kwargs)
farm.member_organization.add(memberorg)
farm.save()
return farm
def create_glean(**kwargs):
memorg = create_memorg()
if 'created_by' in kwargs:
glean = GleanEvent(
member_organization=memorg,
**kwargs)
else:
glean = GleanEvent(
created_by=create_volunteer_user_object(),
member_organization=memorg,
**kwargs)
glean.save()
return glean
def create_announcement(**kwargs):
if 'glean' in kwargs and 'member_organization' in kwargs:
announce = Announcement(**kwargs)
elif 'glean' in kwargs:
memorg = create_memorg()
announce = Announcement(member_organization=memorg, **kwargs)
elif 'member_organization' in kwargs:
glean = create_glean()
announce = Announcement(glean=glean, **kwargs)
else:
glean = create_glean()
memorg = create_memorg()
announce = Announcement(
glean=glean, member_organization=memorg, **kwargs)
announce.save()
return announce
def create_location(farm, **kwargs):
location = FarmLocation.objects.create(name="Test Location", **kwargs)
location.farm = farm
location.save()
return location
def create_recipient_site(memberorg, **kwargs):
site = RecipientSite.objects.create(name="Test Site", member_organization=memberorg, **kwargs)
site.save()
return site
def create_template(memorg, **kwargs):
template = Template.objects.create(template_name="Test Template", member_organization=memorg, **kwargs)
template.save()
return template