def test_main_add_criteria(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    qtbot.mouseClick(ui.combo_box, Qt.LeftButton)
    qtbot.keyClick(ui.combo_box, Qt.Key_Down)
    qtbot.keyClick(ui.combo_box, Qt.Key_Enter)
    assert ui.combo_box.currentText() == 'New criteria'

    qtbot.keyClicks(ui.lineEdit, 'taste')
    assert ui.lineEdit.text() == 'taste'

    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)
    assert ui.lineEdit.text() == ''
    assert ui.matrix_widget.columnCount() == 2
    assert ui.matrix_widget.horizontalHeaderItem(0).text() == 'taste'
    assert 'taste' in ui.matrix.df.columns

    qtbot.keyClicks(ui.lineEdit, 'color')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)
    assert ui.matrix_widget.columnCount() == 3
    assert ui.matrix_widget.horizontalHeaderItem(1).text() == 'color'
    assert 'color' in ui.matrix.df.columns
def test_main_weights(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    # Setup
    qtbot.keyClicks(ui.lineEdit, 'apple')
    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)
    qtbot.keyClicks(ui.lineEdit, 'orange')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)

    qtbot.mouseClick(ui.combo_box, Qt.LeftButton)
    qtbot.keyClick(ui.combo_box, Qt.Key_Down)
    qtbot.keyClick(ui.combo_box, Qt.Key_Enter)

    qtbot.keyClicks(ui.lineEdit, 'taste')
    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)

    qtbot.keyClicks(ui.lineEdit, 'color')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)

    # Neither clicks or tab key works
    ui.matrix_widget.setItem(0, 0, QTableWidgetItem('4'))
    assert ui.matrix.df.loc['Weight', 'taste'] == 4
    assert ui.matrix_widget.item(0, 2).text() == '40.0'
    assert ui.matrix_widget.item(1, 2).text() == '0.0%'
    assert ui.matrix_widget.item(2, 2).text() == '0.0%'
Example #3
0
 def powrot(self):
     self.window = QtWidgets.QMainWindow()
     self.ui = main.Ui_MainWindow()
     self.ui.setupUi(self.window)
     QApplication.closeAllWindows()
     self.qt2_app = oknoAdmin.App()
     self.qt2_app.show()
def test_tabs(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    assert ui.master_tab_widget.currentIndex() == 0
    # mouse click doesn't work
    ui.master_tab_widget.setCurrentIndex(1)
    assert ui.master_tab_widget.currentIndex() == 1
def test_main_ratings(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    # Setup
    qtbot.keyClicks(ui.lineEdit, 'apple')
    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)
    qtbot.keyClicks(ui.lineEdit, 'orange')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)

    qtbot.mouseClick(ui.combo_box, Qt.LeftButton)
    qtbot.keyClick(ui.combo_box, Qt.Key_Down)
    qtbot.keyClick(ui.combo_box, Qt.Key_Enter)

    qtbot.keyClicks(ui.lineEdit, 'taste')
    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)

    qtbot.keyClicks(ui.lineEdit, 'color')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)

    ui.matrix_widget.setItem(0, 0, QTableWidgetItem('4'))

    # Tests
    ui.matrix_widget.setItem(0, 1, QTableWidgetItem('7'))
    assert ui.matrix.df.loc['Weight', 'color'] == 7
    assert ui.matrix_widget.item(0, 2).text() == '110.0'
    assert ui.matrix_widget.item(1, 2).text() == '0.0%'
    assert ui.matrix_widget.item(2, 2).text() == '0.0%'

    ui.matrix_widget.setItem(1, 0, QTableWidgetItem('6'))
    assert ui.matrix.df.loc['apple', 'taste'] == 6
    assert ui.matrix_widget.item(1, 2).text() == '21.82%'

    ui.matrix_widget.setItem(1, 1, QTableWidgetItem('5'))
    assert ui.matrix.df.loc['apple', 'color'] == 5
    assert ui.matrix_widget.item(1, 2).text() == '53.64%'

    ui.matrix_widget.setItem(2, 0, QTableWidgetItem('9'))
    assert ui.matrix.df.loc['orange', 'taste'] == 9
    assert ui.matrix_widget.item(2, 2).text() == '32.73%'

    ui.matrix_widget.setItem(2, 1, QTableWidgetItem('3'))
    assert ui.matrix.df.loc['orange', 'color'] == 3
    assert ui.matrix_widget.item(2, 2).text() == '51.82%'
