Beispiel #1
0
    def test_pnunpacker(self) -> None:
        """Test eneboopkgs load."""
        from pineboolib.qsa import qsa
        from pineboolib.fllegacy import systype
        import os

        qsa_sys = systype.SysType()
        path = fixture_path("principal.eneboopkg")
        self.assertTrue(os.path.exists(path))
        qsa_sys.loadModules(path, False)
        qsa_sys.registerUpdate(path)

        qry = qsa.FLSqlQuery()
        qry.setTablesList("flfiles")
        qry.setSelect("count(nombre)")
        qry.setFrom("flfiles")
        qry.setWhere("1=1")
        self.assertTrue(qry.exec_())
        self.assertTrue(qry.first())
        self.assertEqual(qry.value(0), 148)

        qry_2 = qsa.FLSqlQuery()
        qry_2.setTablesList("flfiles")
        qry_2.setSelect("nombre")
        qry_2.setFrom("flfiles")
        qry_2.setWhere("nombre='impuestos.py'")
        self.assertTrue(qry_2.exec_())
        self.assertTrue(qry_2.first())
        self.assertEqual(qry_2.value(0), "impuestos.py")
Beispiel #2
0
    def test_file_write(self) -> None:
        """Test FileWrite attributes."""

        from pineboolib.application import types
        from pineboolib import application
        import os

        qsa_sys = systype.SysType()
        txt = "avión, cañita"
        path_1 = "%s/test_systype_one_iso_8859-15.txt" % application.PROJECT.tmpdir
        path_2 = "%s/test_systype_one_utf-8.txt" % application.PROJECT.tmpdir

        if os.path.exists(path_1):
            os.remove(path_1)

        if os.path.exists(path_2):
            os.remove(path_2)

        qsa_sys.fileWriteIso(path_1, txt)
        qsa_sys.fileWriteUtf8(path_2, txt)

        file_1 = types.File(path_1, "ISO-8859-15")
        file_2 = types.File(path_2, "UTF-8")

        result_1 = file_1.read()
        result_2 = file_2.read()

        self.assertEqual(result_1, txt)
        self.assertEqual(result_2, txt)
Beispiel #3
0
    def test_mainwindow_global(self) -> None:
        """Test mainwindow global."""

        from PyQt5 import QtWidgets

        from pineboolib import application
        import importlib

        sys_type = systype.SysType()
        sys_type.installACL("cuarta")
        acl = pnaccesscontrollists.PNAccessControlLists()
        acl.init()
        flapplication.aqApp.set_acl(acl)

        config.set_value("application/dbadmin_enabled", True)

        project = application.PROJECT
        project.main_form = importlib.import_module(
            "pineboolib.plugins.mainform.eneboo.eneboo")
        project.main_window = getattr(project.main_form, "mainWindow", None)
        main_form_ = getattr(project.main_form, "MainForm", None)
        self.assertTrue(main_form_)
        self.main_w = main_form_()
        self.main_w.initScript()
        self.main_w.show()
        self.assertTrue(self.main_w)

        action_1 = self.main_w.findChild(QtWidgets.QAction, "flusers")
        self.assertTrue(action_1)
        self.assertFalse(action_1.isVisible())
Beispiel #4
0
    def test_cursorRelation(self):
        """Test FLTableDB cursor with cursorRelation."""
        from pineboolib.fllegacy import systype
        import os

        qsa_sys = systype.SysType()
        path = fixture_path("principal.eneboopkg")
        self.assertTrue(os.path.exists(path))
        qsa_sys.loadModules(path, False)
        application.PROJECT.actions["flareas"].load()

        form = application.PROJECT.actions[  # type: ignore [attr-defined] # noqa F821
            "flareas"
        ].mainform_widget

        self.assertTrue(form)

        table_ = fltabledb.FLTableDB(form, "new_fltable")
        table_.cursor_ = form.cursor()
        table_.setTableName("flmodules")
        cursor = form.cursor()
        cursor.select("idarea = 'F'")
        # cursor.bufferChanged.emit("idarea")
        table_.initCursor()
        self.assertEqual(cursor.size(), 1)
        cursor.select("idarea = 'M'")
        self.assertEqual(cursor.size(), 0)
