Пример #1
0
    def test_UI_will_edit_the_given_Project_instance(self):
        """testing if a Project instance is passed the interface will allow the
        given Project instance to be edited
        """

        new_client = Client(name='Test Client 1')
        new_client.save()

        new_project = Project("Test Project")
        new_project.create()

        dialog = project_properties.MainDialog(project=new_project)

        # now edit the project from the UI
        new_name = "Test Project New Name"
        new_fps = 50
        dialog.name_lineEdit.setText(new_name)
        new_client_2_name = 'Test Client 2'
        dialog.clients_comboBox.lineEdit().setText(new_client_2_name)
        dialog.fps_spinBox.setValue(new_fps)
        dialog.resolution_comboBox.setCurrentIndex(3)
        preset_name = dialog.resolution_comboBox.currentText()
        resolution_data = conf.resolution_presets[preset_name]
        dialog.active_checkBox.setChecked(False)
        dialog.shot_number_prefix_lineEdit.setText("PL")
        dialog.shot_number_padding_spinBox.setValue(5)
        dialog.revision_number_prefix_lineEdit.setText("rev")
        dialog.revision_number_padding_spinBox.setValue(3)
        dialog.version_number_prefix_lineEdit.setText("ver")
        dialog.version_number_padding_spinBox.setValue(5)
        new_structure = "This is the new structure\nwith three lines\n" + \
                        "and this is the third line"
        dialog.structure_textEdit.setText(new_structure)

        # hit ok
        QTest.mouseClick(dialog.buttonBox.buttons()[0], Qt.LeftButton)

        # now check the data
        self.assertEqual(new_project.name, new_name)
        self.assertEqual(new_project.client.name, new_client_2_name)
        # check if a client is created with that name

        new_client_2 = Client.query().filter(
            Client.name == new_client_2_name).first()
        self.assertIsInstance(new_client_2, Client)

        self.assertEqual(new_project.fps, new_fps)
        self.assertEqual(new_project.width, resolution_data[0])
        self.assertEqual(new_project.height, resolution_data[1])
        self.assertEqual(new_project.pixel_aspect, resolution_data[2])
        self.assertEqual(new_project.active, False)
        self.assertEqual(new_project.shot_number_padding, 5)
        self.assertEqual(new_project.shot_number_prefix, "PL")
        self.assertEqual(new_project.rev_number_padding, 3)
        self.assertEqual(new_project.rev_number_prefix, "rev")
        self.assertEqual(new_project.ver_number_padding, 5)
        self.assertEqual(new_project.ver_number_prefix, "ver")
        self.assertEqual(new_project.structure, new_structure)
    def test_UI_will_edit_the_given_Project_instance(self):
        """testing if a Project instance is passed the interface will allow the
        given Project instance to be edited
        """
        
        new_client = Client(name='Test Client 1')
        new_client.save()
        
        new_project = Project("Test Project")
        new_project.create()
        
        dialog = project_properties.MainDialog(project=new_project)
        
        # now edit the project from the UI
        new_name = "Test Project New Name"
        new_fps = 50
        dialog.name_lineEdit.setText(new_name)
        new_client_2_name = 'Test Client 2'
        dialog.clients_comboBox.lineEdit().setText(new_client_2_name)
        dialog.fps_spinBox.setValue(new_fps)
        dialog.resolution_comboBox.setCurrentIndex(3)
        preset_name = dialog.resolution_comboBox.currentText()
        resolution_data = conf.resolution_presets[preset_name]
        dialog.active_checkBox.setChecked(False)
        dialog.shot_number_prefix_lineEdit.setText("PL")
        dialog.shot_number_padding_spinBox.setValue(5)
        dialog.revision_number_prefix_lineEdit.setText("rev")
        dialog.revision_number_padding_spinBox.setValue(3)
        dialog.version_number_prefix_lineEdit.setText("ver")
        dialog.version_number_padding_spinBox.setValue(5)
        new_structure = "This is the new structure\nwith three lines\n" + \
                        "and this is the third line"
        dialog.structure_textEdit.setText(new_structure)
        
        # hit ok
        QTest.mouseClick(dialog.buttonBox.buttons()[0], Qt.LeftButton)

        # now check the data
        self.assertEqual(new_project.name, new_name)
        self.assertEqual(new_project.client.name, new_client_2_name)
        # check if a client is created with that name
        
        new_client_2 = Client.query().filter(Client.name==new_client_2_name).first()
        self.assertIsInstance(new_client_2, Client)
        
        self.assertEqual(new_project.fps, new_fps)
        self.assertEqual(new_project.width, resolution_data[0])
        self.assertEqual(new_project.height, resolution_data[1])
        self.assertEqual(new_project.pixel_aspect, resolution_data[2])
        self.assertEqual(new_project.active, False)
        self.assertEqual(new_project.shot_number_padding, 5)
        self.assertEqual(new_project.shot_number_prefix, "PL")
        self.assertEqual(new_project.rev_number_padding, 3)
        self.assertEqual(new_project.rev_number_prefix, "rev")
        self.assertEqual(new_project.ver_number_padding, 5)
        self.assertEqual(new_project.ver_number_prefix, "ver")
        self.assertEqual(new_project.structure, new_structure)
