def parse_records(self):
        """
        Called by controller code to parse form submission, it being a cvs file
        or input box

        Returns
            nothing, but sets self.records to the parsed lines of the csv
            as string types
        """

        if self.csv.data:
            # uploaded a cohort file
            csv_lines = normalize_newlines(self.csv.data.stream)

        else:
            # used upload box, note that wtforms returns unicode types here
            csv_lines = parse_textarea_ids_or_names(self.paste_ids_or_names.data)

        records = format_records(csv_lines, self.project.data)

        if self.centralauth.data is True:
            ca_session = db.get_ca_session()
            records = g.centralauth_service.expand_via_centralauth(records, ca_session)

        self.records = records
def generate_centralauth_users(project, n, name_formatter):
    session = db.get_ca_session()
    try:
        user_count = (
            session.query(func.count()).
            filter(CentralAuthLocalUser.lu_wiki == project).
            filter(CentralAuthLocalUser.lu_name.like(name_formatter('%'))).
            one()[0]
        )
        users_to_generate = n - user_count
        if users_to_generate > 0:
            start_index = user_count + 1
            session.bind.engine.execute(
                CentralAuthLocalUser.__table__.insert(),
                [
                    {
                        'lu_wiki' : project,
                        'lu_name' : name_formatter(start_index + i)
                    }
                    for i in range(users_to_generate)
                ]
            )
            session.commit()
    finally:
        session.close()
예제 #3
0
    def parse_records(self):
        """
        Called by controller code to parse form submission, it being a cvs file
        or input box

        Returns
            nothing, but sets self.records to the parsed lines of the csv
            as string types
        """

        if self.csv.data:
            # uploaded a cohort file
            csv_lines = normalize_newlines(self.csv.data.stream)

        else:
            # used upload box, note that wtforms returns unicode types here
            csv_lines = parse_textarea_ids_or_names(
                self.paste_ids_or_names.data)

        records = format_records(csv_lines, self.project.data)

        if self.centralauth.data is True:
            ca_session = db.get_ca_session()
            records = g.centralauth_service.expand_via_centralauth(
                records, ca_session)

        self.records = records
예제 #4
0
 def setUp(self):
     #****************************************************************
     # set up and clean database (Warning: this DESTROYS ALL DATA)
     #****************************************************************
     self.session = db.get_session()
     engine = db.get_mw_engine(mediawiki_project)
     db.MediawikiBase.metadata.create_all(engine, checkfirst=True)
     engine2 = db.get_mw_engine(second_mediawiki_project)
     db.MediawikiBase.metadata.create_all(engine2, checkfirst=True)
     ca_engine = db.get_ca_engine()
     db.CentralAuthBase.metadata.create_all(ca_engine)
     # mediawiki_project is a global defined on this file
     self.mwSession = db.get_mw_session(mediawiki_project)
     self.mwSession2 = db.get_mw_session(second_mediawiki_project)
     self.caSession = db.get_ca_session()
     DatabaseTest.tearDown(self)