Exemplo n.º 1
0
    def setUp(self):
        self.admin = UserF.create()

        self.project1 = ProjectF(add_admins=[self.admin])
        self.project2 = ProjectF(add_admins=[self.admin])
        self.public_location = LocationFactory(**{'private': False})
        self.private_location = LocationFactory(**{'private': True})
        self.private_for_project_location = LocationFactory(
            **{
                'private': True,
                'private_for_project': self.project1
            })
Exemplo n.º 2
0
 def setUp(self):
     self.contributor = UserF.create()
     self.admin = UserF.create()
     self.non_member = UserF.create()
     self.project = ProjectF(add_admins=[self.admin],
                             add_contributors=[self.contributor])
     self.observation = ObservationFactory.create(
         **{
             'project': self.project,
             'creator': self.contributor
         })
     comment = CommentFactory.create(**{'commentto': self.observation})
     response = CommentFactory.create(**{
         'commentto': self.observation,
         'respondsto': comment
     })
     CommentFactory.create(**{
         'commentto': self.observation,
         'respondsto': response
     })
     CommentFactory.create(**{
         'commentto': self.observation,
         'respondsto': comment
     })
     CommentFactory.create(**{'commentto': self.observation})
Exemplo n.º 3
0
    def test_create_with_wrong_location(self):
        project = ProjectF()
        location = LocationFactory(**{
            'private': True,
            'private_for_project': project
        })

        data = {
            "properties": {
                "key_1": "value 1",
                "key_2": 12
            },
            "meta": {
                "category": self.category.id
            },
            "location": {
                "id": location.id,
                "geometry": location.geometry.geojson
            }
        }
        serializer = ContributionSerializer(data=data,
                                            context={
                                                'user': self.contributor,
                                                'project': self.project
                                            })
        serializer.is_valid(raise_exception=True)
Exemplo n.º 4
0
 def setUp(self):
     self.factory = APIRequestFactory()
     self.admin = UserF.create()
     self.creator = UserF.create()
     self.moderator = UserF.create()
     self.commenter = UserF.create()
     self.project = ProjectF(
         add_admins=[self.admin],
         add_contributors=[self.creator, self.commenter])
     self.moderators = UserGroupF(add_users=[self.moderator],
                                  **{
                                      'project': self.project,
                                      'can_moderate': True
                                  })
     self.observation = ObservationFactory.create(**{
         'project': self.project,
         'creator': self.creator,
         'status': 'review'
     })
     self.comment = CommentFactory.create(
         **{
             'commentto': self.observation,
             'creator': self.commenter,
             'review_status': 'open'
         })
Exemplo n.º 5
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.creator = UserF.create()
        self.viewer = UserF.create()
        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.creator])

        self.contribution = ObservationFactory.create(**{
            'project': self.project,
            'creator': self.creator
        })

        self.viewer = UserF.create()
        self.grouping = GroupingFactory.create(add_viewers=[self.viewer],
                                               **{'project': self.project})
        RuleFactory.create(**{
            'grouping': self.grouping,
            'category': self.contribution.category
        })

        self.image_file = ImageFileFactory.create(**{
            'contribution': self.contribution,
            'creator': self.creator
        })
Exemplo n.º 6
0
    def test_contribute_with_wrong_project_location(self):
        project = ProjectF()
        location = LocationFactory(**{
            'private': True,
            'private_for_project': project
        })

        data = {
            "type": "Feature",
            "geometry": location.geometry.geojson,
            "location": {
                "id": location.id,
                "name": location.name,
                "description": location.description,
                "private": location.private
            },
            "properties": {
                "key_1": "value 1",
                "key_2": 12
            },
            "meta": {
                "category": self.category.id,
            }
        }

        response = self._post(data, self.admin)
        self.assertEqual(response.status_code, 400)
Exemplo n.º 7
0
 def setUp(self):
     self.admin = UserF.create()
     self.creator = UserF.create()
     self.project = ProjectF(add_admins=[self.admin],
                             add_contributors=[self.creator])
     self.observation = ObservationFactory.create(**{
         'project': self.project,
         'creator': self.creator
     })
Exemplo n.º 8
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.creator = UserF.create()
        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.creator])

        self.contribution = ObservationFactory.create(
            **{'project': self.project})
Exemplo n.º 9
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.project = ProjectF()
        LocationFactory.create(**{'name': 'Hyde Park'})
        LocationFactory.create(**{'description': 'hyde'})
        LocationFactory.create(**{'name': 'hyde park'})
        LocationFactory.create(**{'name': 'Regents Park'})

        self.url = reverse('api:project_locations',
                           kwargs={'project_id': self.project.id})
Exemplo n.º 10
0
 def setUp(self):
     self.admin = UserF.create()
     self.view_user = UserF.create()
     self.project = ProjectF(add_admins=[self.admin],
                             **{'isprivate': False})
     self.private_view = GroupingFactory(add_viewers=[self.view_user],
                                         **{'project': self.project})
     self.public_view = GroupingFactory(add_viewers=[self.view_user],
                                        **{
                                            'project': self.project,
                                            'isprivate': False
                                        })
Exemplo n.º 11
0
 def setUp(self):
     self.contributor = UserF.create()
     self.admin = UserF.create()
     self.non_member = UserF.create()
     self.project = ProjectF(add_admins=[self.admin],
                             add_contributors=[self.contributor],
                             **{'isprivate': False})
     self.observation = ObservationFactory.create(
         **{
             'project': self.project,
             'creator': self.contributor
         })