Пример #3
0
 def test_code_attribute_is_set_to_None(self):
     """testing if the code attribute value will be regenerated from the
     name attribute if the code attribute is set to None
     """
     test_name = "This is a test client"
     test_code = "TIATC"
     self.kwargs['code'] = "AnotherCode"
     self.kwargs['name'] = test_name
     new_client = Client(**self.kwargs)
     new_client.code = None
     self.assertTrue(new_client.code.startswith(test_code))
    def _setup_defaults(self):
        """sets up the default values
        """

        self.resolution_comboBox.addItems(
            sorted(conf.resolution_presets.keys()))
        self.set_resolution_to_default()

        # clients
        clients = map(lambda x: x.name,
                      Client.query().order_by(Client.name.asc()).all())
        self.clients_comboBox.clear()
        self.clients_comboBox.addItems(clients)

        # set the fps to conf.default_fps
        self.fps_spinBox.setValue(conf.default_fps)

        # set active_checkBox to true
        self.active_checkBox.setChecked(True)

        # if a project is given don't let the user to try to change the code
        # attribute
        if self.project is not None:
            self.code_lineEdit.setEnabled(False)

        # advanced properties
        self.shot_number_padding_spinBox.setValue(conf.shot_number_padding)
        self.shot_number_prefix_lineEdit.setText(conf.shot_number_prefix)
        self.revision_number_padding_spinBox.setValue(conf.rev_number_padding)
        self.revision_number_prefix_lineEdit.setText(conf.rev_number_prefix)
        self.version_number_padding_spinBox.setValue(conf.ver_number_padding)
        self.version_number_prefix_lineEdit.setText(conf.ver_number_prefix)
        self.structure_textEdit.setText(conf.project_structure)
Пример #5
0
 def test_name_argument_is_working_properly(self):
     """testing if the value of the name argument is passed correctly to the
     name attribute
     """
     client_name = 'This is a Client name'
     self.kwargs['name'] = client_name
     new_client = Client(**self.kwargs)
     self.assertEqual(client_name, new_client.name)
Пример #6
0
 def test_code_argument_formatting(self):
     """testing if the code argument is formatted correctly
     """
     test_code_in = "Test Code"
     test_code_expected = "TestCode"
     self.kwargs['code'] = test_code_in
     new_client = Client(**self.kwargs)
     self.assertEqual(test_code_expected, new_client.code)
Пример #7
0
 def test_code_argument_is_working_properly(self):
     """testing if the code argument value is correctly passed to the code
     attribute
     """
     test_code = "TestCode"
     self.kwargs['code'] = test_code
     new_client = Client(**self.kwargs)
     self.assertTrue(new_client.code.startswith(test_code))
Пример #8
0
 def test_code_argument_is_None(self):
     """testing if the client code argument is None the code attribute will
     be generated from the name attribute initials
     """
     test_name = "This is a test client"
     test_code = "TIATC"
     self.kwargs['code'] = None
     self.kwargs['name'] = test_name
     new_client = Client(**self.kwargs)
     self.assertTrue(new_client.code.startswith(test_code))
Пример #9
0
 def setUp(self):
     """set up the test
     """
     
     self.kwargs = {
         "name": "Test Client",
         "code": "TC",
         "generic_info": "This is a generic info holding may be phone "
                         "numbers and etc."
     }
     
     self.test_client = Client(**self.kwargs)
Пример #10
0
 def _setup_defaults(self):
     """sets up the default values
     """
     
     self.resolution_comboBox.addItems(
         sorted(conf.resolution_presets.keys())
     )
     self.set_resolution_to_default()
     
     # clients
     clients = map(
         lambda x: x.name,
         Client.query().order_by(Client.name.asc()).all()
     )
     self.clients_comboBox.clear()
     self.clients_comboBox.addItems(clients)
     
     # set the fps to conf.default_fps
     self.fps_spinBox.setValue(conf.default_fps)
     
     # set active_checkBox to true
     self.active_checkBox.setChecked(True)
     
     # if a project is given don't let the user to try to change the code
     # attribute
     if self.project is not None:
         self.code_lineEdit.setEnabled(False)
     
     # advanced properties
     self.shot_number_padding_spinBox.setValue(conf.shot_number_padding)
     self.shot_number_prefix_lineEdit.setText(conf.shot_number_prefix)
     self.revision_number_padding_spinBox.setValue(conf.rev_number_padding)
     self.revision_number_prefix_lineEdit.setText(conf.rev_number_prefix)
     self.version_number_padding_spinBox.setValue(conf.ver_number_padding)
     self.version_number_prefix_lineEdit.setText(conf.ver_number_prefix)
     self.structure_textEdit.setText(conf.project_structure)
Пример #11
0
    def test_passing_a_Project_instance_will_fill_the_interface_with_the_project(
            self):
        """testing if passing a Project instance will fill the interface with
        the data coming from the given Project instance
        """

        new_client = Client(name='Client Agency 1', code='CA1')
        new_client.save()

        new_project = Project("Test Project")
        new_project.client = new_client
        new_project.width = 720
        new_project.height = 576
        new_project.pixel_aspect = 1.067
        new_project.fps = 30
        new_project.active = True

        dialog = project_properties.MainDialog(project=new_project)

        # now check if the interface is filled properly
        self.assertEqual(dialog.name_lineEdit.text(), new_project.name)

        self.assertEqual(dialog.code_lineEdit.text(), new_project.code)

        # preset name
        preset_name = dialog.resolution_comboBox.currentText()

        self.assertEqual(conf.resolution_presets[preset_name][0],
                         new_project.width)

        self.assertEqual(conf.resolution_presets[preset_name][1],
                         new_project.height)

        self.assertEqual(conf.resolution_presets[preset_name][2],
                         new_project.pixel_aspect)

        self.assertEqual(dialog.fps_spinBox.value(), new_project.fps)

        self.assertEqual(dialog.active_checkBox.isChecked(), True)

        # Advanced settings
        self.assertEqual(dialog.shot_number_prefix_lineEdit.text(),
                         new_project.shot_number_prefix)

        self.assertEqual(dialog.shot_number_padding_spinBox.value(),
                         new_project.shot_number_padding)

        #        self.assertEqual(
        #            dialog.revision_number_prefix_lineEdit.text(),
        #            new_project.rev_number_prefix
        #        )

        #        self.assertEqual(
        #            dialog.revision_number_padding_spinBox.value(),
        #            new_project.rev_number_padding
        #        )

        #        self.assertEqual(
        #            dialog.version_number_prefix_lineEdit.text(),
        #            new_project.ver_number_prefix
        #        )

        #        self.assertEqual(
        #            dialog.version_number_padding_spinBox.value(),
        #            new_project.ver_number_padding
        #        )

        self.assertEqual(dialog.structure_textEdit.toPlainText(),
                         new_project.structure)
Пример #12
0
 def button_box_ok_clicked(self):
     """runs when the ok button clicked
     """
     
     # if there is no project given create a new one and return it
     
     # create_project
     # get the data from the input fields
     name = self.name_lineEdit.text()
     code = self.code_lineEdit.text()
     # check if the code is empty
     if code=="":
         # raise an error please
         QtGui.QMessageBox.critical(
             self,
             "Error",
             "Code field can not be empty,\n"
             "Please enter a proper Code!!!"
         )
         return
     
     client_name = self.clients_comboBox.currentText()
     client = Client.query().filter(Client.name==client_name).first()
     if not client:
         # just create the client
         client = Client(name=client_name)
         client.save()
     
     resolution_name = self.resolution_comboBox.currentText()
     resolution_data = conf.resolution_presets[resolution_name]
     fps = self.fps_spinBox.value()
     active = self.active_checkBox.isChecked()
     
     # advanced properties
     shot_number_padding = self.shot_number_padding_spinBox.value()
     shot_number_prefix = self.shot_number_prefix_lineEdit.text()
     rev_number_padding = self.revision_number_padding_spinBox.value()
     rev_number_prefix = self.revision_number_prefix_lineEdit.text()
     ver_number_padding = self.version_number_padding_spinBox.value()
     ver_number_prefix = self.version_number_prefix_lineEdit.text()
     structure_code = self.structure_textEdit.toPlainText()
     
     is_new_project = False
     
     if self.project is None:
         logger.debug("no project is given creating new one")
         # create the project
         
         self.project  = Project(name=name, code=code)
         is_new_project = True
         
     else:
         logger.debug("updating the given project")
        
     # update the project
     self.project.name = name
     self.project.client = client
     self.project.fps = fps
     self.project.width = resolution_data[0]
     self.project.height = resolution_data[1]
     self.project.pixel_aspect = resolution_data[2]
     self.project.active = active
     self.project.shot_number_padding = shot_number_padding
     self.project.shot_number_prefix = shot_number_prefix
     self.project.rev_number_padding = rev_number_padding
     self.project.rev_number_prefix = rev_number_prefix
     self.project.ver_number_padding = ver_number_padding
     self.project.ver_number_prefix = ver_number_prefix
     self.project.structure = structure_code
     
     if is_new_project:
         self.project.create()
     else:
         self.project.save()
     
     # and close the dialog
     self.close()
