Changeset - 734592207edf
[Not reviewed]
Merge
0 2 0
Christopher Neugebauer - 8 years ago 2016-09-15 05:39:07
chrisjrn@gmail.com
Merge branch 'chrisjrn/fix_71'

Fixes #71
2 files changed with 43 insertions and 37 deletions:
0 comments (0 inline, 0 general)
registrasion/controllers/conditions.py
Show inline comments
...
 
@@ -334,6 +334,4 @@ class GroupMemberConditionController(IsMetByFilter, ConditionController):
 
        ''' Returns all of the items from conditions which are enabled by a
 
        user being member of a Django Auth Group. '''
 

	
 
        return conditions.filter(
 
            group=user.groups.all(),
 
        )
 
        return conditions.filter(group__in=user.groups.all())
registrasion/tests/test_group_member.py
Show inline comments
...
 
@@ -19,21 +19,24 @@ class GroupMemberTestCase(RegistrationCartTestCase):
 

	
 
    @classmethod
 
    def _create_group_and_flag(cls):
 
        ''' Creates cls.GROUP, and restricts cls.PROD_1 only to users who are
 
        members of the group. '''
 
        ''' Creates cls.GROUP_1, and restricts cls.PROD_1 only to users who are
 
        members of the group. Likewise GROUP_2 and PROD_2 '''
 

	
 
        group = Group.objects.create(
 
            name="TEST GROUP",
 
        )
 
        groups = []
 
        products = [cls.PROD_1, cls.PROD_2]
 
        for i, product in enumerate(products):
 
            group = Group.objects.create(name="TEST GROUP" + str(i))
 
            flag = conditions.GroupMemberFlag.objects.create(
 
                description="Group member flag " + str(i),
 
                condition=conditions.FlagBase.ENABLE_IF_TRUE,
 
            )
 
            flag.group.add(group)
 
            flag.products.add(product)
 

	
 
        flag = conditions.GroupMemberFlag.objects.create(
 
            description="Group member flag",
 
            condition=conditions.FlagBase.ENABLE_IF_TRUE,
 
        )
 
        flag.group.add(group)
 
        flag.products.add(cls.PROD_1)
 
            groups.append(group)
 

	
 
        cls.GROUP = group
 
        cls.GROUP_1 = groups[0]
 
        cls.GROUP_2 = groups[1]
 

	
 
    def test_product_not_enabled_until_user_joins_group(self):
 
        ''' Tests that GroupMemberFlag disables a product for a user until
...
 
@@ -41,25 +44,30 @@ class GroupMemberTestCase(RegistrationCartTestCase):
 

	
 
        self._create_group_and_flag()
 

	
 
        # USER_1 cannot see PROD_1 until they're in GROUP.
 
        available = ProductController.available_products(
 
            self.USER_1,
 
            products=[self.PROD_1],
 
        )
 
        self.assertNotIn(self.PROD_1, available)
 

	
 
        self.USER_1.groups.add(self.GROUP)
 

	
 
        # USER_1 cannot see PROD_1 until they're in GROUP.
 
        available = ProductController.available_products(
 
            self.USER_1,
 
            products=[self.PROD_1],
 
        )
 
        self.assertIn(self.PROD_1, available)
 

	
 
        # USER_2 is still locked out
 
        available = ProductController.available_products(
 
            self.USER_2,
 
            products=[self.PROD_1],
 
        )
 
        self.assertNotIn(self.PROD_1, available)
 
        groups = [self.GROUP_1, self.GROUP_2]
 
        products = [self.PROD_1, self.PROD_2]
 

	
 
        for group, product in zip(groups, products):
 

	
 
            # USER_1 cannot see PROD_1 until they're in GROUP.
 
            available = ProductController.available_products(
 
                self.USER_1,
 
                products=[product],
 
            )
 
            self.assertNotIn(product, available)
 

	
 
            self.USER_1.groups.add(group)
 

	
 
            # USER_1 cannot see PROD_1 until they're in GROUP.
 
            available = ProductController.available_products(
 
                self.USER_1,
 
                products=[product],
 
            )
 
            self.assertIn(product, available)
 

	
 
            # USER_2 is still locked out
 
            available = ProductController.available_products(
 
                self.USER_2,
 
                products=[product],
 
            )
 
            self.assertNotIn(product, available)
0 comments (0 inline, 0 general)