Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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)
        )
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)