Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
 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())
Beispiel #4
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))
    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)
Beispiel #7
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)
Beispiel #8
0
    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,
            )
Beispiel #10
0
    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
Beispiel #11
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)
Beispiel #12
0
 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')
Beispiel #13
0
    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()
Beispiel #15
0
    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
Beispiel #16
0
    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
Beispiel #17
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)
Beispiel #18
0
 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)
Beispiel #19
0
 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())
Beispiel #20
0
 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())
Beispiel #21
0
 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())
Beispiel #22
0
 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())
Beispiel #23
0
    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
Beispiel #24
0
 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'])
Beispiel #25
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)
 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)