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)
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)
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, })
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)
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)
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'] )
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)
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'] )
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')
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'])
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)
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 )
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)
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)
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)
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)
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'])
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)
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'])
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
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()
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()
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
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()
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), })
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)
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)
def node(self, user): return factories.ProjectFactory(creator=user)
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)
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()