Benutzerrechte können in Django nicht geändert werden

Ich habe mich endlich dazu entschlossen, einige Tests für meine Apps durchzuführen, aber ich will nicht testen, ob ein Benutzer einen anderen Benutzer ändern kann (hängt vom Benutzertyp ab - ich verwende Django-Regeln, um logische Berechtigungsprüfungen durchführen zu können). aber das ist nicht wichtig)

Hier ist der Code, den ich bisher habe

<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>

Auch nach dem Hinzufügen der Berechtigung hat mein Benutzer noch keine Berechtigungen. Liegt es daran, dass ich während der Tests nichts erstellen darf (ist das eine schlechte Praxis?)? Oder zwischenspeichert Django die Berechtigungen irgendwie? Wenn ich die Berechtigung bei setUp hinzufüge, funktioniert sie, aber ich wollte sie während desselben Tests ändern (Testen mit und ohne Berechtigung).

Danke im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage