diff options
author | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2013-01-09 10:22:33 -0600 |
---|---|---|
committer | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2013-01-09 10:22:33 -0600 |
commit | 88b46f8e68b8d20edd38b9b6005d6376fd216806 (patch) | |
tree | 8a1e0d9cb23b34fb5aecdc68c165cc9f2b1af108 | |
parent | ee893ce8ae09fd40e0c1b674a3835992c2c07020 (diff) | |
download | askbot-88b46f8e68b8d20edd38b9b6005d6376fd216806.tar.gz askbot-88b46f8e68b8d20edd38b9b6005d6376fd216806.tar.bz2 askbot-88b46f8e68b8d20edd38b9b6005d6376fd216806.zip |
added testcase
-rw-r--r-- | askbot/models/__init__.py | 12 | ||||
-rw-r--r-- | askbot/models/user.py | 6 | ||||
-rw-r--r-- | askbot/tests/user_model_tests.py | 22 |
3 files changed, 33 insertions, 7 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index 751bbce6..acc59568 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -3551,11 +3551,13 @@ def add_missing_tag_subscriptions(sender, instance, created, **kwargs): and MarkedTags. ''' if created: - user_groups = instance.get_groups() - for subscription in BulkTagSubscription.objects.filter(groups__in = user_groups): - tag_list = subscription.tag_list() - instance.mark_tags(tagnames = tag_list, - reason='subscribed', action='add') + if askbot_settings.SUBSCRIBED_TAG_SELECTOR_ENABLED and \ + askbot_settings.GROUPS_ENABLED: + user_groups = instance.get_groups() + for subscription in BulkTagSubscription.objects.filter(groups__in = user_groups): + tag_list = subscription.tag_list() + instance.mark_tags(tagnames = tag_list, + reason='subscribed', action='add') def post_anonymous_askbot_content( sender, diff --git a/askbot/models/user.py b/askbot/models/user.py index d9ee1965..c27c8759 100644 --- a/askbot/models/user.py +++ b/askbot/models/user.py @@ -603,8 +603,10 @@ class BulkTagSubscriptionManager(BaseQuerySetManager): tag_name_list = [] if tag_names: - assert(tag_author) tags, new_tag_names = get_tags_by_names(tag_names) + if new_tag_names: + assert(tag_author) + tags_id_list= [tag.id for tag in tags] tag_name_list = [tag.name for tag in tags] @@ -627,7 +629,7 @@ class BulkTagSubscriptionManager(BaseQuerySetManager): if group_list: group_ids = [] - for group in group: + for group in group_list: #TODO: do the group marked tag thing here group_ids.append(group.id) new_object.groups.add(*group_ids) diff --git a/askbot/tests/user_model_tests.py b/askbot/tests/user_model_tests.py index e46cdb77..42c040b0 100644 --- a/askbot/tests/user_model_tests.py +++ b/askbot/tests/user_model_tests.py @@ -1,6 +1,7 @@ from askbot.tests.utils import AskbotTestCase from django.contrib.auth.models import User from askbot import models +from askbot.conf import settings from askbot.models.tag import format_personal_group_name class UserModelTests(AskbotTestCase): @@ -16,6 +17,27 @@ class UserModelTests(AskbotTestCase): ) self.assertEqual(memberships.count(), 1) + def test_new_user_has_subscriptions(self): + old_value = settings.SUBSCRIBED_TAG_SELECTOR_ENABLED + old_group_value = settings.GROUPS_ENABLED + settings.SUBSCRIBED_TAG_SELECTOR_ENABLED = True + settings.GROUPS_ENABLED = True + one_tag = self.create_tag('one-tag') + another_tag = self.create_tag('another_tag') + + global_group = models.Group.objects.get_global_group() + + bulk_subscription = models.BulkTagSubscription.objects.create( + tag_names=[one_tag.name, another_tag.name], + group_list = [global_group] + ) + user = User.objects.create_user('someone', 'someone@example.com') + marked_tags = user.get_marked_tags('subscribed') + self.assertTrue(one_tag in marked_tags) + self.assertTrue(another_tag in marked_tags) + settings.SUBSCRIBED_TAG_SELECTOR_ENABLED = old_value + settings.GROUPS_ENABLED = old_group_value + def test_delete_user(self): user = self.create_user('user') user.delete() |