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")
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)
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())
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)
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())
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())
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)
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)
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())
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)
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_)
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!")
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)
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
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)")
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_)
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'", )
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)
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())
def test_translations(self) -> None: """Test translations functions.""" sys = systype.SysType() self.assertEqual(sys.translate("MetaData", "123"), "123")
def test_basic_1(self) -> None: """Test basic.""" flapplication.aqApp.db().mainConn().setInteractiveGUI(False) systype.SysType().selectModsDialog( ["flfactppal", "flfactinfo", "flfactalma"])