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)
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 })
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)
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} )
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)
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)
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)
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)
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))
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()
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)
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)
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) )
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) )
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()
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)
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)
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)
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)
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)
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)