Beispiel #1
0
    def test_with_anonymous(self):
        admin = UserF.create()
        email_user = AnonymousUser()

        project = ProjectF.create(
            add_admins=[admin],
            **{'isprivate': False}
        )
        GroupingFactory.create(**{
            'isprivate': False,
            'project': project
        })

        view = ProjectContactAdmins.as_view()
        url = reverse(
            'api:project_contact_admins',
            kwargs={
                'project_id': project.id
            }
        )
        request = APIRequestFactory().post(
            url,
            json.dumps({'email_text': 'Blah Blah'}),
            content_type='application/json'
        )
        force_authenticate(request, user=email_user)

        response = view(request, project_id=project.id).render()
        self.assertEqual(response.status_code, 401)
        self.assertEquals(len(mail.outbox), 0)
Beispiel #2
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
        })
Beispiel #3
0
    def test_get_viewgroup(self):
        project = ProjectF.create()
        grouping = GroupingFactory.create(**{'project': project})
        group = UserGroupF(**{'project': project})

        html = get_view_group(grouping, group)
        self.assertEqual(
            html, '<li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right grant-single" data-toggle="button" >'
            '<span class="text-success">Grant access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li>' % (grouping.id, grouping.name, grouping.description))

        GroupingUserGroupFactory.create(**{
            'usergroup': group,
            'grouping': grouping
        })

        html = get_view_group(grouping, group)
        self.assertEqual(
            html, '<li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right active grant-single" data-toggle="button" >'
            '<span class="text-danger">Revoke access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li>' % (grouping.id, grouping.name, grouping.description))

        project.isprivate = False
        project.save()
        grouping.isprivate = False
        grouping.save()

        html = get_view_group(grouping, group)
        self.assertIn('This data grouping is public.', html)
Beispiel #4
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}
        )
Beispiel #5
0
 def test_delete_image_with_viewer(self):
     viewer = UserF.create()
     dataview = GroupingFactory.create(add_viewers=[viewer],
                                       **{'project': self.project})
     RuleFactory.create(**{
         'grouping': dataview,
         'category': self.contribution.category
     })
     response = self.delete(viewer)
     self.assertEqual(response.status_code, 404)
Beispiel #6
0
 def test_delete_image_with_viewer(self):
     viewer = UserF.create()
     dataview = GroupingFactory.create(
         add_viewers=[viewer],
         **{'project': self.project}
     )
     RuleFactory.create(**{
         'grouping': dataview,
         'category': self.contribution.category
     })
     response = self.delete(viewer)
     self.assertEqual(response.status_code, 404)
Beispiel #7
0
    def test_delete_with_grouping(self):
        category = CategoryFactory.create()

        grouping = GroupingFactory.create()
        rule = RuleFactory(**{
            'grouping': grouping,
            'status': 'active',
            'category': category
        })
        category.delete()

        Category.objects.get(pk=category.id)
        Rule.objects.get(pk=rule.id)
Beispiel #8
0
    def test_delete_with_grouping(self):
        category = CategoryFactory.create()

        grouping = GroupingFactory.create()
        rule = RuleFactory(**{
            'grouping': grouping,
            'status': 'active',
            'category': category
        })
        category.delete()

        Category.objects.get(pk=category.id)
        Rule.objects.get(pk=rule.id)
Beispiel #9
0
    def test_viewgroups(self):
        project = ProjectF.create()
        grouping = GroupingFactory.create(**{'project': project})
        group = UserGroupF(**{'project': project})

        html = viewgroups(group)
        self.assertEqual(
            html, '<ul class="list-unstyled overview-list"><li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right grant-single" data-toggle="button" >'
            '<span class="text-success">Grant access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li></ul>' % (grouping.id, grouping.name, grouping.description))
Beispiel #10
0
 def test_delete_with_rule_without_constraints(self):
     category = CategoryFactory()
     Field.create('n', 'n', 'n', False, category, 'TextField')
     field = Field.create('name', 'key', 'description', False, category,
                          'TextField')
     grouping = GroupingFactory.create()
     rule = RuleFactory(
         **{
             'grouping': grouping,
             'status': 'active',
             'category': category,
             'constraints': None
         })
     field.delete()
Beispiel #11
0
    def test_post_images_with_anonymous_to_public(self):
        self.project.isprivate = False
        self.project.everyone_contributes = 'true'
        self.project.save()

        grouping = GroupingFactory.create(
            **{'project': self.project, 'isprivate': False}
        )
        RuleFactory.create(**{
            'grouping': grouping,
            'category': self.contribution.category
        })
        response = self.post(AnonymousUser())
        self.assertEqual(response.status_code, 201)
