Esempio n. 1
0
class TestInstitutionList(ApiTestCase):
    def setUp(self):
        super(TestInstitutionList, self).setUp()
        self.institution = InstitutionFactory()
        self.institution2 = InstitutionFactory()
        self.institution_url = '/{}institutions/'.format(API_BASE)

    def test_return_all_institutions(self):
        res = self.app.get(self.institution_url)

        assert_equal(res.status_code, 200)

        ids = [each['id'] for each in res.json['data']]
        assert_equal(len(res.json['data']), 2)
        assert_equal(res.json['links']['meta']['per_page'], 1000)
        assert_in(self.institution._id, ids)
        assert_in(self.institution2._id, ids)

    def test_does_not_return_deleted_institution(self):
        self.institution.is_deleted = True
        self.institution.save()

        res = self.app.get(self.institution_url)

        assert_equal(res.status_code, 200)

        ids = [each['id'] for each in res.json['data']]
        assert_equal(len(res.json['data']), 1)
        assert_not_in(self.institution._id, ids)
        assert_in(self.institution2._id, ids)
Esempio n. 2
0
    def test_deactivated_institution_in_all_institutions(self):
        institution = InstitutionFactory()
        assert institution in Institution.objects.get_all_institutions()

        institution.deactivated = timezone.now()
        institution.save()
        assert institution in Institution.objects.get_all_institutions()
Esempio n. 3
0
    def test_deactivated_institution_not_in_default_queryset(self):
        institution = InstitutionFactory()
        assert institution in Institution.objects.all()

        institution.deactivated = timezone.now()
        institution.save()
        assert institution not in Institution.objects.all()
    def setUp(self):
        super(TestNodeRelationshipInstitutions, self).setUp()

        self.institution2 = InstitutionFactory()
        self.institution1 = InstitutionFactory()

        self.user = AuthUserFactory()
        self.user.affiliated_institutions.add(self.institution1)
        self.user.affiliated_institutions.add(self.institution2)
        self.user.save()

        self.read_write_contributor = AuthUserFactory()
        self.read_write_contributor_institution = InstitutionFactory()
        self.read_write_contributor.affiliated_institutions.add(self.read_write_contributor_institution)
        self.read_write_contributor.save()

        self.read_only_contributor = AuthUserFactory()
        self.read_only_contributor_institution = InstitutionFactory()
        self.read_only_contributor.affiliated_institutions.add(self.read_only_contributor_institution)
        self.read_only_contributor.save()

        self.node = NodeFactory(creator=self.user)
        self.node.add_contributor(self.read_write_contributor, permissions=[permissions.WRITE])
        self.node.add_contributor(self.read_only_contributor, permissions=[permissions.READ])
        self.node.save()

        self.node_institutions_url = '/{0}nodes/{1}/relationships/institutions/'.format(API_BASE, self.node._id)
Esempio n. 5
0
class TestInstitutionList(ApiTestCase):
    def setUp(self):
        super(TestInstitutionList, self).setUp()
        self.institution = InstitutionFactory()
        self.institution2 = InstitutionFactory()
        self.institution_url = '/{}institutions/'.format(API_BASE)

    def test_return_all_institutions(self):
        res = self.app.get(self.institution_url)

        assert_equal(res.status_code, 200)

        ids = [each['id'] for each in res.json['data']]
        assert_equal(len(res.json['data']), 2)
        assert_equal(res.json['links']['meta']['per_page'], 1000)
        assert_in(self.institution._id, ids)
        assert_in(self.institution2._id, ids)

    def test_does_not_return_deleted_institution(self):
        self.institution.is_deleted = True
        self.institution.save()

        res = self.app.get(self.institution_url)

        assert_equal(res.status_code, 200)

        ids = [each['id'] for each in res.json['data']]
        assert_equal(len(res.json['data']), 1)
        assert_not_in(self.institution._id, ids)
        assert_in(self.institution2._id, ids)
