File: test_predicates.py

package info (click to toggle)
python-django-rules 3.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 320 kB
  • sloc: python: 1,613; makefile: 5; sh: 3
file content (50 lines) | stat: -rw-r--r-- 1,430 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from django.contrib.auth.models import User
from django.test import TestCase

from rules.predicates import (
    is_active,
    is_authenticated,
    is_group_member,
    is_staff,
    is_superuser,
)

from . import TestData


class SwappedUser(object):
    pass


class PredicateTests(TestData, TestCase):
    def test_is_authenticated(self):
        assert is_authenticated(User.objects.get(username="adrian"))
        assert not is_authenticated(SwappedUser())

    def test_is_superuser(self):
        assert is_superuser(User.objects.get(username="adrian"))
        assert not is_superuser(SwappedUser())

    def test_is_staff(self):
        assert is_staff(User.objects.get(username="adrian"))
        assert not is_staff(SwappedUser())

    def test_is_active(self):
        assert is_active(User.objects.get(username="adrian"))
        assert not is_active(SwappedUser())

    def test_is_group_member(self):
        p1 = is_group_member("somegroup")
        assert p1.name == "is_group_member:somegroup"
        assert p1.num_args == 1

        p2 = is_group_member("g1", "g2", "g3", "g4")
        assert p2.name == "is_group_member:g1,g2,g3,..."

        p = is_group_member("editors")
        assert p(User.objects.get(username="martin"))
        assert not p(SwappedUser())

        p = is_group_member("editors", "staff")
        assert not p(User.objects.get(username="martin"))
        assert not p(SwappedUser())