Esempio n. 1
0
def main():
    logging.info("pyOffer version %s started at %s", version, datetime.now())
    locale_set = locale.setlocale(locale.LC_ALL, '')
    logging.info("System locale: %s", locale_set)
    app = QApplication(sys.argv)
    app.setOrganizationName("KonserwSoft")
    app.setApplicationName("pyOffer")

    lang = QLocale.system().name()[0:2]
    logging.info("Loading translation for: %s", lang)
    translator = QTranslator()
    if translator.load(f"translations/{lang}"):
        app.installTranslator(translator)
        logging.info("Loaded translations from: %s", f"translations/{lang}")
    else:
        logging.warning("Failed to load translations from: %s",
                        f"translations/{lang}")

    settings = QSettings()
    settings.beginGroup("database")
    host_name = settings.value("host_name", "127.0.0.1")
    port = int(settings.value("port", "5432"))
    database_name = settings.value("database_name", "koferta_test")
    user_name = settings.value("user_name", "postgres")
    password = settings.value("password", "docker")
    settings.endGroup()
    try:
        logging.info("DB host name: %s", host_name)
        logging.info("DB port: %s", port)
        logging.info("DB database name: %s", database_name)
        logging.info("DB user name: %s", user_name)
        database.connect(host_name, database_name, user_name, password, port)
    except RuntimeError as e:
        QMessageBox.critical(
            None, app.tr("Database connection failed"),
            app.tr(f"Driver error: {e.args[1]}\nDatabase error: {e.args[2]}"))
        return str(e)
    user_dialog = UserSelectionDialog.make()
    if user_dialog.exec_() == QDialog.Accepted:
        logging.debug("User dialog accepted")
        user = User.from_sql_record(user_dialog.chosen_user_record)
        logging.info("Chosen user: %s", user)
        main_window = MainWindow(user)
        main_window.show()
        return app.exec_()
    logging.info("User hasn't been chosen - exiting")
    return 0
Esempio n. 2
0
    def test_user_from_record(self):
        record = MagicMock(spec_set=QSqlRecord)
        record.value.side_effect = lambda key: {
            "user_id": USER_ID,
            "name": NAME,
            "mail": MAIL,
            "male": MALE,
            "phone": PHONE,
            "char_for_offer_symbol": CHAR_FOR_OFFER_SYMBOL,
            "business_symbol": BUSINESS_SYMBOL,
        }[key]

        user = User.from_sql_record(record)

        assert_that(user.id, is_(USER_ID))
        assert_that(user.name, is_(NAME))
        assert_that(user.mail, is_(MAIL))
        assert_that(user.male, is_(MALE))
        assert_that(user.phone, is_(PHONE))
        assert_that(user.char_for_offer_symbol, is_(CHAR_FOR_OFFER_SYMBOL))
        assert_that(user.business_symbol, is_(BUSINESS_SYMBOL))
Esempio n. 3
0
def active_window(db):
    user = User.from_sql_record(get_user_record(1))
    window = MainWindow(user)
    window.new_offer()
    return window