commit
						734592207e
					
				
					 2 changed files with 40 additions and 34 deletions
				
			
		|  | @ -334,6 +334,4 @@ class GroupMemberConditionController(IsMetByFilter, ConditionController): | ||||||
|         ''' Returns all of the items from conditions which are enabled by a |         ''' Returns all of the items from conditions which are enabled by a | ||||||
|         user being member of a Django Auth Group. ''' |         user being member of a Django Auth Group. ''' | ||||||
| 
 | 
 | ||||||
|         return conditions.filter( |         return conditions.filter(group__in=user.groups.all()) | ||||||
|             group=user.groups.all(), |  | ||||||
|         ) |  | ||||||
|  |  | ||||||
|  | @ -19,21 +19,24 @@ class GroupMemberTestCase(RegistrationCartTestCase): | ||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def _create_group_and_flag(cls): |     def _create_group_and_flag(cls): | ||||||
|         ''' Creates cls.GROUP, and restricts cls.PROD_1 only to users who are |         ''' Creates cls.GROUP_1, and restricts cls.PROD_1 only to users who are | ||||||
|         members of the group. ''' |         members of the group. Likewise GROUP_2 and PROD_2 ''' | ||||||
| 
 | 
 | ||||||
|         group = Group.objects.create( |         groups = [] | ||||||
|             name="TEST GROUP", |         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( |             groups.append(group) | ||||||
|             description="Group member flag", |  | ||||||
|             condition=conditions.FlagBase.ENABLE_IF_TRUE, |  | ||||||
|         ) |  | ||||||
|         flag.group.add(group) |  | ||||||
|         flag.products.add(cls.PROD_1) |  | ||||||
| 
 | 
 | ||||||
|         cls.GROUP = group |         cls.GROUP_1 = groups[0] | ||||||
|  |         cls.GROUP_2 = groups[1] | ||||||
| 
 | 
 | ||||||
|     def test_product_not_enabled_until_user_joins_group(self): |     def test_product_not_enabled_until_user_joins_group(self): | ||||||
|         ''' Tests that GroupMemberFlag disables a product for a user until |         ''' Tests that GroupMemberFlag disables a product for a user until | ||||||
|  | @ -41,25 +44,30 @@ class GroupMemberTestCase(RegistrationCartTestCase): | ||||||
| 
 | 
 | ||||||
|         self._create_group_and_flag() |         self._create_group_and_flag() | ||||||
| 
 | 
 | ||||||
|         # USER_1 cannot see PROD_1 until they're in GROUP. |         groups = [self.GROUP_1, self.GROUP_2] | ||||||
|         available = ProductController.available_products( |         products = [self.PROD_1, self.PROD_2] | ||||||
|             self.USER_1, |  | ||||||
|             products=[self.PROD_1], |  | ||||||
|         ) |  | ||||||
|         self.assertNotIn(self.PROD_1, available) |  | ||||||
| 
 | 
 | ||||||
|         self.USER_1.groups.add(self.GROUP) |         for group, product in zip(groups, products): | ||||||
| 
 | 
 | ||||||
|         # USER_1 cannot see PROD_1 until they're in GROUP. |             # USER_1 cannot see PROD_1 until they're in GROUP. | ||||||
|         available = ProductController.available_products( |             available = ProductController.available_products( | ||||||
|             self.USER_1, |                 self.USER_1, | ||||||
|             products=[self.PROD_1], |                 products=[product], | ||||||
|         ) |             ) | ||||||
|         self.assertIn(self.PROD_1, available) |             self.assertNotIn(product, available) | ||||||
| 
 | 
 | ||||||
|         # USER_2 is still locked out |             self.USER_1.groups.add(group) | ||||||
|         available = ProductController.available_products( | 
 | ||||||
|             self.USER_2, |             # USER_1 cannot see PROD_1 until they're in GROUP. | ||||||
|             products=[self.PROD_1], |             available = ProductController.available_products( | ||||||
|         ) |                 self.USER_1, | ||||||
|         self.assertNotIn(self.PROD_1, available) |                 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) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Christopher Neugebauer
						Christopher Neugebauer