Beispiel #12
0
    def test_post_images_with_anonymous_to_public(self):
        self.project.isprivate = False
        self.project.everyone_contributes = 'true'
        self.project.save()

        grouping = GroupingFactory.create(**{
            'project': self.project,
            'isprivate': False
        })
        RuleFactory.create(**{
            'grouping': grouping,
            'category': self.contribution.category
        })
        response = self.post(AnonymousUser())
        self.assertEqual(response.status_code, 201)
Beispiel #13
0
    def test_usergroups(self):
        project = ProjectF.create()
        grouping = GroupingFactory.create(**{'project': project})
        group = UserGroupF(**{'project': project})

        html = usergroups(grouping)
        self.assertEqual(
            html,
            '<ul class="list-unstyled overview-list"><li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right grant-single" data-toggle="button" ><span '
            'class="text-success">Grant access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li></ul>' % (group.id, group.name, group.description)
        )
Beispiel #14
0
    def test_get_user_group(self):
        project = ProjectF.create()
        grouping = GroupingFactory.create(**{'project': project})
        group = UserGroupF(**{'project': project})

        html = get_user_group(group, grouping)
        self.assertEqual(
            html,
            '<li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right grant-single" data-toggle="button" ><span '
            'class="text-success">Grant access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li>' % (group.id, group.name, group.description)
        )

        GroupingUserGroupFactory.create(**{
            'usergroup': group,
            'grouping': grouping
        })

        html = get_user_group(group, grouping)
        self.assertEqual(
            html,
            '<li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right active grant-single" data-toggle="button" >'
            '<span class="text-danger">Revoke access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li>' % (group.id, group.name, group.description)
        )

        project.isprivate = False
        project.save()
        grouping.isprivate = False
        grouping.save()

        html = get_user_group(group, grouping)
        self.assertEqual(
            html,
            '<li>'
            '<button type="button" name="%s" class="btn btn-default '
            'pull-right active grant-single" data-toggle="button" '
            'disabled="disabled">'
            '<span class="text-danger">Revoke access</span></button>'
            '<strong>%s</strong><p>%s</p>'
            '</li>' % (group.id, group.name, group.description)
        )
Beispiel #15
0
 def test_delete_with_rule_without_constraints(self):
     category = CategoryFactory()
     Field.create(
         'n', 'n', 'n', False, category, 'TextField'
     )
     field = Field.create(
         'name', 'key', 'description', False, category, 'TextField'
     )
     grouping = GroupingFactory.create()
     rule = RuleFactory(**{
         'grouping': grouping,
         'status': 'active',
         'category': category,
         'constraints': None
     })
     field.delete()
Beispiel #16
0
 def test_delete_with_rule(self):
     category = CategoryFactory()
     Field.create('n', 'n', 'n', False, category, 'TextField')
     field = Field.create('name', 'key', 'description', False, category,
                          'TextField')
     grouping = GroupingFactory.create()
     rule = RuleFactory(
         **{
             'grouping': grouping,
             'status': 'active',
             'category': category,
             'constraints': {
                 field.key: 'Blah',
                 'other-key': 'blubb'
             }
         })
     field.delete()
     reference_rule = Rule.objects.get(pk=rule.id)
     self.assertEquals(reference_rule.constraints.get('key'), None)
Beispiel #17
0
 def test_delete_with_rule(self):
     category = CategoryFactory()
     Field.create(
         'n', 'n', 'n', False, category, 'TextField'
     )
     field = Field.create(
         'name', 'key', 'description', False, category, 'TextField'
     )
     grouping = GroupingFactory.create()
     rule = RuleFactory(**{
         'grouping': grouping,
         'status': 'active',
         'category': category,
         'constraints': {
             field.key: 'Blah',
             'other-key': 'blubb'
         }
     })
     field.delete()
     reference_rule = Rule.objects.get(pk=rule.id)
     self.assertEquals(reference_rule.constraints.get('key'), None)
Beispiel #18
0
 def test_delete_not_existing_viewgroup(self):
     response = self.delete(
         self.admin,
         view_to_delete=GroupingFactory.create()
     )
     self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
Beispiel #19
0
 def test_add_not_existing_view(self):
     view = GroupingFactory.create()
     response = self.post(self.admin, grouping_id=view.id)
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Beispiel #20
0
 def test_add_not_existing_view(self):
     view = GroupingFactory.create()
     response = self.post(self.admin, grouping_id=view.id)
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Beispiel #21
0
 def test_delete_not_existing_viewgroup(self):
     response = self.delete(self.admin,
                            view_to_delete=GroupingFactory.create())
     self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)