def test_shows_logged_in_users_organisations(self):
        me = UserFactory.create(last_login=datetime.datetime(2019, 6, 3, 16, 35, 0, 0, pytz.UTC))
        my_org = OrganisationFactory.create()
        AssessmentFactory.create(owner=me, organisation=my_org)
        AssessmentFactory.create(owner=me, organisation=my_org)
        my_org.members.add(me)

        OrganisationFactory.create()  # make another organisation: it shouldn't show up

        self.client.force_authenticate(me)
        response = self.client.get("/api/v1/organisations/")
        assert response.status_code == status.HTTP_200_OK

        expected = [
            OrderedDict([
                ("id", f"{my_org.id}"),
                ("name", my_org.name),
                ("assessments", 2),
                ("members", [
                    {
                        "userid": f"{me.id}",
                        "name": me.username,
                        "last_login": me.last_login.isoformat(),
                    }
                ]),
            ]),
        ]

        assert expected == response.data
    def test_returns_all_assessments_connected_to_organisation(self):
        AssessmentFactory.create(organisation=self.organisation)
        AssessmentFactory.create(organisation=self.organisation)

        AssessmentFactory.create()
        AssessmentFactory.create(organisation=OrganisationFactory.create())

        self.call_and_assert_number_of_returns_assessments(2)
    def post_to_create_endpoint(self, assessment):
        organisation = OrganisationFactory.create()
        organisation.members.add(self.user)

        return self.client.post(
            f"/api/v1/organisations/{organisation.pk}/assessments/",
            assessment,
            format="json"
        )
    def test_returns_only_assessments_connected_to_the_organisation(self):
        second_org = OrganisationFactory.create()
        second_org.members.add(self.org_member)

        AssessmentFactory.create(organisation=self.organisation)
        AssessmentFactory.create(organisation=self.organisation)

        AssessmentFactory.create(organisation=second_org)

        self.call_and_assert_number_of_returns_assessments(2)
Ejemplo n.º 5
0
    def test_organisation_member_who_isnt_owner_can_access(self):
        organisation = OrganisationFactory.create()
        assessment = AssessmentFactory.create(organisation=organisation)

        org_member = UserFactory.create()
        organisation.members.add(org_member)

        self.client.force_authenticate(org_member)

        self.call_endpoint_and_assert(
            assessment,
            True,
        )
Ejemplo n.º 6
0
    def test_doesnt_return_assessments_in_connected_organisation(self):
        user = UserFactory.create()
        organisation = OrganisationFactory.create()
        organisation.members.add(user)

        self.client.force_authenticate(user)

        AssessmentFactory.create(owner=user)
        AssessmentFactory.create(owner=user)

        AssessmentFactory.create(organisation=organisation)

        response = self.client.get("/api/v1/assessments/")
        assert response.status_code == status.HTTP_200_OK

        assert 2 == len(response.data)
    def test_fails_if_not_a_member_of_organisation(self):
        organisation = OrganisationFactory.create()

        self.client.force_authenticate(self.user)

        new_assessment = {
            "name": "test assessment 1",
            "description": "test description 1",
            "openbem_version": "10.1.1",
        }

        response = self.client.post(
            f"/api/v1/organisations/{organisation.pk}/assessments/",
            new_assessment,
            format="json"
        )

        assert status.HTTP_403_FORBIDDEN == response.status_code
        assert {"detail": "You are not a member of the Organisation."} == response.json()
    def test_sets_organisation(self):
        organisation = OrganisationFactory.create()
        organisation.members.add(self.user)

        self.client.force_authenticate(self.user)

        new_assessment = {
            "name": "test assessment 1",
            "description": "test description 1",
            "openbem_version": "10.1.1",
        }

        response = self.client.post(
            f"/api/v1/organisations/{organisation.pk}/assessments/",
            new_assessment,
            format="json"
        )

        assert status.HTTP_201_CREATED == response.status_code

        assessment = Assessment.objects.get(pk=response.data["id"])
        assert organisation == assessment.organisation
Ejemplo n.º 9
0
def organisation() -> Organisation:
    return OrganisationFactory()
 def setUpClass(cls):
     cls.organisation = OrganisationFactory.create()
     cls.org_member = UserFactory.create()
     cls.organisation.members.add(cls.org_member)
     super().setUpClass()