Esempio n. 1
0
 def test_get_target(self):
     proj = factories.ProjectFactory()
     reg = factories.RegistrationFactory(project=proj)
     job = ArchiveJob.objects.create(src_node=proj,
                                     dst_node=reg,
                                     initiator=proj.creator)
     job.set_targets()
     osfstorage = job.get_target('osfstorage')
     assert_false(not osfstorage)
     none = job.get_target('fake')
     assert_false(none)
Esempio n. 2
0
    def setUp(self):
        super(TestNodeSerializerAndRegistrationSerializerDifferences,
              self).setUp()

        self.node = factories.ProjectFactory(is_public=True)
        self.registration = factories.RegistrationFactory(project=self.node,
                                                          is_public=True)

        self.url = '/{}nodes/{}/'.format(API_BASE, self.node._id)
        self.reg_url = '/{}registrations/{}/'.format(API_BASE,
                                                     self.registration._id)
Esempio n. 3
0
    def test_has_project(self):
        factories.ProjectFactory(creator=self.user)

        assert_equal(
            landing_page(user=self.user), {
                'has_projects': True,
                'has_draft_registrations': False,
                'campaign_long': 'Prereg Challenge',
                'campaign_short': 'prereg',
                'is_logged_in': True,
            })
Esempio n. 4
0
 def setUp(self):
     super(TestRegistrationRetractions, self).setUp()
     self.user = factories.UserFactory(fullname='Doug Bogie')
     self.title = 'Red Special'
     self.consolidate_auth = Auth(user=self.user)
     self.project = factories.ProjectFactory(
         title=self.title,
         creator=self.user,
         is_public=True,
     )
     self.registration = factories.RegistrationFactory(project=self.project,
                                                       is_public=True)
Esempio n. 5
0
 def test_delete_node(self):
     node = factories.ProjectFactory(is_public=True, title='The Soul Album')
     osf_storage = node.get_addon('osfstorage')
     root = osf_storage.get_root()
     root.append_file('The Dock of the Bay.mp3')
     find = query_file('The Dock of the Bay.mp3')['results']
     assert_equal(len(find), 1)
     node.is_deleted = True
     with run_celery_tasks():
         node.save()
     find = query_file('The Dock of the Bay.mp3')['results']
     assert_equal(len(find), 0)
Esempio n. 6
0
 def test_field_with_two_kwargs(self):
     req = make_drf_request_with_version(version='2.0')
     project = factories.ProjectFactory()
     node = factories.NodeFactory(parent=project)
     data = self.BasicNodeSerializer(
         node, context={'request': req}
     ).data['data']
     field = data['relationships']['two_url_kwargs']['links']
     assert_in(
         '/v2/nodes/{}/node_links/{}/'.format(node._id, node._id),
         field['related']['href']
     )
Esempio n. 7
0
    def setUp(self):
        super(TestSearchViews, self).setUp()
        import website.search.search as search
        search.delete_all()

        robbie = factories.UserFactory(fullname='Robbie Williams')
        self.project = factories.ProjectFactory(creator=robbie)
        self.contrib = factories.UserFactory(fullname='Brian May')
        for i in range(0, 12):
            factories.UserFactory(fullname='Freddie Mercury{}'.format(i))

        self.user_one = factories.AuthUserFactory()
        self.user_two = factories.AuthUserFactory()
        self.project_private_user_one = factories.ProjectFactory(
            title='aaa', creator=self.user_one, is_public=False)
        self.project_private_user_two = factories.ProjectFactory(
            title='aaa', creator=self.user_two, is_public=False)
        self.project_public_user_one = factories.ProjectFactory(
            title='aaa', creator=self.user_one, is_public=True)
        self.project_public_user_two = factories.ProjectFactory(
            title='aaa', creator=self.user_two, is_public=True)
Esempio n. 8
0
 def test_field_with_non_attribute(self):
     req = make_drf_request_with_version(version='2.0')
     project = factories.ProjectFactory()
     node = factories.NodeFactory(parent=project)
     data = self.BasicNodeSerializer(
         node, context={'request': req}
     ).data['data']
     field = data['relationships']['not_attribute_on_target']['links']
     assert_in(
         '/v2/nodes/{}/children/'.format('12345'),
         field['related']['href']
     )
