예제 #1
0
    def setUp(self):
        super(TestCallbacks, self).setUp()

        self.user = UserFactory()
        self.user.add_addon('twofactor')
        self.user_settings = self.user.get_addon('twofactor')
예제 #2
0
def user():
    return UserFactory()
예제 #3
0
 def setUp(self):
     super(TestDisabledUser, self).setUp()
     self.user = UserFactory()
     self.user.set_password('Korben Dallas')
     self.user.is_disabled = True
     self.user.save()
예제 #4
0
    def setUp(self):
        super(TestPreregFiles, self).setUp()
        self.prereg_user = AuthUserFactory()
        self.user = AuthUserFactory()
        self.node = ProjectFactory(creator=self.user)

        prereg_schema = get_prereg_schema()
        self.d_of_qs = {
            'q7': OsfStorageFileNode(node=self.node, name='7'),
            'q11': OsfStorageFileNode(node=self.node, name='11'),
            'q16': OsfStorageFileNode(node=self.node, name='16'),
            'q12': OsfStorageFileNode(node=self.node, name='12'),
            'q13': OsfStorageFileNode(node=self.node, name='13'),
            'q19': OsfStorageFileNode(node=self.node, name='19'),
            'q26': OsfStorageFileNode(node=self.node, name='26')
        }
        data = {}
        for q, f in self.d_of_qs.iteritems():
            guid = f.get_guid(create=True)._id
            f.save()
            if q == 'q26':
                data[q] = {
                    'comments': [],
                    'value':
                    '26',
                    'extra': [{
                        'data': {
                            'provider': 'osfstorage',
                            'path': f.path,
                        },
                        'fileId': guid,
                        'nodeId': self.node._id,
                    }]
                }
                continue
            data[q] = {
                'value': {
                    'uploader': {
                        'extra': [{
                            'data': {
                                'provider': 'osfstorage',
                                'path': f.path,
                            },
                            'fileId': guid,
                            'nodeId': self.node._id,
                        }]
                    }
                }
            }
        self.draft = DraftRegistrationFactory(
            initiator=self.user,
            branched_from=self.node,
            registration_schema=prereg_schema,
            registration_metadata=data)

        self.prereg_user.save()
        self.admin_user = UserFactory()
        self.admin_user.is_superuser = True
        self.admin_user.groups.add(Group.objects.get(name='prereg_admin'))
        self.admin_user.groups.add(Group.objects.get(name='prereg_view'))
        self.admin_user.save()