Пример #13
0
    def button_box_ok_clicked(self):
        """runs when the ok button clicked
        """

        # if there is no project given create a new one and return it

        # create_project
        # get the data from the input fields
        name = self.name_lineEdit.text()
        code = self.code_lineEdit.text()
        # check if the code is empty
        if code == "":
            # raise an error please
            QtGui.QMessageBox.critical(
                self, "Error", "Code field can not be empty,\n"
                "Please enter a proper Code!!!")
            return

        client_name = self.clients_comboBox.currentText()
        client = Client.query().filter(Client.name == client_name).first()
        if not client:
            # just create the client
            client = Client(name=client_name)
            client.save()

        resolution_name = self.resolution_comboBox.currentText()
        resolution_data = conf.resolution_presets[resolution_name]
        fps = self.fps_spinBox.value()
        active = self.active_checkBox.isChecked()

        # advanced properties
        shot_number_padding = self.shot_number_padding_spinBox.value()
        shot_number_prefix = self.shot_number_prefix_lineEdit.text()
        rev_number_padding = self.revision_number_padding_spinBox.value()
        rev_number_prefix = self.revision_number_prefix_lineEdit.text()
        ver_number_padding = self.version_number_padding_spinBox.value()
        ver_number_prefix = self.version_number_prefix_lineEdit.text()
        structure_code = self.structure_textEdit.toPlainText()

        is_new_project = False

        if self.project is None:
            logger.debug("no project is given creating new one")
            # create the project

            self.project = Project(name=name, code=code)
            is_new_project = True

        else:
            logger.debug("updating the given project")

        # update the project
        self.project.name = name
        self.project.client = client
        self.project.fps = fps
        self.project.width = resolution_data[0]
        self.project.height = resolution_data[1]
        self.project.pixel_aspect = resolution_data[2]
        self.project.active = active
        self.project.shot_number_padding = shot_number_padding
        self.project.shot_number_prefix = shot_number_prefix
        self.project.rev_number_padding = rev_number_padding
        self.project.rev_number_prefix = rev_number_prefix
        self.project.ver_number_padding = ver_number_padding
        self.project.ver_number_prefix = ver_number_prefix
        self.project.structure = structure_code

        if is_new_project:
            self.project.create()
        else:
            self.project.save()

        # and close the dialog
        self.close()
    def test_passing_a_Project_instance_will_fill_the_interface_with_the_project(self):
        """testing if passing a Project instance will fill the interface with
        the data coming from the given Project instance
        """
        
        new_client = Client(name='Client Agency 1', code='CA1')
        new_client.save()
        
        new_project = Project("Test Project")
        new_project.client = new_client
        new_project.width = 720
        new_project.height = 576
        new_project.pixel_aspect = 1.067
        new_project.fps = 30
        new_project.active = True

        dialog = project_properties.MainDialog(project=new_project)
       
        # now check if the interface is filled properly
        self.assertEqual(
            dialog.name_lineEdit.text(), new_project.name
        )
        
        self.assertEqual(
            dialog.code_lineEdit.text(), new_project.code
        )

        # preset name
        preset_name = dialog.resolution_comboBox.currentText()

        self.assertEqual(
            conf.resolution_presets[preset_name][0],
            new_project.width
        )

        self.assertEqual(
            conf.resolution_presets[preset_name][1],
            new_project.height
        )

        self.assertEqual(
            conf.resolution_presets[preset_name][2],
            new_project.pixel_aspect
        )

        self.assertEqual(
            dialog.fps_spinBox.value(), new_project.fps
        )

        self.assertEqual(
            dialog.active_checkBox.isChecked(), True
        )
        
        # Advanced settings
        self.assertEqual(
            dialog.shot_number_prefix_lineEdit.text(),
            new_project.shot_number_prefix
        )
        
        self.assertEqual(
            dialog.shot_number_padding_spinBox.value(),
            new_project.shot_number_padding
        )
        
#        self.assertEqual(
#            dialog.revision_number_prefix_lineEdit.text(),
#            new_project.rev_number_prefix
#        )
        
#        self.assertEqual(
#            dialog.revision_number_padding_spinBox.value(),
#            new_project.rev_number_padding
#        )
        
#        self.assertEqual(
#            dialog.version_number_prefix_lineEdit.text(),
#            new_project.ver_number_prefix
#        )
        
#        self.assertEqual(
#            dialog.version_number_padding_spinBox.value(),
#            new_project.ver_number_padding
#        )
        
        self.assertEqual(
            dialog.structure_textEdit.toPlainText(),
            new_project.structure
        )