コード例 #1
0
class DbBot(object):
    def __init__(self):
        self._options = ReaderOptions()
        verbose_stream = sys.stdout if self._options.be_verbose else None
        # '' for temporary database i.e. deleted after the connection is closed
        # see: http://www.sqlite.org/inmemorydb.html, section 'Temporary Databases'
        database_path = '' if self._options.dry_run else self._options.db_file_path
        self._db = DatabaseWriter(database_path, verbose_stream)
        self._parser = RobotResultsParser(self._options.include_keywords,
                                          self._db, verbose_stream)

    def run(self):
        try:
            for xml_file in self._options.file_paths:
                self._parser.xml_to_db(xml_file)
                self._db.commit()
        except DataError as message:
            sys.stderr.write('dbbot: error: Invalid XML: %s\n\n' % message)
            exit(1)
        finally:
            self._db.close()
コード例 #2
0
ファイル: run.py プロジェクト: tomipoc/DbBot-SQLAlchemy
class DbBot(object):

    DRY_RUN_DB_URL = 'sqlite:///:memory:'

    def __init__(self):
        self._options = ReaderOptions()
        verbose_stream = sys.stdout if self._options.be_verbose else None
        database_url = self._resolve_db_url()
        self._db = DatabaseWriter(database_url, verbose_stream)
        self._parser = RobotResultsParser(self._options.include_keywords,
                                          self._db, verbose_stream)

    def _resolve_db_url(self):
        return self.DRY_RUN_DB_URL if self._options.dry_run else self._options.db_url

    def run(self):
        try:
            for xml_file in self._options.file_paths:
                self._parser.xml_to_db(xml_file)
        except DataError as message:
            sys.stderr.write('dbbot: error: Invalid XML: %s\n\n' % message)
            exit(1)
        finally:
            self._db.close()