Esempio n. 9
0
    def test_serializing_meta(self):
        req = make_drf_request_with_version(version='2.0')
        project = factories.ProjectFactory()
        node = factories.NodeFactory(parent=project)
        data = self.BasicNodeSerializer(
            node, context={'request': req}
        ).data['data']

        meta = data['relationships']['parent_with_meta']['links']['related']['meta']
        assert_not_in('count', meta)
        assert_in('extra', meta)
        assert_equal(meta['extra'], 'foo')
Esempio n. 10
0
 def test_field_with_two_filters(self):
     req = make_drf_request_with_version(version='2.0')
     project = factories.ProjectFactory()
     node = factories.NodeFactory(parent=project)
     data = self.BasicNodeSerializer(node, context={
         'request': req
     }).data['data']
     field = data['relationships']['field_with_filters']['links']
     assert_in(urllib.quote('filter[target]=hello', safe='?='),
               field['related']['href'])
     assert_in(urllib.quote('filter[woop]=yea', safe='?='),
               field['related']['href'])
Esempio n. 11
0
    def setUp(self):
        super(TestCheckPreregAuth, self).setUp()

        ensure_schemas()
        self.prereg_challenge_admin_user = AuthUserFactory()
        self.prereg_challenge_admin_user.add_system_tag(
            settings.PREREG_ADMIN_TAG)
        self.prereg_challenge_admin_user.save()
        prereg_schema = MetaSchema.find_one(
            Q('name', 'eq', 'Prereg Challenge') & Q('schema_version', 'eq', 2))

        self.user = AuthUserFactory()
        self.node = factories.ProjectFactory(creator=self.user)

        self.parent = factories.ProjectFactory()
        self.child = factories.NodeFactory(parent=self.parent)

        self.draft_registration = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema,
            branched_from=self.parent)
Esempio n. 12
0
 def setUp(self):
     super(TestSearchMigration, self).setUp()
     populate_institutions('test')
     self.es = search.search_engine.CLIENT
     search.delete_index(settings.ELASTIC_INDEX)
     search.create_index(settings.ELASTIC_INDEX)
     self.user = factories.UserFactory(fullname='David Bowie')
     self.project = factories.ProjectFactory(
         title=settings.ELASTIC_INDEX,
         creator=self.user,
         is_public=True
     )
Esempio n. 13
0
    def setUp(self):
        super(TestCheckPreregAuth, self).setUp()

        self.prereg_challenge_admin_user = AuthUserFactory()
        administer_permission = Permission.objects.get(
            codename='administer_prereg')
        self.prereg_challenge_admin_user.user_permissions.add(
            administer_permission)
        self.prereg_challenge_admin_user.save()
        prereg_schema = MetaSchema.objects.get(name='Prereg Challenge',
                                               schema_version=2)

        self.user = AuthUserFactory()
        self.node = factories.ProjectFactory(creator=self.user)

        self.parent = factories.ProjectFactory()
        self.child = factories.NodeFactory(parent=self.parent)

        self.draft_registration = factories.DraftRegistrationFactory(
            initiator=self.user,
            registration_schema=prereg_schema,
            branched_from=self.parent)
Esempio n. 14
0
 def setUp(self):
     super(TestFileAdded, self).setUp()
     self.user = factories.UserFactory()
     self.consolidate_auth = Auth(user=self.user)
     self.project = factories.ProjectFactory()
     self.project_subscription = factories.NotificationSubscriptionFactory(
         _id=self.project._id + '_file_updated',
         owner=self.project,
         event_name='file_updated'
     )
     self.project_subscription.save()
     self.user2 = factories.UserFactory()
     self.event = event_registry['file_added'](self.user2, self.project, 'file_added', payload=file_payload)
Esempio n. 15
0
 def test_archiving_nodes_added_to_search_on_archive_success_if_public(
         self, mock_update_search, mock_send, mock_archive_success):
     proj = factories.ProjectFactory()
     reg = factories.RegistrationFactory(project=proj)
     reg.save()
     with nested(
             mock.patch('osf.models.ArchiveJob.archive_tree_finished',
                        mock.Mock(return_value=True)),
             mock.patch(
                 'osf.models.ArchiveJob.success',
                 mock.PropertyMock(return_value=True))) as (mock_finished,
                                                            mock_success):
         listeners.archive_callback(reg)
     assert_equal(mock_update_search.call_count, 1)