Beispiel #5
0
    def test_form_globals(self) -> None:
        """Test form acls globals."""
        from pineboolib.qsa import qsa
        from pineboolib import application
        import importlib

        sys_type = systype.SysType()
        sys_type.installACL("tercera")
        acl = pnaccesscontrollists.PNAccessControlLists()
        acl.init()
        flapplication.aqApp.set_acl(acl)

        project = application.PROJECT
        project.main_form = importlib.import_module(
            "pineboolib.plugins.mainform.eneboo.eneboo")
        project.main_window = getattr(project.main_form, "mainWindow", None)
        main_form_ = getattr(project.main_form, "MainForm", None)
        self.assertTrue(main_form_)
        self.main_w = main_form_()
        self.main_w.initScript()
        self.main_w.show()
        self.assertTrue(self.main_w)

        form = qsa.from_project("formflmodules")
        control_1 = form.child("tableDBRecords")
        self.assertTrue(control_1)
        self.assertFalse(control_1.isEnabled())
Beispiel #6
0
    def test_tables_flacos(self) -> None:
        """Test table acls from flacos."""

        sys_type = systype.SysType()
        sys_type.installACL("primera")
        acl = pnaccesscontrollists.PNAccessControlLists()
        acl.init()
        flapplication.aqApp.set_acl(acl)

        # clear metadata cache
        flapplication.aqApp.db().manager().cacheMetaDataSys_ = {}
        flapplication.aqApp.db().manager().cacheMetaData_ = {}

        mtd_flgroups = flapplication.aqApp.db().manager().metadata("flgroups")
        self.assertTrue(mtd_flgroups)
        # descripcion = '--'
        field_descripcion = mtd_flgroups.field("descripcion")
        self.assertFalse(field_descripcion.editable())
        self.assertTrue(field_descripcion.visible())

        # idgroup = 'r-'
        field_idgroup = mtd_flgroups.field("idgroup")
        self.assertFalse(field_idgroup.visible())

        mtd_flmodules = flapplication.aqApp.db().manager().metadata(
            "flmodules")
        field_descripcion = mtd_flmodules.field("descripcion")

        # descripcion = 'rw'
        self.assertTrue(field_descripcion.editable())
        self.assertTrue(field_descripcion.visible())
Beispiel #7
0
    def test_basic1(self):
        """Test basic functions."""
        from pineboolib.fllegacy import systype
        import os

        qsa_sys = systype.SysType()
        path = fixture_path("principal.eneboopkg")
        self.assertTrue(os.path.exists(path))
        qsa_sys.loadModules(path, False)
        application.PROJECT.actions["flareas"].load()

        application.PROJECT.actions["flmodules"].openDefaultForm()

        form = application.PROJECT.actions[  # type: ignore [attr-defined] # noqa F821
            "flmodules"].mainform_widget
        # form = flformdb.FLFormDB(None, action)
        # self.assertTrue(form)
        # form.load()
        fltable = form.findChild(fltabledb.FLTableDB, "tableDBRecords")
        self.assertTrue(fltable)

        fldatatable = fltable.tableRecords()
        self.assertTrue(fldatatable)
        self.assertEqual(fldatatable.fieldName(1), "idmodulo")

        fldatatable.clearChecked()
        fldatatable.setPrimaryKeyChecked("idmodulo", True)
Beispiel #8
0
    def test_cursor_asignment(self) -> None:
        """Test flformrecord cursor assignment"""

        from pineboolib.qsa import dictmodules
        from pineboolib.application.database import pnsqlcursor

        from pineboolib.fllegacy import systype
        import os

        qsa_sys = systype.SysType()
        path = fixture_path("principal.eneboopkg")
        self.assertTrue(os.path.exists(path))
        qsa_sys.loadModules(path, False)
        application.PROJECT.actions["flareas"].load()

        cursor_1 = pnsqlcursor.PNSqlCursor("flareas")
        cursor_1.select()
        cursor_1.setModeAccess(cursor_1.Insert)
        cursor_1.refreshBuffer()
        cursor_1.editRecord(False)

        cursor_3 = pnsqlcursor.PNSqlCursor("flareas")

        module_ = dictmodules.from_project("formRecordflareas")
        self.assertTrue(module_)
        cursor_2 = module_.cursor()

        self.assertNotEqual(cursor_1, cursor_3)
        self.assertEqual(cursor_1, cursor_2)
Beispiel #9
0
    def test_tables_globals(self) -> None:
        """Test table acls globals."""

        sys_type = systype.SysType()
        sys_type.installACL("segunda")
        acl = pnaccesscontrollists.PNAccessControlLists()
        acl.init()
        flapplication.aqApp.set_acl(acl)

        # clear metadata cache
        flapplication.aqApp.db().manager().cacheMetaDataSys_ = {}
        flapplication.aqApp.db().manager().cacheMetaData_ = {}

        mtd_flareas = flapplication.aqApp.db().manager().metadata("flareas")
        self.assertTrue(mtd_flareas)
        # '--'
        field_descripcion = mtd_flareas.field("descripcion")
        self.assertFalse(field_descripcion.editable())
        self.assertFalse(field_descripcion.visible())

        mtd_flusers = flapplication.aqApp.db().manager().metadata("flusers")
        self.assertTrue(mtd_flusers)
        # 'r-'
        field_descripcion = mtd_flusers.field("descripcion")
        self.assertFalse(field_descripcion.editable())
        self.assertTrue(field_descripcion.visible())

        mtd_fltest = flapplication.aqApp.db().manager().metadata("fltest")
        self.assertTrue(mtd_fltest)
        # 'rw'
        field = mtd_fltest.field("date_field")
        self.assertTrue(field.editable())
        self.assertTrue(field.visible())
Beispiel #10
0
 def test_project_others(self) -> None:
     """Test basics functions."""
     sys = systype.SysType()
     list_1 = sys.getWidgetList("formRecordclientes", "FLFieldDB")
     list_2 = sys.getWidgetList("formRecordclientes", "FLTableDB")
     list_3 = sys.getWidgetList("formRecordclientes", "Button")
     self.assertTrue(list_3)
     self.assertTrue(list_1)
     self.assertTrue(list_2)
Beispiel #11
0
    def test_project_info_2(self) -> None:
        """Test information functions."""
        from pineboolib import application

        sys = systype.SysType()
        res_1 = sys.xmlModule("flfactppal")
        self.assertTrue(res_1)
        path_ = application.PROJECT.tmpdir
        sys.exportModule("flfactppal", path_)
        sys.importModule("%s/flfactppal/flfactppal.mod" % path_)
Beispiel #12
0
    def test_translation(self) -> None:
        """Test translation function."""
        from pineboolib.qsa import qsa

        qsa_sys = systype.SysType()

        qsa.aqApp.loadTranslationFromModule("sys", "es")
        self.assertEqual(qsa_sys.translate("scripts", "hola python"),
                         "Holaaaaa")
        self.assertEqual(qsa_sys.translate("python", "hola python sin group"),
                         "Hola de nuevo!")