Esempio n. 6
0
 def setUp(self):
     super(TestInstitutionListView, self).setUp()
     self.user = AuthUserFactory()
     self.institutions = [InstitutionFactory(), InstitutionFactory()]
     self.request = RequestFactory().get('/fake_path')
     self.view = views.InstitutionListView()
     self.view = setup_user_view(self.view, self.request, user=self.user)
Esempio n. 7
0
    def setUp(self):
        super(TestCallbackView, self).setUp()
        self.user = AuthUserFactory()
        self.external_account = ExternalAccountFactory()
        self.institution = InstitutionFactory()

        self.provider = MockOAuth2Provider(self.external_account)

        self.user.affiliated_institutions.add(self.institution)

        app = flask.Flask(__name__)
        make_url_map(app)
        app.config['SECRET_KEY'] = 'aaaaa'
        self.ctx = app.test_request_context()
        self.ctx.push()

        self.request = RequestFactory().get('/fake_path')
        add_session_to_request(self.request)
        self.view0 = views.ConnectView()
        self.view0 = setup_user_view(self.view0, self.request, user=self.user)
        self.view0.kwargs = {
            'addon_name': self.external_account.provider,
            'institution_id': self.institution.id,
        }

        self.view = views.CallbackView()
        self.view = setup_user_view(self.view, self.request, user=self.user)
        self.view.kwargs = {
            'addon_name': self.external_account.provider,
            'institution_id': self.institution.id,
        }
Esempio n. 8
0
 def test_deactivate_institution(self):
     institution = InstitutionFactory()
     with mock.patch.object(
             institution, '_send_deactivation_email',
             return_value=None) as mock__send_deactivation_email:
         institution.deactivate()
         assert institution.deactivated is not None
         assert mock__send_deactivation_email.called
Esempio n. 9
0
 def setUp(self):
     super(TestclassStatisticsView, self).setUp()
     self.user = AuthUserFactory()
     self.institution1 = InstitutionFactory()
     self.user.affiliated_institutions.add(self.institution1)
     self.request = RequestFactory().get('/fake_path')
     self.view = views.StatisticsView()
     self.view = setup_user_view(self.view, self.request, user=self.user)
     self.view.kwargs = {'institution_id': self.institution1.id}
Esempio n. 10
0
 def setUp(self):
     super(TestInstitutionListViewStat, self).setUp()
     self.user = AuthUserFactory()
     self.institutions = [InstitutionFactory(), InstitutionFactory()]
     self.institution1 = InstitutionFactory()
     self.institution2 = InstitutionFactory()
     self.user.affiliated_institutions.add(self.institution1)
     self.request = RequestFactory().get('/fake_path')
     self.view = views.InstitutionListViewStat()
     self.view = setup_user_view(self.view, self.request, user=self.user)
Esempio n. 11
0
 def setUp(self):
     super(TestCreateCSV, self).setUp()
     self.user = AuthUserFactory()
     self.request = RequestFactory().get('/fake_path')
     self.institution1 = InstitutionFactory()
     self.user.affiliated_institutions.add(self.institution1)
     self.kwargs = {'institution_id': self.institution1.id}
     self.rdm_statistics = rdm_statistics_factories.RdmStatisticsFactory.create(
         institution=self.institution1, provider='s3', owaner=self.user)
     self.rdm_statistics.save()
Esempio n. 12
0
 def test_send_deactivation_email_call_count(self, mock_send_mail):
     institution = InstitutionFactory()
     user_1 = UserFactory()
     user_1.affiliated_institutions.add(institution)
     user_1.save()
     user_2 = UserFactory()
     user_2.affiliated_institutions.add(institution)
     user_2.save()
     institution._send_deactivation_email()
     assert mock_send_mail.call_count == 2
 def setUp(self):
     super(TestUserInstititutionRelationship, self).setUp()
     self.user = AuthUserFactory()
     self.user2 = AuthUserFactory()
     self.url = '/{}users/{}/relationships/institutions/'.format(
         API_BASE, self.user._id)
     self.institution1 = InstitutionFactory()
     self.institution2 = InstitutionFactory()
     self.user.affiliated_institutions.add(self.institution1)
     self.user.affiliated_institutions.add(self.institution2)
     self.user.save()