Esempio n. 16
0
 def setUp(self):
     super(TestFileUpdated, self).setUp()
     self.user_1 = factories.AuthUserFactory()
     self.auth = Auth(user=self.user_1)
     self.user_2 = factories.AuthUserFactory()
     self.project = factories.ProjectFactory(creator=self.user_1)
     # subscription
     self.sub = factories.NotificationSubscriptionFactory(
         _id=self.project._id + 'file_updated',
         owner=self.project,
         event_name='file_updated',
     )
     self.sub.save()
     self.event = event_registry['file_updated'](self.user_2, self.project, 'file_updated', payload=file_payload)
Esempio n. 17
0
    def test_self_and_related_fields(self):
        req = make_drf_request_with_version(version='2.0')
        project = factories.ProjectFactory()
        node = factories.NodeFactory(parent=project)
        data = self.BasicNodeSerializer(node, context={
            'request': req
        }).data['data']

        relationship_field = data['relationships']['self_and_related_field'][
            'links']
        assert_in('/v2/nodes/{}/contributors/'.format(node._id),
                  relationship_field['self']['href'])
        assert_in('/v2/nodes/{}/'.format(node._id),
                  relationship_field['related']['href'])
Esempio n. 18
0
 def test_archiving_nodes_not_added_to_search_on_archive_failure(
         self, mock_send, mock_delete_index_node):
     proj = factories.ProjectFactory()
     reg = factories.RegistrationFactory(project=proj)
     reg.save()
     with nested(
             mock.patch(
                 'osf.models.archive.ArchiveJob.archive_tree_finished',
                 mock.Mock(return_value=True)),
             mock.patch(
                 'osf.models.archive.ArchiveJob.success',
                 mock.PropertyMock(return_value=False))) as (mock_finished,
                                                             mock_success):
         listeners.archive_callback(reg)
     assert_true(mock_delete_index_node.called)
Esempio n. 19
0
    def test_field_with_callable_related_attrs(self):
        req = make_drf_request_with_version(version='2.0')
        project = factories.ProjectFactory()
        node = factories.NodeFactory(parent=project)
        data = self.BasicNodeSerializer(node, context={
            'request': req
        }).data['data']
        assert_not_in('registered_from', data['relationships'])

        registration = factories.RegistrationFactory(project=node)
        data = self.BasicNodeSerializer(registration, context={
            'request': req
        }).data['data']
        field = data['relationships']['registered_from']['links']
        assert_in('/v2/nodes/{}/'.format(node._id), field['related']['href'])
Esempio n. 20
0
 def test_on_reject(self, mock_send_mail):
     user = factories.UserFactory()
     approval = DraftRegistrationApproval(
         meta={'registration_choice': 'immediate'})
     approval.save()
     project = factories.ProjectFactory(creator=user)
     registration_schema = MetaSchema.objects.get(name='Prereg Challenge',
                                                  schema_version=2)
     draft = factories.DraftRegistrationFactory(
         branched_from=project,
         registration_schema=registration_schema,
     )
     draft.approval = approval
     draft.save()
     approval._on_reject(user)
     assert approval.meta == {}
     assert mock_send_mail.call_count == 1
Esempio n. 21
0
 def setUp(self):
     super(TestCategorizeUsers, self).setUp()
     self.user_1 = factories.AuthUserFactory()
     self.auth = Auth(user=self.user_1)
     self.user_2 = factories.AuthUserFactory()
     self.user_3 = factories.AuthUserFactory()
     self.user_4 = factories.AuthUserFactory()
     self.project = factories.ProjectFactory(creator=self.user_1)
     self.private_node = factories.NodeFactory(
         parent=self.project, is_public=False, creator=self.user_1
     )
     # Payload
     file_moved_payload = file_move_payload(self.private_node, self.project)
     self.event = event_registry['addon_file_moved'](
         self.user_2, self.private_node, 'addon_file_moved',
         payload=file_moved_payload
     )
     # Subscriptions
     # for parent node
     self.sub = factories.NotificationSubscriptionFactory(
         _id=self.project._id + '_file_updated',
         owner=self.project,
         event_name='file_updated'
     )
     self.sub.save()
     # for private node
     self.private_sub = factories.NotificationSubscriptionFactory(
         _id=self.private_node._id + '_file_updated',
         owner=self.private_node,
         event_name='file_updated'
     )
     self.private_sub.save()
     # for file subscription
     self.file_sub = factories.NotificationSubscriptionFactory(
         _id='{pid}_{wbid}_file_updated'.format(
             pid=self.project._id,
             wbid=self.event.waterbutler_id
         ),
         owner=self.project,
         event_name='xyz42_file_updated'
     )
     self.file_sub.save()
