def test_approval_after_initiator_is_merged_into_another_user( self, mock_enqueue): approver = factories.UserFactory() administer_permission = Permission.objects.get( codename='administer_prereg') approver.user_permissions.add(administer_permission) approver.save() mergee = factories.UserFactory(fullname='Manny Mergee') merger = factories.UserFactory(fullname='Merve Merger') project = factories.ProjectFactory(creator=mergee) registration_schema = RegistrationSchema.objects.get( name='Prereg Challenge', schema_version=2) draft = factories.DraftRegistrationFactory( branched_from=project, registration_schema=registration_schema, ) merger.merge_user(mergee) approval = DraftRegistrationApproval( meta={'registration_choice': 'immediate'}) approval.save() draft.approval = approval draft.save() approval.approve(approver) draft.reload() registered_node = draft.registered_node assert registered_node.registered_user == merger
def test_approval_after_initiator_is_merged_into_another_user( self, mock_enqueue): approver = factories.UserFactory() approver.add_system_tag(settings.PREREG_ADMIN_TAG) mergee = factories.UserFactory(fullname='Manny Mergee') merger = factories.UserFactory(fullname='Merve Merger') project = factories.ProjectFactory(creator=mergee) registration_schema = MetaSchema.objects.get(name='Prereg Challenge', schema_version=2) draft = factories.DraftRegistrationFactory( branched_from=project, registration_schema=registration_schema, ) merger.merge_user(mergee) approval = DraftRegistrationApproval( meta={'registration_choice': 'immediate'}) approval.save() draft.approval = approval draft.save() approval.approve(approver) draft.reload() registered_node = draft.registered_node assert registered_node.registered_user == merger
def test_user_is_not_active_is_merged(self, mock_mail): user = factories.UserFactory() other_user = factories.UserFactory() user.merged_by = other_user user.save() mail = self.queue_mail( user=user, mail=mails.NO_ADDON, ) assert_false(mail.send_mail())
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))
def setUp(self): self.name1 = 'Roger1 Taylor1' self.name2 = 'John2 Deacon2' self.name3 = u'j\xc3\xb3ebert3 Smith3' self.name4 = u'B\xc3\xb3bbert4 Jones4' with run_celery_tasks(): super(TestAddContributor, self).setUp() self.user = factories.UserFactory(fullname=self.name1) self.user3 = factories.UserFactory(fullname=self.name3)
def test_merged_user(self): user = factories.UserFactory(fullname='Annie Lennox') merged_user = factories.UserFactory(fullname='Lisa Stansfield') user.save() merged_user.save() assert_equal(len(query_user(user.fullname)['results']), 1) assert_equal(len(query_user(merged_user.fullname)['results']), 1) user.merge_user(merged_user) assert_equal(len(query_user(user.fullname)['results']), 1) assert_equal(len(query_user(merged_user.fullname)['results']), 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)
def test_on_complete_embargo_creates_registration_for_draft_initiator( self, mock_enquque): user = factories.UserFactory() end_date = timezone.now() + datetime.timedelta( days=366) # <- leap year approval = DraftRegistrationApproval( meta={ 'registration_choice': 'embargo', 'embargo_end_date': end_date.isoformat() }) 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_complete(user) draft.reload() registered_node = draft.registered_node assert registered_node is not None assert registered_node.is_pending_embargo assert registered_node.registered_user == draft.initiator
def setUp(self): self.singular = 'Spanish Inquisition' self.plural = 'Spanish Inquisitions' self.possessive = 'Spanish\'s Inquisition' with run_celery_tasks(): super(TestProjectSearchResults, self).setUp() self.user = factories.UserFactory(fullname='Doug Bogie') self.project_singular = factories.ProjectFactory( title=self.singular, creator=self.user, is_public=True, ) self.project_plural = factories.ProjectFactory( title=self.plural, creator=self.user, is_public=True, ) self.project_possessive = factories.ProjectFactory( title=self.possessive, creator=self.user, is_public=True, ) self.project_unrelated = factories.ProjectFactory( title='Cardinal Richelieu', creator=self.user, is_public=True, )
def test_on_complete_immediate_creates_registration_for_draft_initiator(self, mock_enquque): ensure_schemas() user = factories.UserFactory() project = factories.ProjectFactory(creator=user) registration_schema = MetaSchema.find_one( Q('name', 'eq', 'Prereg Challenge') & Q('schema_version', 'eq', 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): 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(TestEventNotImplemented, self).setUp() self.user = factories.UserFactory() self.auth = Auth(user=self.user) self.node = factories.ProjectFactory(creator=self.user) self.event = self.NotImplementedEvent(self.user, self.node, 'not_implemented')
def setUp(self): super(TestCollectionsSearch, self).setUp() search.delete_index(elastic_search.INDEX) search.create_index(elastic_search.INDEX) self.user = factories.UserFactory(fullname='Salif Keita') self.node_private = factories.NodeFactory(creator=self.user, title='Salif Keita: Madan', is_public=False) self.node_public = factories.NodeFactory(creator=self.user, title='Salif Keita: Yamore', is_public=True) self.node_one = factories.NodeFactory(creator=self.user, title='Salif Keita: Mandjou', is_public=True) self.node_two = factories.NodeFactory(creator=self.user, title='Salif Keita: Tekere', is_public=True) self.provider = factories.CollectionProviderFactory() self.collection_one = factories.CollectionFactory( title='Life of Salif Keita', creator=self.user, is_public=True, provider=self.provider) self.collection_public = factories.CollectionFactory( title='Best of Salif Keita', creator=self.user, is_public=True, provider=self.provider) self.collection_private = factories.CollectionFactory( title='Commentary: Best of Salif Keita', creator=self.user, is_public=False, provider=self.provider)
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_unmoderated_accept_sets_state_to_approved(self, mock_update_search): user = factories.UserFactory() registration = factories.RegistrationFactory(creator=user) registration.require_approval(user) assert registration.registration_approval.is_pending_approval is True # sanity check registration.registration_approval.accept() assert registration.registration_approval.is_pending_approval is False
def test_on_complete_sets_state_to_approved(self, mock_update_search): user = factories.UserFactory() registration = factories.RegistrationFactory(creator=user) registration.require_approval(user) assert registration.registration_approval.is_pending_approval is True # sanity check registration.registration_approval._on_complete(None) assert registration.registration_approval.is_pending_approval is False
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_finding_other_emails_sent_to_user(self, mock_mail): user = factories.UserFactory() mail = self.queue_mail( user=user, mail=mails.NO_ADDON, ) assert_equal(len(mail.find_sent_of_same_type_and_user()), 0) mail.send_mail() assert_equal(len(mail.find_sent_of_same_type_and_user()), 1)
def test_user_is_not_active_is_not_confirmed(self, mock_mail): user = factories.UserFactory() user.date_confirmed = None user.save() mail = self.queue_mail( user=user, mail=mails.NO_ADDON, ) assert_false(mail.send_mail())
def test_user_is_not_active_not_registered(self, mock_mail): user = factories.UserFactory() user.is_registered = False user.save() mail = self.queue_mail( user=user, mail=mails.NO_ADDON, ) assert_false(mail.send_mail())
def test_user_is_not_active_no_password(self, mock_mail): user = factories.UserFactory() user.set_unusable_password() user.save() mail = self.queue_mail( user=user, mail=mails.NO_ADDON, ) assert_false(mail.send_mail())
def test_user_is_not_active_is_disabled(self, mock_mail): user = factories.UserFactory() user.date_disabled = timezone.now() user.save() mail = self.queue_mail( user=user, mail=mails.NO_ADDON, ) assert_false(mail.send_mail())
def setUp(self): super(ArchiverTestCase, self).setUp() handlers.celery_before_request() self.user = factories.UserFactory() self.auth = Auth(user=self.user) self.src = factories.NodeFactory(creator=self.user) self.dst = factories.RegistrationFactory(user=self.user, project=self.src, send_signals=False) archiver_utils.before_archive(self.dst, self.user) self.archive_job = self.dst.archive_job
def test_search_profile(self): orcid = '123456' user = factories.UserFactory() user.social['orcid'] = orcid user.save() contribs = search.search_contributor(orcid) assert_equal(len(contribs['users']), 1) assert_equal(len(contribs['users'][0]['social']), 1) assert_equal(contribs['users'][0]['social']['orcid'], user.social_links['orcid'])
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 test_connection_error(self): # Ensures that saving projects/users doesn't break as a result of connection errors self.user = factories.UserFactory(fullname='Doug Bogie') self.project = factories.ProjectFactory( title="Tom Sawyer", creator=self.user, is_public=True, ) self.user.save() self.project.save()
def test_remove_contributor(self): # Add and remove a contributor, then verify that project is not found # when searching for contributor. user2 = factories.UserFactory(fullname='Brian May') self.project.add_contributor(user2, save=True) self.project.remove_contributor(user2, self.consolidate_auth) docs = query('category:project AND "{}"'.format(user2.fullname))['results'] assert_equal(len(docs), 0)
def test_name_fields(self): names = ['Bill Nye', 'William', 'the science guy', 'Sanford', 'the Great'] user = factories.UserFactory(fullname=names[0]) user.given_name = names[1] user.middle_names = names[2] user.family_name = names[3] user.suffix = names[4] user.save() docs = [query_user(name)['results'] for name in names] assert_equal(sum(map(len, docs)), len(docs)) # 1 result each assert_true(all([user._id == doc[0]['id'] for doc in docs]))
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_hide_contributor(self): user2 = factories.UserFactory(fullname='Brian May') self.project.add_contributor(user2) with run_celery_tasks(): self.project.set_visible(user2, False, save=True) docs = query('category:project AND "{}"'.format(user2.fullname))['results'] assert_equal(len(docs), 0) with run_celery_tasks(): self.project.set_visible(user2, True, save=True) docs = query('category:project AND "{}"'.format(user2.fullname))['results'] assert_equal(len(docs), 1)