Beispiel #13
0
    def test_basic(self) -> None:
        """Test basic."""

        from pineboolib.fllegacy import systype
        import os

        qsa_sys = systype.SysType()
        path = fixture_path("principal.eneboopkg")
        self.assertTrue(os.path.exists(path))
        qsa_sys.loadModules(path, False)
        application.PROJECT.actions["flareas"].execMainScript("formareas")
        application.PROJECT.actions["flreinit"].execDefaultScript()
        application.PROJECT.actions["flareas"].formRecordWidget()
        self.assertTrue(application.PROJECT.actions["flareas"].formRecordWidget()._loaded)
    def test_pnpackager(self) -> None:
        """Test eneboopkgs load."""
        from pineboolib import application
        from pineboolib.fllegacy import systype
        import os

        file_name = "%s/package.eneboopkg" % application.PROJECT.tmpdir
        packager = pnpackager.PNPackager(file_name)
        self.assertTrue(packager.pack(fixture_path("principal")))
        self.assertTrue(os.path.exists(file_name))
        self.assertTrue(os.path.exists("%s/modules.def" % os.path.dirname(file_name)))
        self.assertTrue(os.path.exists("%s/files.def" % os.path.dirname(file_name)))

        qsa_sys = systype.SysType()
        qsa_sys.loadModules(file_name, False)
Beispiel #15
0
    def test_form_flacos(self) -> None:
        """Test form acls from flacos."""
        from pineboolib.qsa import qsa

        sys_type = systype.SysType()
        sys_type.installACL("tercera")
        acl = pnaccesscontrollists.PNAccessControlLists()
        acl.init()
        flapplication.aqApp.set_acl(acl)
        button_1 = qsa.from_project("formRecordflmodules").child(
            "botonExportar")  # r-
        button_2 = qsa.from_project("formRecordflmodules").child(
            "botonCargar")  # --
        self.assertTrue(button_2.isHidden())  # not visible
        self.assertFalse(button_2.isEnabled())  # not enabled
        self.assertFalse(button_1.isHidden())  # visible
        self.assertFalse(button_1.isEnabled())  # not enabled
Beispiel #16
0
    def test_basic3(self) -> None:
        """Basic test 3."""

        from pineboolib.fllegacy import systype

        conn_manager = application.PROJECT.conn_manager
        sys_type = systype.SysType()
        conn_ = conn_manager.mainConn()

        self.assertTrue(conn_.driver())
        self.assertTrue(conn_.cursor())
        sys_type.addDatabase("conn_test_2")
        self.assertTrue(conn_manager.useConn("conn_test_2").isOpen())
        self.assertTrue(sys_type.removeDatabase("conn_test_2"))
        self.assertEqual(conn_.driverName(), "FLsqlite")
        self.assertEqual(conn_.driver().alias_, conn_.driverAlias())
        self.assertEqual(conn_.driverNameToDriverAlias(conn_.driverName()),
                         "SQLite3 (SQLITE3)")
Beispiel #17
0
    def test_project_info(self) -> None:
        """Test information functions."""
        sys = systype.SysType()

        document_ = sys.mvProjectXml()
        self.assertEqual(document_.toString(), "")

        list_modules = sys.mvProjectModules()
        self.assertEqual(list_modules, [])

        list_extensions = sys.mvProjectExtensions()
        self.assertEqual(list_extensions, [])
        self.assertEqual(sys.calculateShaGlobal(),
                         "cfc09ed22ee2b16a0c571bb99f383b7dd4113553")
        changes = sys.localChanges()
        self.assertEqual(changes["size"], 0)
        res_ = sys.xmlFilesDefBd()
        self.assertTrue(res_)
Beispiel #18
0
    def test_basic1(self) -> None:
        """Basic test."""
        from pineboolib.application.database import pnsqlcursor
        from pineboolib.fllegacy import systype
        import os

        qsa_sys = systype.SysType()
        path = fixture_path("principal.eneboopkg")
        self.assertTrue(os.path.exists(path))
        qsa_sys.loadModules(path, False)
        application.PROJECT.actions["flareas"].load()

        cursor = pnsqlcursor.PNSqlCursor("fltest2")
        manager_ = cursor.db().manager()
        field_mtd = cursor.metadata().field("string_field")

        if field_mtd is not None:

            self.assertEqual(
                manager_.formatAssignValue(field_mtd, "string", True),
                "upper(fltest2.string_field) = 'STRING'",
            )

            self.assertEqual(
                manager_.formatAssignValueLike(field_mtd, "value", True),
                "upper(fltest2.string_field) LIKE 'VALUE%%'",
            )

            self.assertEqual(
                manager_.formatValueLike(field_mtd, "value", True),
                "LIKE 'VALUE%%'")

        mtd_ = manager_.metadata("flvar")
        self.assertTrue(mtd_ is not None)
        if mtd_ is not None:
            self.assertFalse(manager_.checkMetaData(mtd_, cursor.metadata()))
            self.assertTrue(manager_.checkMetaData(mtd_, mtd_))

        self.assertEqual(
            manager_.formatAssignValue("nombre", "string", "prueba.qs", True),
            "upper(nombre) = 'PRUEBA.QS'",
        )
