Hi, I have submitted a patch for review:
https://gerrit.libreoffice.org/4294 To pull it, you can do: git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/94/4294/1 Migrate CheckFields unit test to python Change-Id: Ia765b37888b4095a735015e792f06fc89201d1a3 --- M solenv/gbuild/PythonTest.mk M sw/PythonTest_sw_python.mk A sw/qa/python/check_fields.py M unotest/source/python/org/libreoffice/unotest.py 4 files changed, 61 insertions(+), 0 deletions(-) diff --git a/solenv/gbuild/PythonTest.mk b/solenv/gbuild/PythonTest.mk index eaa8757..012d642 100644 --- a/solenv/gbuild/PythonTest.mk +++ b/solenv/gbuild/PythonTest.mk @@ -40,6 +40,7 @@ ($(gb_PythonTest_PRECOMMAND) \ $(if $(G_SLICE),G_SLICE=$(G_SLICE)) \ $(if $(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \ + $(DEFS) \ URE_BOOTSTRAP=vnd.sun.star.pathname:$(gb_DEVINSTALLROOT)/program/fundamentalrc \ PYTHONPATH=$(PYPATH) \ UserInstallation="$(call gb_Helper_make_url,$(OUTDIR)/unittest)" \ @@ -60,6 +61,11 @@ $(eval $(call gb_Module_register_target,$(call gb_PythonTest_get_target,$(1)),$(call gb_PythonTest_get_clean_target,$(1)))) $(call gb_Helper_make_userfriendly_targets,$(1),PythonTest) + +endef + +define gb_PythonTest_set_defs +$(call gb_PythonTest_get_target,$(1)) : DEFS := $(2) endef @@ -94,6 +100,7 @@ endef +gb_PythonTest_set_defs := gb_PythonTest_add_modules := gb_PythonTest_use_customtarget := diff --git a/sw/PythonTest_sw_python.mk b/sw/PythonTest_sw_python.mk index cbddfc5..ecf57ba 100644 --- a/sw/PythonTest_sw_python.mk +++ b/sw/PythonTest_sw_python.mk @@ -9,7 +9,12 @@ $(eval $(call gb_PythonTest_PythonTest,sw_python)) +$(eval $(call gb_PythonTest_set_defs,sw_python,\ + TDOC="$(SRCDIR)/sw/qa/complex/writer/testdocuments" \ +)) + $(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\ + check_fields \ get_expression \ set_expression \ var_fields \ diff --git a/sw/qa/python/check_fields.py b/sw/qa/python/check_fields.py new file mode 100644 index 0000000..180ae8f --- /dev/null +++ b/sw/qa/python/check_fields.py @@ -0,0 +1,32 @@ +import unittest +from org.libreoffice.unotest import UnoInProcess + +class CheckFields(unittest.TestCase): + _uno = None + _xDoc = None + + @classmethod + def setUpClass(cls): + cls._uno = UnoInProcess() + cls._uno.setUp() + cls._xDoc = cls._uno.openWriterTemplateDoc("fdo39694.ott") + + @classmethod + def tearDownClass(cls): + cls._uno.tearDown() + + def test_fdo39694_load(self): + placeholders = ["<Kadr1>", "<Kadr2>", "<Kadr3>", "<Kadr4>", "<Pnname>", "<Pvname>", "<Pgeboren>"] + xDoc = self.__class__._xDoc + xEnumerationAccess = xDoc.getTextFields() + xFieldEnum = xEnumerationAccess.createEnumeration() + while xFieldEnum.hasMoreElements(): + xField = xFieldEnum.nextElement() + if xField.supportsService("com.sun.star.text.TextField.JumpEdit"): + xAnchor = xField.getAnchor() + readContent = xAnchor.getString() + self.assertTrue(readContent in placeholders, + "field %s not contained" % readContent) + +if __name__ == '__main__': + unittest.main() diff --git a/unotest/source/python/org/libreoffice/unotest.py b/unotest/source/python/org/libreoffice/unotest.py index 3ec016a..883d3a4 100644 --- a/unotest/source/python/org/libreoffice/unotest.py +++ b/unotest/source/python/org/libreoffice/unotest.py @@ -31,6 +31,11 @@ print(" URE_BOOTSTRAP=file:///installation/opt/program/fundamentalrc") raise +try: + from urllib.parse import quote +except ImportError: + from urllib import quote + ### utilities ### def mkPropertyValue(name, value): @@ -181,6 +186,18 @@ assert(self.xDoc) return self.xDoc + def openWriterTemplateDoc(self, file): + assert(self.xContext) + smgr = self.getContext().ServiceManager + desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", self.getContext()) + props = [("Hidden", True), ("ReadOnly", False), ("AsTemplate", True)] + loadProps = tuple([mkPropertyValue(name, value) for (name, value) in props]) + path = os.getenv("TDOC") + url = "file://" + quote(path) + "/" + quote(file) + self.xDoc = desktop.loadComponentFromURL(url, "_blank", 0, loadProps) + assert(self.xDoc) + return self.xDoc + def checkProperties(self, obj, dict, test): for k,v in dict.items(): obj.setPropertyValue(k, v) -- To view, visit https://gerrit.libreoffice.org/4294 To unsubscribe, visit https://gerrit.libreoffice.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia765b37888b4095a735015e792f06fc89201d1a3 Gerrit-PatchSet: 1 Gerrit-Project: core Gerrit-Branch: master Gerrit-Owner: David Ostrovsky <david.ostrov...@gmx.de> _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice