Beispiel #1
0
    def test_without_valid_permission(self, user: User, rf: RequestFactory):
        nothing_group = GroupFactory.create(permissions=[])
        user = UserFactory.create(groups=[nothing_group])

        request = rf.get("/users/")
        request.user = user

        with pytest.raises(PermissionDenied):
            user_create_view(request)
Beispiel #2
0
    def test_view_with_valid_permission(self, user: User, rf: RequestFactory):
        can_view_user = Permission.objects.filter(codename="view_user").first()
        can_view_user_group = GroupFactory.create(permissions=[can_view_user])
        user = UserFactory.create(groups=[can_view_user_group])

        request = rf.get("/users/")
        request.user = user

        response = user_detail_view(request, pk=user.id)

        assert response.status_code == 200
Beispiel #3
0
    def test_with_valid_permission(self, user: User, rf: RequestFactory):
        can_add_user = Permission.objects.filter(codename="add_user").first()
        can_add_user_group = GroupFactory.create(permissions=[can_add_user])
        user = UserFactory.create(groups=[can_add_user_group])

        request = rf.get("/fake-url/")
        request.user = user

        response = user_create_view(request)

        assert response.status_code == 200
Beispiel #4
0
    def test_valid_form(self, rf: RequestFactory):
        new_group = GroupFactory.create()
        location = LocationFactory.create()

        form = UserUpdateForm({
            "name": "A new name",
            "email": "*****@*****.**",
            "group": new_group,
            "is_active": False,
            "geographic_access": "location-specific",
            "locations": [location],
        })

        assert form.is_valid()
Beispiel #5
0
    def test_location_required(self):
        # A user with proto_user params does not exist yet.
        proto_user = NewUserFactory.build()
        group = GroupFactory.create()

        form = ExtendedUserCreationForm({
            "name": proto_user.name,
            "email": proto_user.email,
            "group": group,
            "geographic_access": "location-specific",
            "locations": [],
        })

        assert not form.is_valid()
        assert len(form.errors) == 1
        assert "locations" in form.errors
Beispiel #6
0
    def test_email_uniqueness(self):
        # A user with existing_user params exists already.
        existing_user = NewUserFactory.create()
        group = GroupFactory.create()
        location = LocationFactory.create()

        form = ExtendedUserCreationForm({
            "name": existing_user.name,
            "email": existing_user.email,
            "group": group,
            "geographic_access": "location-specific",
            "locations": [location],
        })

        assert not form.is_valid()
        assert len(form.errors) == 1
        assert "email" in form.errors
Beispiel #7
0
    def test_valid_form_with_national_access(self, rf: RequestFactory):
        # A user with proto_user params does not exist yet.
        proto_user = NewUserFactory.build()
        group = GroupFactory.create()

        form = ExtendedUserCreationForm({
            "name": proto_user.name,
            "email": proto_user.email,
            "group": group,
            "geographic_access": "national",
            "locations": [],
        })

        # Note: The form expects a request object to be set in order to save it
        request = rf.get("/fake-url/")
        form.request = request

        assert form.is_valid()
def create_and_return_a_new_user(rf, proto_user):
    group = GroupFactory.create()
    location = LocationFactory.create()

    form = ExtendedUserCreationForm({
        "name": proto_user.name,
        "email": proto_user.email,
        "group": group,
        "geographic_access": "location-specific",
        "locations": [location],
    })

    # Note: The form expects a request object to be set in order to save it
    request = rf.get("/fake-url/")
    form.request = request

    user = form.save()

    return user
Beispiel #9
0
def group() -> models.Group:
    return GroupFactory()