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)
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()
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)
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)
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, }
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
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}
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)
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 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()
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/'
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)
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, }
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}
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)
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()
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()
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)
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}
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()
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, }
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}
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}
def setUp(self): super(TestInstitutionList, self).setUp() self.institution = InstitutionFactory() self.institution2 = InstitutionFactory() self.institution_url = '/{}institutions/'.format(API_BASE)