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)
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
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
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()
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
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
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
def group() -> models.Group: return GroupFactory()