Esempio n. 14
0
    def setUp(self):
        super(TestInstitutionList, self).setUp()
        self.institutions = [InstitutionFactory(), InstitutionFactory()]
        self.user = AuthUserFactory()

        self.request_url = '/timestampsettings/'
        self.request = RequestFactory().get(self.request_url)
        self.view = views.InstitutionList()
        self.view = setup_user_view(self.view, self.request, user=self.user)
        self.view.kwargs = {'institution_id': self.institutions[0].id}
        self.redirect_url = '/timestampsettings/' + str(self.view.kwargs['institution_id']) + '/nodes/'
Esempio n. 15
0
class TestAddonListView(AdminTestCase):
    def setUp(self):
        super(TestAddonListView, self).setUp()
        self.user = AuthUserFactory()
        self.institution1 = InstitutionFactory()
        self.institution2 = InstitutionFactory()
        self.user.affiliated_institutions.add(self.institution1)

        self.request = RequestFactory().get('/fake_path')
        self.view = views.AddonListView()
        self.view = setup_user_view(self.view, self.request, user=self.user)
        self.view.kwargs = {'institution_id': self.institution1.id}

    def tearDown(self):
        super(TestAddonListView, self).tearDown()
        self.user.affiliated_institutions.remove(self.institution1)
        self.user.delete()
        self.institution1.delete()
        self.institution2.delete()

    def test_super_admin_login(self):
        """test superuser login"""
        self.request.user.is_superuser = True
        nt.assert_true(self.view.test_func())

    def test_admin_login(self):
        """test institution administrator login"""
        self.request.user.is_superuser = False
        self.request.user.is_staff = True
        nt.assert_true(self.view.test_func())

    def test_non_admin_login(self):
        """test user not superuser or institution administrator login"""
        self.request.user.is_superuser = False
        self.request.user.is_staff = False
        nt.assert_equal(self.view.test_func(), False)

    def test_non_active_user_login(self):
        """test invalid user login"""
        self.request.user.is_active = False
        nt.assert_equal(self.view.test_func(), False)

    def test_non_registered_user_login(self):
        """test unregistered user login"""
        self.request.user.is_registered = False
        nt.assert_equal(self.view.test_func(), False)

    def test_non_affiliated_institution_user_login(self):
        """test user unaffiliated institution login"""
        self.request.user.is_superuser = False
        self.request.user.is_staff = True
        self.view.kwargs = {'institution_id': self.institution1.id + 1}
        nt.assert_equal(self.view.test_func(), False)
Esempio n. 16
0
    def setUp(self):
        super(TestSettingsView, self).setUp()
        self.user = AuthUserFactory()
        self.institution = InstitutionFactory()
        self.user.affiliated_institutions.add(self.institution)

        self.request = RequestFactory().get('/fake_path')
        self.view = views.SettingsView()
        self.view = setup_user_view(self.view, self.request, user=self.user)
        self.view.kwargs = {
            'addon_name': 'dataverse',
            'institution_id': self.institution.id,
        }
Esempio n. 17
0
 def setUp(self):
     super(TestImageView, self).setUp()
     self.user = AuthUserFactory()
     self.request = RequestFactory().get('/fake_path')
     self.institution1 = InstitutionFactory()
     self.user.affiliated_institutions.add(self.institution1)
     self.rdm_statistics = rdm_statistics_factories.RdmStatisticsFactory.create(
         institution=self.institution1, provider='s3', owner=self.user)
     self.rdm_statistics.save()
     self.view = views.ImageView()
     self.view = setup_user_view(self.view, self.request, user=self.user)
     self.view.kwargs = {'graph_type': 'ext'}
     self.view.kwargs = {'provider': 's3'}
     self.view.kwargs = {'institution_id': self.institution1.id}
