не может изменить права пользователя во время юнит-теста в django
Я наконец решил сделать несколько тестов для своих приложений, но я застрял на тестировании, если пользователь может сменить другого пользователя (зависит от типа пользователя - я использую django-rules, чтобы иметь возможность делать логические проверки разрешений, но это не главное)
Вот код, который у меня есть
<code>class RulesAndPermissionsTests(TestCase): fixtures = ['auth_no_permissions.json', 'profiles.json', 'rules.json'] def setUp(self): self.c = Client() self.user = User.objects.get(username="estagiario") self.non_staff = User.objects.get(username="fisica") self.admin = User.objects.get(username="admin") login = self.c.login(username='estagiario', password='estagiario') def test_can_change_non_staff_users(self): self.assertFalse(self.user.has_perm('logical_change_user', self.non_staff.profile)) # can't change non staff users without permission # now add the permission and test it again self.user.user_permissions.add(Permission.objects.get(codename='change_user')) print self.user.get_all_permissions() # prints set([]) self.assertTrue(self.user.has_perm('logical_change_user', self.non_staff.profile)) </code>
Даже после добавления разрешения у моего пользователя все еще нет разрешений. Это потому, что мне не разрешено создавать что-либо во время тестов (это плохая практика?)? Или django как-то кеширует разрешения? Если я добавляю разрешение в setUp, оно работает, но я хотел изменить его во время того же теста (тестирование с и без разрешения).
Заранее спасибо!