|
| 1 | +""" |
| 2 | +Utility methods for unit tests. |
| 3 | +""" |
| 4 | + |
| 5 | + |
| 6 | +import pytest |
| 7 | +from path import Path as path |
| 8 | +from xblock.reference.user_service import UserService, XBlockUser |
| 9 | + |
| 10 | + |
| 11 | +class StubUserService(UserService): |
| 12 | + """ |
| 13 | + Stub UserService for testing the sequence block. |
| 14 | + """ |
| 15 | + |
| 16 | + def __init__(self, |
| 17 | + user=None, |
| 18 | + user_is_staff=False, |
| 19 | + user_role=None, |
| 20 | + anonymous_user_id=None, |
| 21 | + deprecated_anonymous_user_id=None, |
| 22 | + request_country_code=None, |
| 23 | + **kwargs): |
| 24 | + self.user = user |
| 25 | + self.user_is_staff = user_is_staff |
| 26 | + self.user_role = user_role |
| 27 | + self.anonymous_user_id = anonymous_user_id |
| 28 | + self.deprecated_anonymous_user_id = deprecated_anonymous_user_id |
| 29 | + self.request_country_code = request_country_code |
| 30 | + self._django_user = user |
| 31 | + super().__init__(**kwargs) |
| 32 | + |
| 33 | + def get_current_user(self): |
| 34 | + """ |
| 35 | + Implements abstract method for getting the current user. |
| 36 | + """ |
| 37 | + user = XBlockUser() |
| 38 | + if self.user and self.user.is_authenticated: |
| 39 | + user.opt_attrs['edx-platform.anonymous_user_id'] = self.anonymous_user_id |
| 40 | + user.opt_attrs['edx-platform.deprecated_anonymous_user_id'] = self.deprecated_anonymous_user_id |
| 41 | + user.opt_attrs['edx-platform.request_country_code'] = self.request_country_code |
| 42 | + user.opt_attrs['edx-platform.user_is_staff'] = self.user_is_staff |
| 43 | + user.opt_attrs['edx-platform.user_id'] = self.user.id |
| 44 | + user.opt_attrs['edx-platform.user_role'] = self.user_role |
| 45 | + user.opt_attrs['edx-platform.username'] = self.user.username |
| 46 | + else: |
| 47 | + user.opt_attrs['edx-platform.username'] = 'anonymous' |
| 48 | + user.opt_attrs['edx-platform.request_country_code'] = self.request_country_code |
| 49 | + user.opt_attrs['edx-platform.is_authenticated'] = False |
| 50 | + return user |
| 51 | + |
| 52 | + def get_user_by_anonymous_id(self, uid=None): # pylint: disable=unused-argument |
| 53 | + """ |
| 54 | + Return the original user passed into the service. |
| 55 | + """ |
| 56 | + return self.user |
0 commit comments