Esempio n. 1
0
 def test_serialize_revision(self):
     sessions.sessions[request._get_current_object()] = Session()
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 2)
     expected = {
         'index': 1,
         'user': {
             'name': self.user.fullname,
             'url': self.user.url,
         },
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 2,
         'md5': None,
         'sha256': None,
     }
     observed = utils.serialize_revision(
         self.project,
         self.record,
         self.versions[0],
         0,
     )
     assert_equal(expected, observed)
     assert_equal(self.record.get_download_count(), 3)
     assert_equal(self.record.get_download_count(version=2), 1)
     assert_equal(self.record.get_download_count(version=0), 2)
Esempio n. 2
0
def get_cookie_for_user(user):
    sessions = Session.find(Q('data.auth_user_id', 'eq',
                              user._id)).sort('-date_modified')
    if sessions:
        session = sessions[0]
    else:
        session = Session(
            data={
                'auth_user_id': user._id,
                'auth_user_username': user.username,
                'auth_user_fullname': user.fullname,
            })
        session.save()
    signer = itsdangerous.Signer(site_settings.SECRET_KEY)
    return signer.sign(session._id)
Esempio n. 3
0
 def test_anon_revisions(self):
     sessions.sessions[request._get_current_object()] = Session()
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 0)
     utils.update_analytics(self.project, self.record._id, 2)
     expected = {
         'index': 2,
         'user': None,
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 0,
     }
     observed = utils.serialize_revision(self.project,
                                         self.record,
                                         self.versions[0],
                                         1,
                                         anon=True)
     assert_equal(expected, observed)
Esempio n. 4
0
 def test_serialize_revision(self):
     sessions.sessions[request._get_current_object()] = Session()
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 3)
     expected = {
         'index': 1,
         'user': {
             'name': self.user.fullname,
             'url': self.user.url,
         },
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 2,
     }
     observed = utils.serialize_revision(
         self.project,
         self.record,
         self.versions[0],
         1,
     )
     assert_equal(expected, observed)
Esempio n. 5
0
 def setUp(self):
     super(TestClearSessions, self).setUp()
     now = datetime.datetime.utcnow()
     self.dates = [
         now,
         now - relativedelta.relativedelta(months=2),
         now - relativedelta.relativedelta(months=4),
     ]
     self.sessions = [Session() for _ in range(len(self.dates))]
     for session in self.sessions:
         session.save()
     # Manually set `date_created` fields in MongoDB.
     for idx, date in enumerate(self.dates):
         self.session_collection.update(
             {'_id': self.sessions[idx]._id},
             {'$set': {
                 'date_modified': date
             }},
         )
     Session._clear_caches()
     assert_equal(
         Session.find().count(),
         3,
     )
Esempio n. 6
0
 def test_serialize_revision(self):
     sessions.sessions[request._get_current_object()] = Session()
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 1)
     views.update_analytics(self.project, self.path, 3)
     expected = {
         'index': 1,
         'user': {
             'name': self.user.fullname,
             'url': self.user.url,
         },
         'date': self.versions[0].date_created.isoformat(),
         'downloads': 2,
         'urls': {
             'view':
             self.project.web_url_for(
                 'osf_storage_view_file',
                 path=self.path,
                 version=1,
             ),
             'download':
             self.project.web_url_for(
                 'osf_storage_view_file',
                 path=self.path,
                 action='download',
                 version=1,
             ),
         },
     }
     observed = utils.serialize_revision(
         self.project,
         self.record,
         self.versions[0],
         1,
     )
     assert_equal(expected, observed)