Exemplo n.º 12
0
 def setUp(self):
     self.admin = UserF.create()
     self.contributor = UserF.create()
     self.view1_user = UserF.create()
     self.view2_user = UserF.create()
     self.non_member = UserF.create()
     self.project = ProjectF(add_admins=[self.admin],
                             add_contributors=[self.contributor])
     self.view1 = GroupingFactory(add_viewers=[self.view1_user],
                                  **{'project': self.project})
     self.view2 = GroupingFactory(add_viewers=[self.view2_user],
                                  **{'project': self.project})
Exemplo n.º 13
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.creator = UserF.create()
        self.viewer = UserF.create()
        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.creator])

        self.contribution = ObservationFactory.create(**{
            'project': self.project,
            'creator': self.creator
        })

        ImageFileFactory.create_batch(5, **{'contribution': self.contribution})
Exemplo n.º 14
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.contributor = UserF.create()
        self.view_member = UserF.create()
        self.non_member = UserF.create()

        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.contributor])

        self.location = LocationFactory(**{
            'private': True,
            'private_for_project': self.project
        })
Exemplo n.º 15
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.contributor = UserF.create()
        self.non_member = UserF.create()

        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.contributor])

        self.category = CategoryFactory(**{
            'status': 'active',
            'project': self.project
        })

        TextFieldFactory.create(
            **{
                'key': 'key_1',
                'category': self.category,
                'required': True,
                'order': 1
            })
        NumericFieldFactory.create(
            **{
                'key': 'key_2',
                'category': self.category,
                'minval': 0,
                'maxval': 1000,
                'order': 2
            })

        self.data = {
            "type": "Feature",
            "geometry": {
                "type": "Point",
                "coordinates": [-0.13404607772827148, 51.52439200896907]
            },
            "properties": {
                "key_1": "value 1",
                "key_2": 12
            },
            "meta": {
                "category": self.category.id,
            },
            "location": {
                "name": "UCL",
                "description": "UCL's main quad",
                "private": True
            }
        }
Exemplo n.º 16
0
    def test(self):
        admin = UserF.create()
        project = ProjectF(add_admins=[admin])
        observation = ObservationFactory.create()

        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/observations/%s/comments/' %
            (project.id, observation.id),
            {'text': 'A comment to the observation'})
        force_authenticate(request, user=admin)
        view = AllContributionsCommentsAPIView.as_view()
        response = view(request,
                        project_id=project.id,
                        observation_id=observation.id).render()
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
Exemplo n.º 17
0
 def setUp(self):
     self.factory = APIRequestFactory()
     self.admin = UserF.create()
     self.creator = UserF.create()
     self.moderator = UserF.create()
     self.viewer = UserF.create()
     self.project = ProjectF(add_admins=[self.admin],
                             add_contributors=[self.creator],
                             add_viewer=[self.viewer])
     self.moderators = UserGroupF(add_users=[self.moderator],
                                  **{
                                      'project': self.project,
                                      'can_moderate': True
                                  })
     self.observation = ObservationFactory.create(**{
         'project': self.project,
         'creator': self.creator,
         'status': 'active'
     })
Exemplo n.º 18
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.contributor = UserF.create()
        self.non_member = UserF.create()

        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.contributor])
        self.category = CategoryFactory(**{
            'status': 'active',
            'project': self.project
        })

        TextFieldFactory.create(**{
            'key': 'key_1',
            'category': self.category,
            'order': 0
        })
        NumericFieldFactory.create(**{
            'key': 'key_2',
            'category': self.category,
            'order': 1
        })

        location = LocationFactory()

        self.observation = ObservationFactory.create(
            **{
                'properties': {
                    "key_1": "value 1",
                    "key_2": 12,
                },
                'category': self.category,
                'project': self.project,
                'location': location,
                'creator': self.admin,
                'status': 'active'
            })

        self.update_data = {"properties": {"version": 1, "key_2": 15}}
Exemplo n.º 19
0
    def setUp(self):
        self.admin = UserF.create()
        self.contributor = UserF.create()
        self.non_member = UserF.create()

        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.contributor])
        self.category = CategoryFactory(**{
            'status': 'active',
            'project': self.project
        })

        TextFieldFactory.create(**{
            'key': 'key_1',
            'category': self.category,
            'order': 0
        })
        NumericFieldFactory.create(**{
            'key': 'key_2',
            'category': self.category,
            'order': 1
        })
Exemplo n.º 20
0
    def test(self):
        admin = UserF.create()
        project = ProjectF(add_admins=[admin])
        observation = ObservationFactory.create(**{'project': project})
        comment = CommentFactory.create(**{'commentto': observation})

        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/observations/%s/comments/' %
            (project.id, observation.id), {
                'text': 'Response to a comment',
                'respondsto': comment.id
            })
        force_authenticate(request, user=admin)
        view = AllContributionsCommentsAPIView.as_view()
        response = view(request,
                        project_id=project.id,
                        observation_id=observation.id).render()

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(
            json.loads(response.content).get('respondsto'), comment.id)
Exemplo n.º 21
0
    def setUp(self):
        self.factory = APIRequestFactory()
        self.admin = UserF.create()
        self.contributor = UserF.create()
        self.non_member = UserF.create()

        self.project = ProjectF(add_admins=[self.admin],
                                add_contributors=[self.contributor])
        self.other_project = ProjectF.create()

        # Create 20 locations, 10 should be accessible for the project
        for x in range(0, 5):
            LocationFactory()
            LocationFactory(**{
                'private': True,
                'private_for_project': self.other_project
            })
            LocationFactory(**{
                'private': True,
                'private_for_project': self.project
            })
            LocationFactory(**{'private': True})