def test_add_continuous_criteria(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    ui.setupUi(MainWindow)
    ui.data_grid = Mock()
    # Notice that QMainWindow is registered as the widget
    qtbot.addWidget(MainWindow)
    MainWindow.show()

    ui.master_tab_widget.setCurrentIndex(1)
    qtbot.keyClicks(ui.line_edit_cc_tab, 'price')
    assert ui.line_edit_cc_tab.text() == 'price'

    qtbot.keyClick(ui.line_edit_cc_tab, Qt.Key_Enter)
    assert ui.line_edit_cc_tab.text() == ''
    assert 'price' in ui.matrix.continuous_criteria

    qtbot.keyClicks(ui.line_edit_cc_tab, 'size')
    qtbot.mouseClick(ui.criterion_button,
                     Qt.LeftButton)  # Button works as well
    assert 'size' in ui.matrix.continuous_criteria
def test_main_add_choices(qtbot):
    MainWindow = QMainWindow()
    ui = main.Ui_MainWindow()
    qtbot.addWidget(MainWindow)
    ui.setupUi(MainWindow)
    MainWindow.show()

    qtbot.keyClicks(ui.lineEdit, 'apple')
    assert ui.lineEdit.text() == 'apple'

    qtbot.mouseClick(ui.pushButton, Qt.LeftButton)
    assert ui.lineEdit.text() == ''
    assert ui.matrix_widget.rowCount() == 2
    assert ui.matrix_widget.verticalHeaderItem(1).text() == 'apple'
    assert 'apple' in ui.matrix.df.index

    qtbot.keyClicks(ui.lineEdit, 'orange')
    qtbot.keyClick(ui.lineEdit, Qt.Key_Enter)
    assert ui.matrix_widget.rowCount() == 3
    assert ui.matrix_widget.verticalHeaderItem(2).text() == 'orange'
    assert 'orange' in ui.matrix.df.index
    def __init__(self, parent=None, flag=QtCore.Qt.Widget):
        QtWidgets.QMainWindow.__init__(self, parent, flag)
        self.ui = main.Ui_MainWindow()
        self.ui.setupUi(self)
        self.score = (0,0)
        self.started = False
        self.sounds = {}
        global query
        self.query = query
        # default settings
        self.digits = 1
        self.rows = 5
        self.flash = 500
        self.timeout = 1500
        self.neg = False
        self.speech = False
        self.one_digit = False
        self.fullscreen = False
        self.hands_free = False
        self.tmpwav= None
        self.replay = False
        self.noscore = False
        self.history = []
        self.font_color = None
        self.background_color = None
        self.annoying_sound = False
        self.no_plus_sign = False

        self.isLabelClearable = True
        self.geometryLabel = None

        self.timerUpdateLabel = QtCore.QTimer()
        self.timerUpdateLabel.setSingleShot(True)
        self.timerUpdateLabel.timeout.connect(self.updateLabel)
        self.timerShowAnswer = QtCore.QTimer()
        self.timerShowAnswer.setSingleShot(True)
        self.timerShowAnswer.timeout.connect(self.showAnswer)
        self.timerRestartPlay = QtCore.QTimer()
        self.timerRestartPlay.setSingleShot(True)
        self.timerRestartPlay.timeout.connect(self.restartPlay)

        if IS_SYSTEMRANDOM_AVAILABLE:
            self.randint = SystemRandom().randint
        else:
            self.randint = randint

        self.ui.label.clear()
        # using an inputmask gives a bug when double clicking in any other apps if le_answer has the focus
        #self.ui.le_answer.setInputMask('000000009')
        self.ui.l_total.hide()

        self.shortcut_F11 = QtWidgets.QShortcut(QtGui.QKeySequence('F11'), self)
        self.shortcut_F11.activated.connect(self.updateFullScreen)
        self.shortcut_Enter = QtWidgets.QShortcut(QtGui.QKeySequence('Enter'), self)
        self.shortcut_Enter.activated.connect(self.ui.pb_start.click)

        self.ui.pb_check.clicked.connect(self.updateAnswer)
        self.ui.pb_settings.clicked.connect(self.changeSettings)
        self.ui.pb_exit.clicked.connect(self.close)
        self.ui.pb_start.clicked.connect(self.startPlay)
        self.ui.pb_replay.clicked.connect(self.redisplaySequence)

        self.ui.label.setPixmap(QtGui.QPixmap(WELCOME))

        if IS_SOUND_AVAILABLE:
            self.player = QtMultimedia.QMediaPlayer()
            self.player.setAudioRole(QtMultimedia.QAudio.VoiceCommunicationRole)

        # add url in statusbar
        self.ui.statusbar.showMessage('sorobanexam.org')

        self.importSettings()
        # change background and foreground color if needed
        stylesheet = []
        if self.background_color is not None:
            stylesheet.append('background-color: %s' % self.background_color)
        if self.font_color is not None:
            stylesheet.append('color: %s' % self.font_color)
        if stylesheet != []:
            self.ui.label.setStyleSheet(';'.join(stylesheet))

        if self.fullscreen:
            self.showFullScreen()
        else:
            self.showNormal()

        # resize font
        font = self.ui.label.font()
        # width is the size of of '+9999' in the current font
        width = QtGui.QFontMetrics(font).width('+'+'9'*(self.digits+2))
        # the factor to multiply by to use the max. space
        factor = float(self.ui.gb_number.width())/width
        newPointSize = min(int(font.pointSize()*factor), self.ui.gb_number.height())
        font.setPointSize(newPointSize)
        self.ui.label.setFont(font)
import sys

from PySide2.QtWidgets import QApplication, QMainWindow

from gui import main


app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = main.Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())