Esempio n. 18
0
 def test_send_deactivation_email_call_args(self, mock_send_mail):
     institution = InstitutionFactory()
     user = UserFactory()
     user.affiliated_institutions.add(institution)
     user.save()
     institution._send_deactivation_email()
     forgot_password = '******' if settings.DOMAIN.endswith(
         '/') else '/forgotpassword'
     mock_send_mail.assert_called_with(
         to_addr=user.username,
         mail=mails.INSTITUTION_DEACTIVATION,
         user=user,
         forgot_password_link='{}{}'.format(settings.DOMAIN,
                                            forgot_password),
         osf_support_email=settings.OSF_SUPPORT_EMAIL)
Esempio n. 19
0
    def test_affiliated_institutions_are_copied_from_user(
            self, app, user, url_draft_registrations, payload):
        project = ProjectFactory(is_public=True, creator=user)
        InstitutionFactory()
        payload['data']['relationships']['branched_from']['data'][
            'id'] = project._id
        res = app.post_json_api(url_draft_registrations,
                                payload,
                                auth=user.auth,
                                expect_errors=True)
        assert res.status_code == 201
        draft_registration = DraftRegistration.load(res.json['data']['id'])
        assert not draft_registration.affiliated_institutions.exists()

        project = ProjectFactory(is_public=True, creator=user)
        payload['data']['relationships']['branched_from']['data'][
            'id'] = project._id
        user.affiliated_institutions.set(Institution.objects.filter(id__lt=3))
        res = app.post_json_api(url_draft_registrations,
                                payload,
                                auth=user.auth,
                                expect_errors=True)
        assert res.status_code == 201
        draft_registration = DraftRegistration.load(res.json['data']['id'])
        assert not draft_registration.affiliated_institutions.all(
        ) == user.affiliated_institutions.all()
Esempio n. 20
0
def user():
    user = UserFactory()
    quickfiles_node = QuickFilesNode.objects.get_for_user(user)
    create_test_file(quickfiles_node, user)
    inst = InstitutionFactory()
    user.affiliated_institutions.add(inst)
    return user
    def setUp(self):
        self.institution = InstitutionFactory()
        self.url = '/{}institutions/{}/registrations/?version=2.2&'.format(
            API_BASE, self.institution._id)

        super(TestRegistrationListFiltering, self).setUp()

        A_children = [
            child for child in Node.objects.get_children(
                self.node_A
            )
        ]
        B2_children = [
            child for child in Node.objects.get_children(
                self.node_B2
            )
        ]

        for child in (A_children + B2_children):
            child.affiliated_institutions.add(self.institution)
            child.is_public = True
            child.save()

        self.node_A.is_public = True
        self.node_B2.is_public = True
        self.node_A.affiliated_institutions.add(self.institution)
        self.node_B2.affiliated_institutions.add(self.institution)

        self.node_A.save()
        self.node_B2.save()
    def setUp(self):
        self.institution = InstitutionFactory()
        self.url = '/{}institutions/{}/nodes/?version=2.2&'.format(API_BASE, self.institution._id)

        super(TestNodeListFiltering, self).setUp()

        self.node_A.is_public = True
        self.node_B1.is_public = True
        self.node_B2.is_public = True
        self.node_C1.is_public = True
        self.node_C2.is_public = True
        self.node_D2.is_public = True

        self.node_A.affiliated_institutions.add(self.institution)
        self.node_B1.affiliated_institutions.add(self.institution)
        self.node_B2.affiliated_institutions.add(self.institution)
        self.node_C1.affiliated_institutions.add(self.institution)
        self.node_C2.affiliated_institutions.add(self.institution)
        self.node_D2.affiliated_institutions.add(self.institution)

        self.node_A.save()
        self.node_B1.save()
        self.node_B2.save()
        self.node_C1.save()
        self.node_C2.save()
        self.node_D2.save()
Esempio n. 23
0
 def setUp(self):
     super(TestNodeInstitutionDetail, self).setUp()
     self.institution = InstitutionFactory()
     self.node = NodeFactory(is_public=True)
     self.node.affiliated_institutions.add(self.institution)
     self.node.save()
     self.user = AuthUserFactory()
     self.node2 = NodeFactory(creator=self.user)