Beispiel #19
0
    def test_pixmap(self) -> None:
        """Text str to pixmap function."""
        from pineboolib.application.database import pnsqlcursor
        from PyQt5 import QtCore

        sys = systype.SysType()
        cursor = pnsqlcursor.PNSqlCursor("flmodules")
        cursor.select("1=1")
        cursor.first()
        buffer_ = cursor.buffer()
        self.assertTrue(buffer_)
        if buffer_:
            icono_txt = buffer_.value("icono")
            pixmap = sys.toPixmap(str(icono_txt))
            self.assertTrue(pixmap)
            res_txt = sys.fromPixmap(pixmap)
            self.assertTrue(res_txt.find("22 22 214 2") > -1)
            pixmap_2 = sys.scalePixmap(pixmap, 50, 50,
                                       QtCore.Qt.KeepAspectRatio)
            self.assertTrue(pixmap_2)
Beispiel #20
0
    def test_transaction_level(self) -> None:
        from pineboolib.qsa import qsa
        from pineboolib.application.metadata import pnrelationmetadata

        sys_1 = systype.SysType()
        sys_2 = qsa.sys

        self.assertEqual(sys_1.transactionLevel(), 0)
        self.assertEqual(sys_2.transactionLevel(), 0)

        cur_areas = qsa.FLSqlCursor("flareas")

        cursor = qsa.FLSqlCursor("flareas")
        cursor.setModeAccess(cursor.Insert)
        cursor.refreshBuffer()
        cursor.setValueBuffer("bloqueo", True)
        cursor.setValueBuffer("idarea", "H")
        cursor.setValueBuffer("descripcion", "Área de prueba H")
        self.assertTrue(cursor.commitBuffer())
        rel = pnrelationmetadata.PNRelationMetaData(
            "flareas", "idarea",
            pnrelationmetadata.PNRelationMetaData.RELATION_1M)
        rel.setField("idarea")
        cur_areas.select("idarea ='H'")
        cur_areas.first()
        self.assertEqual(cur_areas.valueBuffer("idarea"), "H")
        cur_areas.setModeAccess(cur_areas.Edit)
        cur_areas.refreshBuffer()
        cur_modulos = qsa.FLSqlCursor("flmodules", True, "default", cur_areas,
                                      rel)
        cur_modulos.select()
        cur_modulos.refreshBuffer()
        self.assertEqual(sys_1.transactionLevel(), 0)
        self.assertEqual(sys_2.transactionLevel(), 0)

        cur_modulos.setModeAccess(cur_modulos.Insert)
        cur_modulos.transaction()
        self.assertEqual(sys_1.transactionLevel(), 1)
        self.assertEqual(sys_2.transactionLevel(), 1)
        self.assertTrue(cur_modulos.rollback())
Beispiel #21
0
    def test_translations(self) -> None:
        """Test translations functions."""

        sys = systype.SysType()

        self.assertEqual(sys.translate("MetaData", "123"), "123")
Beispiel #22
0
 def test_basic_1(self) -> None:
     """Test basic."""
     flapplication.aqApp.db().mainConn().setInteractiveGUI(False)
     systype.SysType().selectModsDialog(
         ["flfactppal", "flfactinfo", "flfactalma"])