Esempio n. 22
0
    def setUp(self):
        super(TestFolderFileRenamed, self).setUp()
        self.user_1 = factories.AuthUserFactory()
        self.auth = Auth(user=self.user_1)
        self.user_2 = factories.AuthUserFactory()
        self.project = factories.ProjectFactory(creator=self.user_1)
        # subscription
        self.sub = factories.NotificationSubscriptionFactory(
            _id=self.project._id + 'file_updated',
            owner=self.project,
            event_name='file_updated',
        )
        self.sub.save()

        # Payload
        file_renamed_payload = file_move_payload(self.project, self.project)
        self.event = event_registry['addon_file_renamed'](
            self.user_1, self.project, 'addon_file_renamed',
            payload=file_renamed_payload
        )
        self.sub.email_digest.add(self.user_2)
        self.sub.save()
Esempio n. 23
0
    def test_on_complete_immediate_creates_registration_for_draft_initiator(
            self, mock_enquque):
        user = factories.UserFactory()
        project = factories.ProjectFactory(creator=user)
        registration_schema = MetaSchema.objects.get(name='Prereg Challenge',
                                                     schema_version=2)
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        approval = DraftRegistrationApproval(
            meta={'registration_choice': 'immediate'})
        approval.save()
        draft.approval = approval
        draft.save()
        approval._on_complete(user)
        draft.reload()
        registered_node = draft.registered_node

        assert registered_node is not None
        assert registered_node.is_pending_registration
        assert registered_node.registered_user == draft.initiator
Esempio n. 24
0
 def setUp(self):
     with run_celery_tasks():
         super(TestPublicNodes, self).setUp()
         self.user = factories.UserFactory(fullname='Doug Bogie')
         self.title = 'Red Special'
         self.consolidate_auth = Auth(user=self.user)
         self.project = factories.ProjectFactory(
             title=self.title,
             creator=self.user,
             is_public=True,
         )
         self.component = factories.NodeFactory(parent=self.project,
                                                title=self.title,
                                                creator=self.user,
                                                is_public=True)
         self.registration = factories.RegistrationFactory(
             title=self.title,
             creator=self.user,
             is_public=True,
         )
         self.registration.archive_job.target_addons = []
         self.registration.archive_job.status = 'SUCCESS'
         self.registration.archive_job.save()
Esempio n. 25
0
    def test_has_project(self):
        factories.ProjectFactory(creator=self.user)

        assert_equal(
            landing_page(user=self.user), {
                'has_projects':
                True,
                'has_draft_registrations':
                False,
                'campaign_long':
                'Prereg Challenge',
                'campaign_short':
                'prereg_challenge',
                'is_logged_in':
                True,
                'sign_up_url':
                '{}register/?campaign=prereg&next=http%3A%2F%2Flocalhost%2F'.
                format(DOMAIN),
            })

        with override_switch(name=OSF_PREREGISTRATION, active=True):
            assert_equal(
                landing_page(user=self.user), {
                    'has_projects':
                    True,
                    'has_draft_registrations':
                    False,
                    'campaign_long':
                    'OSF Preregistration',
                    'campaign_short':
                    'prereg',
                    'is_logged_in':
                    True,
                    'sign_up_url':
                    '{}register/?campaign=prereg&next=http%3A%2F%2Flocalhost%2F'
                    .format(DOMAIN),
                })
Esempio n. 26
0
 def setUp(self):
     super(TestEventExists, self).setUp()
     self.user = factories.UserFactory()
     self.consolidate_auth = Auth(user=self.user)
     self.node = factories.ProjectFactory(creator=self.user)
Esempio n. 27
0
 def test_archiving_registrations_not_added_to_search_before_archival(self, mock_update_search):
     proj = factories.ProjectFactory()
     reg = factories.RegistrationFactory(project=proj)
     reg.save()
     assert_false(mock_update_search.called)
Esempio n. 28
0
 def node(self, user):
     return factories.ProjectFactory(creator=user)
Esempio n. 29
0
 def setUp(self):
     super(TestProject, self).setUp()
     search.delete_index(elastic_search.INDEX)
     search.create_index(elastic_search.INDEX)
     self.user = factories.UserFactory(fullname='John Deacon')
     self.project = factories.ProjectFactory(title='Red Special', creator=self.user)
Esempio n. 30
0
 def setUp(self):
     super(TestSearchFiles, self).setUp()
     self.node = factories.ProjectFactory(is_public=True, title='Otis')
     self.osf_storage = self.node.get_addon('osfstorage')
     self.root = self.osf_storage.get_root()