class TestEnsureLogDates(OsfTestCase): def setUp(self): super(TestEnsureLogDates, self).setUp() self.good_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.bad_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.mongo = self.good_log._storage[0].db['nodelog'] self.mongo.update( {'_id': self.bad_log._id}, { '$set': { 'date': datetime.datetime.utcnow() - datetime.timedelta(weeks=52) } }, ) self.bad_log.reload() def tearDown(self): super(TestEnsureLogDates, self).tearDown() def test_find_invalid_logs(self): assert_equal(1, len(list(find_invalid_logs()))) def test_fix_invalid_log(self): fix_invalid_log(self.bad_log) assert_true(self.good_log.date - self.bad_log.date < datetime.timedelta(seconds=1))
class TestEnsureLogDates(OsfTestCase): def setUp(self): super(TestEnsureLogDates, self).setUp() self.good_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.bad_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.mongo = self.good_log._storage[0].db['nodelog'] self.mongo.update( {'_id': self.bad_log._id}, {'$set': {'date': timezone.now() - datetime.timedelta(weeks=52)}}, ) self.bad_log.reload() def tearDown(self): super(TestEnsureLogDates, self).tearDown() def test_find_invalid_logs(self): assert_equal( 1, len(list(find_invalid_logs())) ) def test_fix_invalid_log(self): fix_invalid_log(self.bad_log) assert_true( self.good_log.date - self.bad_log.date < datetime.timedelta(seconds=1) )
def setUp(self): super(TestNodeLogAnalytics, self).setUp() self.user_one = UserFactory() self.user_two = UserFactory() # Two node logs for user one self.node_log_node_created = NodeLogFactory(action='node_created', user=self.user_one) self.node_log_file_added = NodeLogFactory(action='file_added', user=self.user_one) # Two node logs for user two self.node_log_wiki_updated = NodeLogFactory(action='wiki_updated', user=self.user_two) self.node_log_project_created = NodeLogFactory(action='project_created', user=self.user_two) self.end_date = datetime.datetime.utcnow() - datetime.timedelta(1) for node_log in NodeLog.find(): node_log.date = self.end_date - datetime.timedelta(0.1) node_log.save() self.results = NodeLogEvents().get_events(self.end_date.date()) self.node_log_node_created.reload() self.node_log_file_added.reload() self.node_log_wiki_updated.reload() self.node_log_project_created.reload()
def setUp(self): self.yesterday = datetime.today() - timedelta(1) self.a_while_ago = datetime.today() - timedelta(2) super(TestUserCount, self).setUp() for i in range(0, 3): u = AuthUserFactory() u.is_registered = True u.password = '******' + str(i) u.date_confirmed = self.yesterday u.save() # Make one of those 3 a depth user for i in range(LOG_THRESHOLD + 1): NodeLogFactory(action='file_added', user=u) u = AuthUserFactory() u.is_registered = True u.password = '******' u.date_confirmed = self.a_while_ago u.save() for i in range(LOG_THRESHOLD + 1): NodeLogFactory(action='file_added', user=u) for i in range(0, 2): u = AuthUserFactory() u.date_confirmed = None u.save() u = AuthUserFactory() u.date_disabled = self.yesterday u.save() u = AuthUserFactory() u.date_disabled = self.a_while_ago u.save() modify_user_dates_in_mongo(self.yesterday)
def test_fix_node_param_for_embargo_approved_no_user_log(self): project = ProjectFactory() registration = RegistrationFactory(project=project) embargo_approved_log = NodeLogFactory(action=NodeLog.EMBARGO_APPROVED, params={'node': registration._id}) fix_embargo_approved_logs([embargo_approved_log]) embargo_approved_log.reload() assert_equal(embargo_approved_log.params['node'], project._id) assert_equal(embargo_approved_log.params['registration'], registration._id)
def setUp(self): super(TestNodeLogAnalytics, self).setUp() self.user_one = UserFactory() self.user_two = UserFactory() # Two node logs for user one self.node_log_node_created = NodeLogFactory(action='node_created', user=self.user_one) self.node_log_file_added = NodeLogFactory(action='file_added', user=self.user_one) # Two node logs for user two self.node_log_wiki_updated = NodeLogFactory(action='wiki_updated', user=self.user_two) self.node_log_project_created = NodeLogFactory( action='project_created', user=self.user_two) self.end_date = datetime.datetime.utcnow() - datetime.timedelta(1) for node_log in NodeLog.find(): node_log.date = self.end_date - datetime.timedelta(0.1) node_log.save() self.results = NodeLogEvents().get_events(self.end_date.date()) self.node_log_node_created.reload() self.node_log_file_added.reload() self.node_log_wiki_updated.reload() self.node_log_project_created.reload()
def setUp(self): super(TestEnsureLogDates, self).setUp() self.good_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.bad_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.mongo = self.good_log._storage[0].db['nodelog'] self.mongo.update( {'_id': self.bad_log._id}, {'$set': { 'date': timezone.now() - datetime.timedelta(weeks=52) }}, ) self.bad_log.reload()
def setUp(self): super(TestEnsureLogDates, self).setUp() self.good_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.bad_log = NodeLogFactory(action=NodeLog.WIKI_DELETED) self.mongo = self.good_log._storage[0].db['nodelog'] self.mongo.update( {'_id': self.bad_log._id}, {'$set': {'date': timezone.now() - datetime.timedelta(weeks=52)}}, ) self.bad_log.reload()
def test_serialize_log(self): node = NodeFactory(category='hypothesis') log = NodeLogFactory(params={'node': node._primary_key}) node.logs.append(log) node.save() d = serialize_log(log) assert_equal(d['action'], log.action) assert_equal(d['node']['node_type'], 'component') assert_equal(d['node']['category'], 'Hypothesis') assert_equal(d['node']['url'], log.node.url) assert_equal(d['date'], framework_utils.iso8601format(log.date)) assert_in('contributors', d) assert_equal(d['user']['fullname'], log.user.fullname) assert_equal(d['user']['url'], log.user.url) assert_equal(d['params'], log.params) assert_equal(d['node']['title'], log.node.title)
class TestNodeLogAnalytics(OsfTestCase): def setUp(self): super(TestNodeLogAnalytics, self).setUp() self.user_one = UserFactory() self.user_two = UserFactory() # Two node logs for user one self.node_log_node_created = NodeLogFactory(action='node_created', user=self.user_one) self.node_log_file_added = NodeLogFactory(action='file_added', user=self.user_one) # Two node logs for user two self.node_log_wiki_updated = NodeLogFactory(action='wiki_updated', user=self.user_two) self.node_log_project_created = NodeLogFactory( action='project_created', user=self.user_two) self.end_date = datetime.datetime.utcnow() - datetime.timedelta(1) for node_log in NodeLog.find(): node_log.date = self.end_date - datetime.timedelta(0.1) node_log.save() self.results = NodeLogEvents().get_events(self.end_date.date()) self.node_log_node_created.reload() self.node_log_file_added.reload() self.node_log_wiki_updated.reload() self.node_log_project_created.reload() def tearDown(self): super(TestNodeLogAnalytics, self).tearDown() Node.remove() User.remove() def test_results_structure(self): expected = [{ 'keen': { 'timestamp': self.node_log_node_created.date.replace( tzinfo=pytz.UTC).isoformat() }, 'date': self.node_log_node_created.date.replace( tzinfo=pytz.UTC).isoformat(), 'action': 'node_created', 'user_id': self.user_one._id }, { 'keen': { 'timestamp': self.node_log_file_added.date.replace( tzinfo=pytz.UTC).isoformat() }, 'date': self.node_log_file_added.date.replace(tzinfo=pytz.UTC).isoformat(), 'action': 'file_added', 'user_id': self.user_one._id }, { 'keen': { 'timestamp': self.node_log_wiki_updated.date.replace( tzinfo=pytz.UTC).isoformat() }, 'date': self.node_log_wiki_updated.date.replace( tzinfo=pytz.UTC).isoformat(), 'action': 'wiki_updated', 'user_id': self.user_two._id }, { 'keen': { 'timestamp': self.node_log_project_created.date.replace( tzinfo=pytz.UTC).isoformat() }, 'date': self.node_log_project_created.date.replace( tzinfo=pytz.UTC).isoformat(), 'action': 'project_created', 'user_id': self.user_two._id }] assert_items_equal(expected, self.results)
class TestNodeLogAnalytics(OsfTestCase): def setUp(self): super(TestNodeLogAnalytics, self).setUp() self.user_one = UserFactory() self.user_two = UserFactory() # Two node logs for user one self.node_log_node_created = NodeLogFactory(action='node_created', user=self.user_one) self.node_log_file_added = NodeLogFactory(action='file_added', user=self.user_one) # Two node logs for user two self.node_log_wiki_updated = NodeLogFactory(action='wiki_updated', user=self.user_two) self.node_log_project_created = NodeLogFactory(action='project_created', user=self.user_two) self.end_date = datetime.datetime.utcnow() - datetime.timedelta(1) for node_log in NodeLog.find(): node_log.date = self.end_date - datetime.timedelta(0.1) node_log.save() self.results = NodeLogEvents().get_events(self.end_date.date()) self.node_log_node_created.reload() self.node_log_file_added.reload() self.node_log_wiki_updated.reload() self.node_log_project_created.reload() def tearDown(self): super(TestNodeLogAnalytics, self).tearDown() Node.remove() User.remove() def test_results_structure(self): expected = [ { 'keen': {'timestamp': self.node_log_node_created.date.replace(tzinfo=pytz.UTC).isoformat()}, 'date': self.node_log_node_created.date.replace(tzinfo=pytz.UTC).isoformat(), 'action': 'node_created', 'user_id': self.user_one._id }, { 'keen': {'timestamp': self.node_log_file_added.date.replace(tzinfo=pytz.UTC).isoformat()}, 'date': self.node_log_file_added.date.replace(tzinfo=pytz.UTC).isoformat(), 'action': 'file_added', 'user_id': self.user_one._id }, { 'keen': {'timestamp': self.node_log_wiki_updated.date.replace(tzinfo=pytz.UTC).isoformat()}, 'date': self.node_log_wiki_updated.date.replace(tzinfo=pytz.UTC).isoformat(), 'action': 'wiki_updated', 'user_id': self.user_two._id }, { 'keen': {'timestamp': self.node_log_project_created.date.replace(tzinfo=pytz.UTC).isoformat()}, 'date': self.node_log_project_created.date.replace(tzinfo=pytz.UTC).isoformat(), 'action': 'project_created', 'user_id': self.user_two._id } ] assert_items_equal(expected, self.results)