Esempio n. 24
0
    def setUp(self):
        super(TestInstitutionTimeStampPatternForce, self).setUp()
        self.institution = InstitutionFactory()
        self.user = AuthUserFactory()
        self.request = RequestFactory().get('/timestampsettings/')

        self.view = views.InstitutionTimeStampPatternForce()
        self.view = setup_user_view(self.view, self.request, user=self.user)
    def setUp(self):
        self.user = AuthUserFactory()
        self.institution = InstitutionFactory()

        self.request = RequestFactory().get('/fake_path')
        self.view = views.DeleteInstitution()
        self.view = setup_user_view(self.view, self.request, user=self.user)

        self.view.kwargs = {'institution_id': self.institution.id}
Esempio n. 26
0
class TestCreateCSV(AdminTestCase):
    """test ImageView"""
    def setUp(self):
        super(TestCreateCSV, self).setUp()
        self.user = AuthUserFactory()
        self.request = RequestFactory().get('/fake_path')
        self.institution1 = InstitutionFactory()
        self.user.affiliated_institutions.add(self.institution1)
        self.kwargs = {'institution_id': self.institution1.id}
        self.rdm_statistics = rdm_statistics_factories.RdmStatisticsFactory.create(
            institution=self.institution1, provider='s3', owaner=self.user)
        self.rdm_statistics.save()

    def tearDown(self):
        super(TestCreateCSV, self).tearDown()
        self.user.affiliated_institutions.remove(self.institution1)
        self.user.delete()
        self.institution1.delete()
Esempio n. 27
0
    def setUp(self):
        super(TestConnectView, self).setUp()
        self.user = AuthUserFactory()
        self.external_account = ExternalAccountFactory()
        self.institution = InstitutionFactory()

        self.user.affiliated_institutions.add(self.institution)

        self.provider = MockOAuth2Provider(self.external_account)

        self.request = RequestFactory().get('/fake_path')
        add_session_to_request(self.request)
        self.view = views.ConnectView()
        self.view = setup_user_view(self.view, self.request, user=self.user)
        self.view.kwargs = {
            'addon_name': self.external_account.provider,
            'institution_id': self.institution.id,
        }
Esempio n. 28
0
 def test_reactivate_active_institution_noop(self):
     institution = InstitutionFactory()
     institution.deactivated = None
     institution.save()
     with mock.patch.object(institution, 'save',
                            return_value=None) as mock_save:
         institution.reactivate()
         assert not mock_save.called
    def setUp(self):
        super(TestInstitutionExport, self).setUp()

        self.user = AuthUserFactory()
        self.institution = InstitutionFactory()

        self.request = RequestFactory().get('/fake_path')
        self.view = views.InstitutionExport()
        self.view = setup_user_view(self.view, self.request, user=self.user)

        self.view.kwargs = {'institution_id': self.institution.id}
Esempio n. 30
0
    def setUp(self):
        super(TestInstitutionUsersList, self).setUp()
        self.institution = InstitutionFactory()
        self.user1 = UserFactory()
        self.user1.affiliated_institutions.add(self.institution)
        self.user1.save()
        self.user2 = UserFactory()
        self.user2.affiliated_institutions.add(self.institution)
        self.user2.save()

        self.institution_user_url = '/{0}institutions/{1}/users/'.format(
            API_BASE, self.institution._id)
    def setUp(self):
        super(TestInstitutionChangeForm, self).setUp()

        self.user = AuthUserFactory()
        self.institution = InstitutionFactory()

        self.request = RequestFactory().get('/fake_path')
        self.request.user = self.user
        self.view = views.InstitutionChangeForm()
        self.view = setup_form_view(self.view, self.request, form=InstitutionForm())

        self.view.kwargs = {'institution_id': self.institution.id}
Esempio n. 32
0
 def setUp(self):
     super(TestInstitutionList, self).setUp()
     self.institution = InstitutionFactory()
     self.institution2 = InstitutionFactory()
     self.institution_url = '/{}institutions/'.format(API_BASE)