def test_set_privacy_level_without_save(self): user = UserFactory.create() user.userprofile.set_privacy_level(9, save=False) for field in UserProfile.privacy_fields(): eq_(getattr(user.userprofile, "privacy_{0}".format(field)), 9, "Field {0} not set".format(field)) user = User.objects.get(id=user.id) for field in UserProfile.privacy_fields(): # Compare to default privacy setting for each field. f = UserProfile._meta.get_field_by_name("privacy_{0}".format(field))[0] eq_(getattr(user.userprofile, "privacy_{0}".format(field)), f.default, "Field {0} not set".format(field))
def test_set_privacy_level_without_save(self): user = UserFactory.create() user.userprofile.set_privacy_level(9, save=False) for field in UserProfile.privacy_fields(): eq_(getattr(user.userprofile, 'privacy_{0}'.format(field)), 9, 'Field {0} not set'.format(field)) user = User.objects.get(id=user.id) for field in UserProfile.privacy_fields(): # Compare to default privacy setting for each field. f = UserProfile._meta.get_field_by_name('privacy_{0}'.format(field))[0] eq_(getattr(user.userprofile, 'privacy_{0}'.format(field)), f.default, 'Field {0} not set'.format(field))
def test_caching(self): # It would be better if this test didn't need to know how the # caching worked. # To compute the privacy fields, the code has to get all the # field names. Use mock so we can tell if that gets called. with patch.object(UserProfile._meta, 'get_all_field_names') as mock_get_all_field_names: UserProfile.privacy_fields() ok_(mock_get_all_field_names.called) # If we call privacy_fields() again, it shouldn't need to compute it all again with patch.object(UserProfile._meta, 'get_all_field_names') as mock_get_all_field_names: UserProfile.privacy_fields() ok_(not mock_get_all_field_names.called)
def test_caching(self): # It would be better if this test didn't need to know how the # caching worked. # To compute the privacy fields, the code has to get all the # field names. Use mock so we can tell if that gets called. with patch.object(UserProfile._meta, "get_field") as mock_get_field: UserProfile.privacy_fields() ok_(mock_get_field.called) # If we call privacy_fields() again, it shouldn't need to compute it all again with patch.object(UserProfile._meta, "get_field") as mock_get_field: UserProfile.privacy_fields() ok_(not mock_get_field.called)
def test_profile_model(self): fields = UserProfile.privacy_fields() eq_('', fields['ircname']) eq_('', fields['email']) ok_('is_vouched' not in fields) ok_('date_vouched' not in fields) ok_(fields['tshirt'] is None)
def test_set_privacy_level_with_save(self): user = UserFactory.create() user.userprofile.set_privacy_level(9) user = User.objects.get(id=user.id) for field in UserProfile.privacy_fields(): eq_(getattr(user.userprofile, 'privacy_{0}'.format(field)), 9, 'Field {0} not set'.format(field))
def test_profile_model(self): fields = UserProfile.privacy_fields() eq_("", fields["ircname"]) eq_("", fields["email"]) ok_("is_vouched" not in fields) ok_("date_vouched" not in fields) ok_(fields["tshirt"] is None)
def test_is_public(self): for field in UserProfile.privacy_fields(): user = UserFactory.create( userprofile={"privacy_{0}".format(field): PUBLIC}) ok_( user.userprofile.is_public, "Field {0} did not set profile to public".format(field), )
from import_export.resources import ModelResource from sorl.thumbnail.admin import AdminImageMixin import mozillians.users.tasks from mozillians.common.helpers import get_datetime from mozillians.groups.models import GroupMembership, Skill from mozillians.users.cron import index_all_profiles from mozillians.users.models import (PUBLIC, Language, ExternalAccount, Vouch, UserProfile, UsernameBlacklist) admin.site.unregister(Group) Q_PUBLIC_PROFILES = Q() for field in UserProfile.privacy_fields(): key = 'privacy_%s' % field Q_PUBLIC_PROFILES |= Q(**{key: PUBLIC}) def subscribe_to_basket_action(): """Subscribe to Basket action.""" def subscribe_to_basket(modeladmin, request, queryset): """Subscribe to Basket or update details of already subscribed.""" ts = [(mozillians.users.tasks.update_basket_task .subtask(args=[userprofile.id])) for userprofile in queryset] TaskSet(ts).apply_async() messages.success(request, 'Basket update started.') subscribe_to_basket.short_description = 'Subscribe to or Update Basket'
def test_is_public(self): for field in UserProfile.privacy_fields(): user = UserFactory.create( userprofile={'privacy_{0}'.format(field): PUBLIC}) ok_(user.userprofile.is_public, 'Field {0} did not set profile to public'.format(field))
def test_tshirt_public(self): user = UserFactory.create(userprofile={'tshirt': 9}) public_profile = user.userprofile public_profile.set_instance_privacy_level(PUBLIC) eq_(public_profile.tshirt, UserProfile.privacy_fields()['tshirt'])
def test_email_private(self): user = UserFactory.create() public_profile = user.userprofile public_profile.set_instance_privacy_level(PUBLIC) eq_(public_profile.email, UserProfile.privacy_fields()['email'])