def populate_more_counts(self, institution, user, user2, user3,
                             populate_counts):
        # Creates 9 more user records to test pagination with

        users = []
        for i in range(0, 8):
            users.append(AuthUserFactory())

        for test_user in users:
            UserInstitutionProjectCounts.record(
                user_id=test_user._id,
                institution_id=institution._id,
                department='Psychology dept',
                public_project_count=int(10 * random()),
                private_project_count=int(10 * random()),
            ).save()

        UserInstitutionProjectCounts.record(
            user_id=user3._id,
            institution_id=institution._id,
            department='Psychology dept',
            public_project_count=int(10 * random()),
            private_project_count=int(10 * random()),
        ).save()

        time.sleep(10)
Exemplo n.º 2
0
def populate_institution_metrics(users, institutions, dates):
    institution_public_project_count = 25 + (int(25 * random()))
    institution_private_project_count = 25 + (int(25 * random()))

    for date in dates:

        for institution in institutions:
            institution_public_project_count = institution_public_project_count - int(
                5 * random())
            institution_private_project_count = institution_private_project_count - int(
                5 * random())

            InstitutionProjectCounts.record_institution_project_counts(
                institution=institution,
                public_project_count=institution_public_project_count,
                private_project_count=institution_private_project_count,
                timestamp=date)

            for user in users:
                user_public_project_count = (int(10 * random()))
                user_private_project_count = (int(10 * random()))

                UserInstitutionProjectCounts.record_user_institution_project_counts(
                    institution=institution,
                    user=user,
                    public_project_count=user_public_project_count,
                    private_project_count=user_private_project_count,
                    timestamp=date)
    def populate_na_department(self, institution, user4):
        UserInstitutionProjectCounts.record(
            user_id=user4._id,
            institution_id=institution._id,
            public_project_count=1,
            private_project_count=1,
        ).save()

        time.sleep(10)
Exemplo n.º 4
0
    def test_update_institution_counts(self, app, institution, user1, user2,
                                       user3, user4):
        update_institution_project_counts()

        time.sleep(2)

        user_search = UserInstitutionProjectCounts.get_current_user_metrics(
            institution)
        user_results = user_search.execute()
        sorted_results = sorted(user_results,
                                key=lambda x: x['private_project_count'])

        user3_record = sorted_results[0]
        user1_record = sorted_results[1]
        user2_record = sorted_results[2]

        assert user1_record['user_id'] == user1._id
        assert user1_record['public_project_count'] == 4
        assert user1_record['private_project_count'] == 4

        assert user2_record['user_id'] == user2._id
        assert user2_record['public_project_count'] == 1
        assert user2_record['private_project_count'] == 10

        assert user3_record['user_id'] == user3._id
        assert user3_record['public_project_count'] == 0
        assert user3_record['private_project_count'] == 0

        institution_results = InstitutionProjectCounts.get_latest_institution_project_document(
            institution)

        assert institution_results['public_project_count'] == 4
        assert institution_results['private_project_count'] == 14
    def populate_counts(self, institution, user, user2):
        # Old data that shouldn't appear in responses
        UserInstitutionProjectCounts.record(user_id=user._id,
                                            institution_id=institution._id,
                                            department='Biology dept',
                                            public_project_count=4,
                                            private_project_count=4,
                                            timestamp=datetime.date(
                                                2019, 6, 4)).save()

        # New data
        UserInstitutionProjectCounts.record(
            user_id=user._id,
            institution_id=institution._id,
            department='Biology dept',
            public_project_count=6,
            private_project_count=5,
        ).save()

        UserInstitutionProjectCounts.record(
            user_id=user2._id,
            institution_id=institution._id,
            department='Psychology dept',
            public_project_count=3,
            private_project_count=2,
        ).save()

        time.sleep(10)
    def populate_counts(self, user, user2, user3, user4, admin, institution):
        # This represents a Department that had a user, but no longer has any users, so does not appear in results.
        UserInstitutionProjectCounts.record(user_id=user._id,
                                            institution_id=institution._id,
                                            department='Old Department',
                                            public_project_count=1,
                                            private_project_count=1,
                                            timestamp=datetime.date(
                                                2017, 2, 4)).save()

        # The user has left the department
        UserInstitutionProjectCounts.record(
            user_id=user._id,
            institution_id=institution._id,
            department='New Department',
            public_project_count=1,
            private_project_count=1,
        ).save()

        # A second user entered the department
        UserInstitutionProjectCounts.record(user_id=user2._id,
                                            institution_id=institution._id,
                                            department='New Department',
                                            public_project_count=1,
                                            private_project_count=1).save()

        # A new department with a single user to test sorting
        UserInstitutionProjectCounts.record(user_id=user3._id,
                                            institution_id=institution._id,
                                            department='Smaller Department',
                                            public_project_count=1,
                                            private_project_count=1).save()

        # A user with no department
        UserInstitutionProjectCounts.record(user_id=user4._id,
                                            institution_id=institution._id,
                                            public_project_count=1,
                                            private_project_count=1).save()
        time.sleep(5)  # ES is slow