Fix discussion notif pref tests
This commit is contained in:
@@ -53,7 +53,7 @@ class NotificationPrefViewTest(UrlResetMixin, TestCase):
|
||||
def create_prefs(self):
|
||||
"""Create all test preferences in the database"""
|
||||
for (user, token) in self.tokens.items():
|
||||
UserPreference.objects.create(user=user, key=NOTIFICATION_PREF_KEY, value=token)
|
||||
UserPreference.objects.get_or_create(user=user, key=NOTIFICATION_PREF_KEY, value=token)
|
||||
|
||||
def assertPrefValid(self, user):
|
||||
"""Ensure that the correct preference for the user is persisted"""
|
||||
|
||||
@@ -71,7 +71,7 @@ class UsernameCipher(object):
|
||||
encryptor = aes_cipher.encryptor()
|
||||
padder = PKCS7(AES.block_size).padder()
|
||||
padded = padder.update(username.encode("utf-8")) + padder.finalize()
|
||||
return urlsafe_b64encode(initialization_vector + encryptor.update(padded) + encryptor.finalize())
|
||||
return urlsafe_b64encode(initialization_vector + encryptor.update(padded) + encryptor.finalize()).decode()
|
||||
|
||||
@staticmethod
|
||||
def decrypt(token):
|
||||
@@ -187,7 +187,7 @@ def set_subscription(request, token, subscribe): # pylint: disable=unused-argum
|
||||
success, the response will contain a page indicating success.
|
||||
"""
|
||||
try:
|
||||
username = UsernameCipher().decrypt(token.encode())
|
||||
username = UsernameCipher().decrypt(token.encode()).decode()
|
||||
user = User.objects.get(username=username)
|
||||
except UnicodeDecodeError:
|
||||
raise Http404("base64url")
|
||||
|
||||
@@ -167,7 +167,7 @@ class CourseDiscussionRolesForm(CourseDiscussionSettingsForm):
|
||||
(FORUM_ROLE_GROUP_MODERATOR, FORUM_ROLE_GROUP_MODERATOR),
|
||||
)
|
||||
rolename = ChoiceField(
|
||||
ROLE_CHOICES,
|
||||
choices=ROLE_CHOICES,
|
||||
error_messages={u"invalid_choice": u"Role '%(value)s' does not exist"}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user