def test_remove_permission_logic_private_attributes(self): m = self.mock_logic add_permission_logic(Article, m) self.assertTrue(hasattr(Article, '_permission_logics')) self.assertTrue(hasattr(Article, '_permission_handler')) # private attribute should not be disappeared remove_permission_logic(Article, m) self.assertTrue(hasattr(Article, '_permission_logics')) self.assertTrue(hasattr(Article, '_permission_handler'))
def test_remove_permission_logic_exception(self): m = self.mock_logic add_permission_logic(Article, m) remove_permission_logic(Article, m) # it shuld not raise exception remove_permission_logic(Article, m) # it should raise exception if fail_silently is False self.assertRaises(KeyError, remove_permission_logic, Article, m, fail_silently=False)
def test_remove_permission_logic_registry(self): m = self.mock_logic add_permission_logic(Article, m) self.assertEqual(Article._permission_logics, set([m])) self.assertTrue(isinstance(registry._registry[Article], LogicalPermissionHandler)) # permission_logics should be changed but registry # should not be changed remove_permission_logic(Article, m) self.assertEqual(Article._permission_logics, set()) self.assertTrue(isinstance(registry._registry[Article], LogicalPermissionHandler))
def test_remove_permission_logic_registry(self): m = self.mock_logic add_permission_logic(Article, m) self.assertEqual(Article._permission_logics, set([m])) self.assertTrue( isinstance(registry._registry[Article], LogicalPermissionHandler)) # permission_logics should be changed but registry # should not be changed remove_permission_logic(Article, m) self.assertEqual(Article._permission_logics, set()) self.assertTrue( isinstance(registry._registry[Article], LogicalPermissionHandler))
def test_user_can_create_customer_if_he_is_not_staff_if_settings_are_tweaked( self): add_permission_logic(Customer, OWNER_CAN_MANAGE_CUSTOMER_LOGICS) self.client.force_authenticate(user=self.users['not_owner']) response = self.client.post(reverse('customer-list'), self._get_valid_payload()) self.assertEqual(response.status_code, status.HTTP_201_CREATED) # User became owner of created customer self.assertEqual(response.data['owners'][0]['uuid'], self.users['not_owner'].uuid.hex) remove_permission_logic(Customer, OWNER_CAN_MANAGE_CUSTOMER_LOGICS)