Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
AE UTBM
Sith
Commits
65409906
Verified
Commit
65409906
authored
May 09, 2019
by
Sli
Browse files
clubs: tests for adding mailings
parent
d1fb9cc4
Changes
5
Show whitespace changes
Inline
Side-by-side
club/forms.py
View file @
65409906
...
...
@@ -143,8 +143,6 @@ class MailingForm(forms.Form):
if
cleaned_data
[
"action"
]
==
self
.
ACTION_NEW_MAILING
:
self
.
check_required
(
cleaned_data
,
"mailing_email"
)
# self.check_required(cleaned_data, "mailing_club")
# self.check_required(cleaned_data, "mailing_moderator")
if
cleaned_data
[
"action"
]
==
self
.
ACTION_NEW_SUBSCRIPTION
:
self
.
check_required
(
cleaned_data
,
"subscription_mailing"
)
...
...
club/tests.py
View file @
65409906
...
...
@@ -22,12 +22,15 @@
#
#
from
django.conf
import
settings
from
django.test
import
TestCase
from
django.utils
import
timezone
from
django.core.urlresolvers
import
reverse
from
django.core.management
import
call_command
from
core.models
import
User
from
club.models
import
Club
from
club.models
import
Club
,
Membership
from
club.forms
import
MailingForm
# Create your tests here.
...
...
@@ -373,3 +376,73 @@ class ClubTest(TestCase):
"S' Kia</a></td>
\\
n <td>Responsable info</td>"
in
content
)
class
MailingFormTest
(
TestCase
):
"""Perform validation tests for MailingForm"""
def
setUp
(
self
):
call_command
(
"populate"
)
self
.
skia
=
User
.
objects
.
filter
(
username
=
"skia"
).
first
()
self
.
rbatsbak
=
User
.
objects
.
filter
(
username
=
"rbatsbak"
).
first
()
self
.
guy
=
User
.
objects
.
filter
(
username
=
"krophil"
).
first
()
self
.
comunity
=
User
.
objects
.
filter
(
username
=
"comunity"
).
first
()
self
.
bdf
=
Club
.
objects
.
filter
(
unix_name
=
"bdf"
).
first
()
Membership
(
user
=
self
.
rbatsbak
,
club
=
self
.
bdf
,
start_date
=
timezone
.
now
(),
role
=
settings
.
SITH_CLUB_ROLES_ID
[
"Board member"
],
).
save
()
def
test_mailing_list_add_no_moderation
(
self
):
# Test with Communication admin
self
.
client
.
login
(
username
=
"comunity"
,
password
=
"plop"
)
self
.
client
.
post
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
}),
{
"action"
:
MailingForm
.
ACTION_NEW_MAILING
,
"mailing_email"
:
"foyer"
},
)
response
=
self
.
client
.
get
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
})
)
self
.
assertContains
(
response
,
text
=
"Liste de diffusion foyer@utbm.fr"
)
# Test with Root
self
.
client
.
login
(
username
=
"root"
,
password
=
"plop"
)
self
.
client
.
post
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
}),
{
"action"
:
MailingForm
.
ACTION_NEW_MAILING
,
"mailing_email"
:
"mde"
},
)
response
=
self
.
client
.
get
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
})
)
self
.
assertContains
(
response
,
text
=
"Liste de diffusion mde@utbm.fr"
)
def
test_mailing_list_add_moderation
(
self
):
self
.
client
.
login
(
username
=
"rbatsbak"
,
password
=
"plop"
)
self
.
client
.
post
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
}),
{
"action"
:
MailingForm
.
ACTION_NEW_MAILING
,
"mailing_email"
:
"mde"
},
)
response
=
self
.
client
.
get
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
})
)
self
.
assertNotContains
(
response
,
text
=
"Liste de diffusion mde@utbm.fr"
)
self
.
assertContains
(
response
,
text
=
"<p>Listes de diffusions en attente de modération</p>"
)
self
.
assertContains
(
response
,
"<li>mde@utbm.fr"
)
def
test_mailing_list_forbidden
(
self
):
# With anonymous user
response
=
self
.
client
.
get
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
})
)
self
.
assertContains
(
response
,
""
,
status_code
=
403
)
# With user not in club
self
.
client
.
login
(
username
=
"krophil"
,
password
=
"plop"
)
response
=
self
.
client
.
get
(
reverse
(
"club:mailing"
,
kwargs
=
{
"club_id"
:
self
.
bdf
.
id
})
)
self
.
assertContains
(
response
,
""
,
status_code
=
403
)
club/views.py
View file @
65409906
...
...
@@ -563,12 +563,18 @@ class ClubMailingView(ClubTabsMixin, CanEditMixin, DetailFormView):
"""
Add mailing subscriptions for each user given and/or for the specified email in form
"""
users_to_save
=
[]
for
user
in
cleaned_data
[
"subscription_users"
]:
sub
=
MailingSubscription
(
mailing
=
cleaned_data
[
"subscription_mailing"
],
user
=
user
)
try
:
sub
.
clean
()
sub
.
save
()
except
ValidationError
as
validation_error
:
return
validation_error
users_to_save
.
append
(
sub
.
save
())
if
cleaned_data
[
"subscription_email"
]:
sub
=
MailingSubscription
(
...
...
@@ -582,6 +588,10 @@ class ClubMailingView(ClubTabsMixin, CanEditMixin, DetailFormView):
return
validation_error
sub
.
save
()
# Save users after we are sure there is no error
for
user
in
users_to_save
:
user
.
save
()
return
None
def
remove_subscription
(
self
,
cleaned_data
):
...
...
core/management/commands/populate.py
View file @
65409906
...
...
@@ -837,6 +837,27 @@ Welcome to the wiki page!
krophil_profile
.
save
()
krophil
.
profile_pict
=
krophil_profile
krophil
.
save
()
# Adding user Com Unity
comunity
=
User
(
username
=
"comunity"
,
last_name
=
"Unity"
,
first_name
=
"Com"
,
email
=
"comunity@git.an"
,
date_of_birth
=
"1942-06-12"
,
)
comunity
.
set_password
(
"plop"
)
comunity
.
save
()
comunity
.
groups
=
[
Group
.
objects
.
filter
(
name
=
"Communication admin"
).
first
().
id
]
comunity
.
save
()
Membership
(
user
=
comunity
,
club
=
bar_club
,
start_date
=
timezone
.
now
(),
role
=
settings
.
SITH_CLUB_ROLES_ID
[
"Board member"
],
).
save
()
# Adding subscription for sli
s
=
Subscription
(
member
=
User
.
objects
.
filter
(
pk
=
sli
.
pk
).
first
(),
...
...
@@ -861,6 +882,18 @@ Welcome to the wiki page!
start
=
s
.
subscription_start
,
)
s
.
save
()
# Com Unity
s
=
Subscription
(
member
=
comunity
,
subscription_type
=
default_subscription
,
payment_method
=
settings
.
SITH_SUBSCRIPTION_PAYMENT_METHOD
[
0
][
0
],
)
s
.
subscription_start
=
s
.
compute_start
()
s
.
subscription_end
=
s
.
compute_end
(
duration
=
settings
.
SITH_SUBSCRIPTIONS
[
s
.
subscription_type
][
"duration"
],
start
=
s
.
subscription_start
,
)
s
.
save
()
Selling
(
label
=
dcons
.
name
,
...
...
locale/fr/LC_MESSAGES/django.po
View file @
65409906
...
...
@@ -948,7 +948,7 @@ msgstr "Ce champ est obligatoire."
#: club/forms.py:162
msgid
"You must specify at least an user or an email address"
msgstr
""
msgstr
"
vous devez spécifier au moins un utilisateur ou une adresse email
"
#: club/forms.py:172 counter/views.py:1481
msgid
"Begin date"
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment