[PATCH] Migrate CheckFields unit test to python

David Ostrovsky (via Code Review) gerrit at gerrit.libreoffice.org
Sat Jun 15 06:12:58 PDT 2013


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.Ostrovsky at gmx.de>



More information about the LibreOffice mailing list