예제 #5
0
    def test_data_storage_usage_command(self):
        import logging
        logger = logging.getLogger(__name__)

        expected_summary_data = OrderedDict([
            ('date', None),
            ('total', 0),
            ('deleted', 0),
            ('registrations', 0),
            ('nd_quick_files', 0),
            ('nd_public_nodes', 0),
            ('nd_private_nodes', 0),
            ('nd_preprints', 0),
            ('nd_supp_nodes', 0),
            ('canada_montreal', 0),
            ('australia_sydney', 0),
            ('germany_frankfurt', 0),
            ('united_states', 0),
        ])
        user = UserFactory()
        user_addon = user.get_addon('osfstorage')
        user_addon.default_region_id = self.region_us
        region_ca = RegionFactory(_id='CA-1', name=u'Canada - Montréal')
        region_de = RegionFactory(_id='DE-1', name='Germany - Frankfurt')
        region_au = RegionFactory(_id='AU-1', name='Australia - Sydney')

        project_public_us = self.project(creator=user, is_public=True)
        small_size = next_file_size()
        file_size = next(small_size)
        project_public_us_test_file = create_test_file(
            target=project_public_us, user=user, size=file_size)
        logger.debug(u'Public project, US: {}'.format(file_size))
        expected_summary_data['total'] += file_size
        expected_summary_data['nd_public_nodes'] += file_size
        expected_summary_data['united_states'] += file_size
        file_size = next(small_size)
        self.add_file_version(
            project_public_us_test_file,
            user=user,
            size=file_size,
        )
        logger.debug(u'Public project file version, US: {}'.format(file_size))
        expected_summary_data['total'] += file_size
        expected_summary_data['nd_public_nodes'] += file_size
        expected_summary_data['united_states'] += file_size

        project_private_au = self.project(creator=user,
                                          is_public=False,
                                          region=region_au)
        file_size = next(small_size)
        create_test_file(target=project_private_au, user=user, size=file_size)
        logger.debug(u'Private project, AU: {}'.format(file_size))
        expected_summary_data['total'] += file_size
        expected_summary_data['nd_private_nodes'] += file_size
        expected_summary_data['australia_sydney'] += file_size

        component_private_small_deleted_de = self.project(
            creator=user,
            is_public=False,
            region=region_de,
            parent=project_public_us)
        file_size = next(small_size)
        deleted_file = create_test_file(
            target=component_private_small_deleted_de,
            user=user,
            size=file_size,
        )
        logger.debug('Before deletion: {}'.format(deleted_file.target.title))

        deleted_file.delete(user=user, save=True)
        logger.debug(u'Deleted project, DE: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['deleted'] += file_size
        expected_summary_data['germany_frankfurt'] += file_size
        logger.debug('After deletion: {}'.format(deleted_file.target.title))

        file_size = next(small_size)
        PreprintFactory(creator=user, file_size=file_size)  # preprint_us
        logger.debug(u'Preprint, US: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['nd_preprints'] += file_size
        expected_summary_data['united_states'] += file_size

        user_addon.default_region_id = region_ca
        user_addon.save()
        file_size = next(small_size)
        preprint_with_supplement_ca = PreprintFactory(creator=user,
                                                      file_size=file_size)
        logger.debug(u'Preprint, CA: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['nd_preprints'] += file_size
        expected_summary_data['canada_montreal'] += file_size
        user_addon.default_region_id = self.region_us
        user_addon.save()
        supplementary_node_public_au = self.project(creator=user,
                                                    is_public=True,
                                                    region=region_au)
        preprint_with_supplement_ca.node = supplementary_node_public_au
        preprint_with_supplement_ca.save()
        file_size = next(small_size)
        create_test_file(target=supplementary_node_public_au,
                         user=user,
                         size=file_size)
        logger.debug(
            u'Public supplemental project of Canadian preprint, US: {}'.format(
                file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['nd_supp_nodes'] += file_size
        expected_summary_data['nd_public_nodes'] += file_size
        expected_summary_data['australia_sydney'] += file_size

        file_size = next(small_size)
        withdrawn_preprint_us = PreprintFactory(creator=user,
                                                file_size=file_size)
        withdrawn_preprint_us.date_withdrawn = timezone.now()
        withdrawn_preprint_us.save()
        logger.debug(u'Withdrawn preprint, US: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['nd_preprints'] += file_size
        expected_summary_data['united_states'] += file_size

        quickfiles_node_us = QuickFilesNode.objects.get(creator=user)
        file_size = next(small_size)
        create_test_file(target=quickfiles_node_us, user=user, size=file_size)
        logger.debug(u'Quickfile, US: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['nd_quick_files'] += file_size
        expected_summary_data['united_states'] += file_size

        file_size = next(small_size)
        quickfile_deleted = create_test_file(filename='deleted_test_file',
                                             target=quickfiles_node_us,
                                             user=user,
                                             size=file_size)
        quickfile_deleted.delete(user=user, save=True)
        logger.debug(u'Deleted quickfile, US: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['deleted'] += file_size
        expected_summary_data['united_states'] += file_size

        project_to_register_us = self.project(creator=user,
                                              is_public=True,
                                              region=self.region_us)

        registration = self.registration(project=project_to_register_us,
                                         creator=user)
        file_size = next(small_size)
        create_test_file(target=registration, user=user, size=file_size)
        assert registration.get_addon('osfstorage').region == self.region_us
        logger.debug(u'Registration, US: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['united_states'] += file_size
        expected_summary_data['registrations'] += file_size

        withdrawal = self.registration(project=project_to_register_us,
                                       creator=user,
                                       withdrawn=True)
        file_size = next(small_size)
        create_test_file(target=withdrawal, user=user, size=file_size)
        logger.debug(u'Withdrawn registration, US: {}'.format(file_size))

        expected_summary_data['total'] += file_size
        expected_summary_data['united_states'] += file_size
        expected_summary_data['registrations'] += file_size

        actual_summary_data = process_usages(dry_run=True, page_size=2)

        actual_keys = actual_summary_data.keys()
        for key in actual_summary_data:
            logger.info('Actual field: {}'.format(key))
        expected_keys = expected_summary_data.keys()
        for key in expected_summary_data:
            logger.info('Expected field: {}'.format(key))
        assert actual_keys == expected_keys
        assert len(actual_keys) != 0

        for key in actual_keys:
            if key != 'date':
                assert (key, expected_summary_data[key]) == (
                    key, actual_summary_data[key])
예제 #6
0
    def test__get_readable_descendants_masked_by_permissions(self):
        # Users should be able to see through components they do not have
        # permissions to.
        # Users should not be able to see through links to nodes they do not
        # have permissions to.
        #
        #                   1(AB)
        #                  /  |  \
        #                 *   |   \
        #                /    |    \
        #             2(A)  4(B)    7(A)
        #               |     |     |    \
        #               |     |     |     \
        #             3(AB) 5(B)    8(AB) 9(B)
        #                     |
        #                     |
        #                   6(A)
        #
        #
        userA = UserFactory(fullname='User A')
        userB = UserFactory(fullname='User B')

        project1 = ProjectFactory(creator=self.user, title='One')
        project1.add_contributor(userA,
                                 auth=Auth(self.user),
                                 permissions=['read'])
        project1.add_contributor(userB,
                                 auth=Auth(self.user),
                                 permissions=['read'])

        component2 = ProjectFactory(creator=self.user, title='Two')
        component2.add_contributor(userA,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component3 = ProjectFactory(creator=self.user, title='Three')
        component3.add_contributor(userA,
                                   auth=Auth(self.user),
                                   permissions=['read'])
        component3.add_contributor(userB,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component4 = ProjectFactory(creator=self.user, title='Four')
        component4.add_contributor(userB,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component5 = ProjectFactory(creator=self.user, title='Five')
        component5.add_contributor(userB,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component6 = ProjectFactory(creator=self.user, title='Six')
        component6.add_contributor(userA,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component7 = ProjectFactory(creator=self.user, title='Seven')
        component7.add_contributor(userA,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component8 = ProjectFactory(creator=self.user, title='Eight')
        component8.add_contributor(userA,
                                   auth=Auth(self.user),
                                   permissions=['read'])
        component8.add_contributor(userB,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        component9 = ProjectFactory(creator=self.user, title='Nine')
        component9.add_contributor(userB,
                                   auth=Auth(self.user),
                                   permissions=['read'])

        project1.add_pointer(component2, Auth(self.user))
        NodeRelation.objects.create(parent=project1, child=component4)
        NodeRelation.objects.create(parent=project1, child=component7)
        NodeRelation.objects.create(parent=component2, child=component3)
        NodeRelation.objects.create(parent=component4, child=component5)
        NodeRelation.objects.create(parent=component5, child=component6)
        NodeRelation.objects.create(parent=component7, child=component8)
        NodeRelation.objects.create(parent=component7, child=component9)

        nodes, all_readable = _get_readable_descendants(auth=Auth(userA),
                                                        node=project1)
        assert_equal(len(nodes), 3)
        assert_false(all_readable)

        for node in nodes:
            assert_in(node.title, ['Two', 'Six', 'Seven'])

        nodes, all_readable = _get_readable_descendants(auth=Auth(userB),
                                                        node=project1)
        assert_equal(len(nodes), 3)
        assert_false(all_readable)
        for node in nodes:
            assert_in(node.title, ['Four', 'Eight', 'Nine'])
예제 #7
0
 def test_get_or_create_user_exists(self):
     user = UserFactory()
     fetched, created = get_or_create_user(user.fullname, user.username, is_spam=True)
     assert_false(created)
     assert_equal(user._id, fetched._id)
     assert_false('is_spam' in fetched.system_tags)
예제 #8
0
 def setUp(self):
     super(TestCASExternalLogin, self).setUp()
     self.user = UserFactory()
예제 #9
0
파일: test_auth.py 프로젝트: envobe/osf.io
 def test_get_user_by_id(self):
     user = UserFactory()
     assert_equal(OSFUser.load(user._id), user)
예제 #10
0
 def creator(self):
     return UserFactory()
예제 #11
0
 def setUp(self):
     self.user = UserFactory()
예제 #12
0
def make_user(username, fullname):
    return UserFactory(username=username, fullname=fullname)
예제 #13
0
 def test_to_json(self):
     settings = self.node_settings
     user = UserFactory()
     result = settings.to_json(user)
     assert_equal(result['addon_short_name'], self.short_name)
예제 #14
0
 def setUp(self):
     super(TestCiteprocpy, self).setUp()
     self.user = UserFactory(fullname='Henrique Harman')
예제 #15
0
 def setUp(self):
     super(TestViewProjectEmbeds, self).setUp()
     self.user = UserFactory()
     self.project = ProjectFactory(creator=self.user)
예제 #16
0
파일: test_auth.py 프로젝트: envobe/osf.io
 def test_get_user_by_email(self):
     user = UserFactory()
     assert_equal(auth.get_user(email=user.username), user)
예제 #17
0
 def setUp(self):
     OsfTestCase.setUp(self)
     self.user = UserFactory()
예제 #18
0
파일: test_auth.py 프로젝트: envobe/osf.io
 def test_logged_in(self):
     user = UserFactory()
     auth_obj = Auth(user=user)
     assert_true(auth_obj.logged_in)
     auth2 = Auth(user=None)
     assert_false(auth2.logged_in)
예제 #19
0
 def setUp(self):
     super(TestExternalProviderOAuth2, self).setUp()
     self.user = UserFactory()
     self.provider = MockOAuth2Provider()
예제 #20
0
파일: test_auth.py 프로젝트: envobe/osf.io
 def test_must_be_logged_in_decorator_with_user(self, mock_from_kwargs):
     user = UserFactory()
     mock_from_kwargs.return_value = Auth(user=user)
     protected()
 def setUp(self):
     super(TestSendQueuedMails, self).setUp()
     self.user = UserFactory()
     self.user.date_last_login = timezone.now()
     self.user.osf_mailing_lists[settings.OSF_HELP_LIST] = True
     self.user.save()
예제 #22
0
 def user_one(self):
     user = UserFactory()
     user.set_password('password1')
     user.auth = (user.username, 'password1')
     user.save()
     return user
예제 #23
0
 def setUp(self):
     super(TestNodeSerializer, self).setUp()
     self.user = UserFactory()
예제 #24
0
파일: test_utils.py 프로젝트: jwalz/osf.io
 def user(self):
     return UserFactory()
예제 #25
0
 def setUp(self):
     self.user = UserFactory()
     self.request = RequestFactory().post('/fake_path')
     self.view = views.UserDeleteView
     self.view = setup_log_view(self.view, self.request, guid=self.user._id)
예제 #26
0
 def test_before_page_load_not_contributor(self):
     message = self.node_settings.before_page_load(self.project,
                                                   UserFactory())
     assert_false(message)
예제 #27
0
 def test_sees_another_profile(self):
     user2 = UserFactory()
     res = self.app.get(user2.url, auth=self.auth)
     td1 = res.html.find('td', text=re.compile(r'Public(.*?)Profile'))
     td2 = td1.find_next_sibling('td')
     assert_equal(td2.text, user2.display_absolute_url)
예제 #28
0
 def setUp(self):
     super(TestViewProject, self).setUp()
     self.user = UserFactory()
     self.node = ProjectFactory(creator=self.user)
예제 #29
0
 def setUp(self):
     super(TestResendConfirmation, self).setUp()
     self.unconfirmed_user = UnconfirmedUserFactory()
     self.confirmed_user = UserFactory()
     self.get_url = web_url_for('resend_confirmation_get')
     self.post_url = web_url_for('resend_confirmation_post')
예제 #30
0
 def setUp(self):
     super(TestOAuthScopedAccess, self).setUp()
     self.user = UserFactory()
     self.user2 = UserFactory()  # Todo move inside tests that need this
     self.project = ProjectFactory(creator=self.user)