summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/python/check_bookmarks.py4
-rw-r--r--sw/qa/python/check_change_color.py1
-rw-r--r--sw/qa/python/check_cross_references.py4
-rw-r--r--sw/qa/python/check_fields.py8
-rw-r--r--sw/qa/python/check_flies.py8
-rw-r--r--sw/qa/python/check_indexed_property_values.py1
-rw-r--r--sw/qa/python/check_named_property_values.py1
-rw-r--r--sw/qa/python/check_table.py4
-rw-r--r--sw/qa/python/get_expression.py4
-rw-r--r--sw/qa/python/set_expression.py4
-rw-r--r--sw/qa/python/text_portion_enumeration_test.py5
-rw-r--r--sw/qa/python/var_fields.py3
12 files changed, 32 insertions, 15 deletions
diff --git a/sw/qa/python/check_bookmarks.py b/sw/qa/python/check_bookmarks.py
index 73fd9bb6b98e..8210b4eb005a 100644
--- a/sw/qa/python/check_bookmarks.py
+++ b/sw/qa/python/check_bookmarks.py
@@ -47,6 +47,10 @@ class CheckBookmarks(unittest.TestCase):
@classmethod
def tearDownClass(cls):
cls._uno.tearDown()
+ # HACK in case cls._xDoc holds a UNO proxy to an SwXTextDocument (whose dtor calls
+ # Application::GetSolarMutex via sw::UnoImplPtrDeleter), which would potentially only be
+ # garbage-collected after VCL has already been deinitialized:
+ cls._xDoc = None
def test_bookmarks(self):
self.xDoc = self.__class__._xDoc
diff --git a/sw/qa/python/check_change_color.py b/sw/qa/python/check_change_color.py
index d8562bc77b52..07b622031a61 100644
--- a/sw/qa/python/check_change_color.py
+++ b/sw/qa/python/check_change_color.py
@@ -27,7 +27,6 @@ class CheckChangeColor(unittest.TestCase):
def setUpClass(cls):
cls._uno = UnoInProcess()
cls._uno.setUp()
- cls._xEmptyDoc = cls._uno.openEmptyWriterDoc()
cls.RED = 0xFF0000
cls.BLUE = 0x0000FF
cls.GREEN = 0x008000
diff --git a/sw/qa/python/check_cross_references.py b/sw/qa/python/check_cross_references.py
index 742cc0d94ad5..6aad1c47ca3a 100644
--- a/sw/qa/python/check_cross_references.py
+++ b/sw/qa/python/check_cross_references.py
@@ -46,6 +46,10 @@ class CheckCrossReferences(unittest.TestCase):
@classmethod
def tearDownClass(cls):
cls._uno.tearDown()
+ # HACK in case cls.document holds a UNO proxy to an SwXTextDocument (whose dtor calls
+ # Application::GetSolarMutex via sw::UnoImplPtrDeleter), which would potentially only be
+ # garbage-collected after VCL has already been deinitialized:
+ cls.document = None
def getNextField(self):
while True:
diff --git a/sw/qa/python/check_fields.py b/sw/qa/python/check_fields.py
index 60418a93001d..eb6dd2dc1c8a 100644
--- a/sw/qa/python/check_fields.py
+++ b/sw/qa/python/check_fields.py
@@ -17,8 +17,6 @@ class CheckFields(unittest.TestCase):
def setUpClass(cls):
cls._uno = UnoInProcess()
cls._uno.setUp()
- cls._xDoc = cls._uno.openTemplateFromTDOC("fdo39694.ott")
- cls._xEmptyDoc = cls._uno.openEmptyWriterDoc()
@classmethod
def tearDownClass(cls):
@@ -26,7 +24,7 @@ class CheckFields(unittest.TestCase):
def test_fdo39694_load(self):
placeholders = ["<Kadr1>", "<Kadr2>", "<Kadr3>", "<Kadr4>", "<Pnname>", "<Pvname>", "<Pgeboren>"]
- xDoc = self.__class__._xDoc
+ xDoc = self.__class__._uno.openTemplateFromTDOC("fdo39694.ott")
xEnumerationAccess = xDoc.getTextFields()
xFieldEnum = xEnumerationAccess.createEnumeration()
for xField in xFieldEnum:
@@ -35,9 +33,10 @@ class CheckFields(unittest.TestCase):
read_content = xAnchor.getString()
self.assertTrue(read_content in placeholders,
"field %s is not contained: " % read_content)
+ xDoc.close(True)
def test_fdo42073(self):
- xDoc = self.__class__._xEmptyDoc
+ xDoc = self.__class__._uno.openEmptyWriterDoc()
xBodyText = xDoc.getText()
xCursor = xBodyText.createTextCursor()
xTextField = xDoc.createInstance("com.sun.star.text.TextField.Input")
@@ -48,6 +47,7 @@ class CheckFields(unittest.TestCase):
xTextField.setPropertyValue("Content", content)
read_content = xTextField.getPropertyValue("Content")
self.assertEqual(content, read_content)
+ xDoc.close(True)
if __name__ == '__main__':
unittest.main()
diff --git a/sw/qa/python/check_flies.py b/sw/qa/python/check_flies.py
index 6353ccda150d..0e60b2195e89 100644
--- a/sw/qa/python/check_flies.py
+++ b/sw/qa/python/check_flies.py
@@ -26,18 +26,18 @@ class CheckFlies(unittest.TestCase):
def setUpClass(cls):
cls._uno = UnoInProcess()
cls._uno.setUp()
- cls.document = cls._uno.openDocFromTDOC("CheckFlies.odt")
@classmethod
def tearDownClass(cls):
cls._uno.tearDown()
def test_checkFlies(self):
- xTFS = self.__class__.document
+ document = self.__class__._uno.openDocFromTDOC("CheckFlies.odt")
+ xTFS = document
self.checkTextFrames(xTFS)
- xTGOS = self.__class__.document
+ xTGOS = document
self.checkGraphicFrames(xTGOS)
- xTEOS = self.__class__.document
+ xTEOS = document
self.checkEmbeddedFrames(xTEOS)
def checkEmbeddedFrames(self, xTGOS):
diff --git a/sw/qa/python/check_indexed_property_values.py b/sw/qa/python/check_indexed_property_values.py
index 5609aa4225cb..ceaf82a6cac6 100644
--- a/sw/qa/python/check_indexed_property_values.py
+++ b/sw/qa/python/check_indexed_property_values.py
@@ -34,7 +34,6 @@ class CheckIndexedPropertyValues(unittest.TestCase):
cls._uno = UnoInProcess()
cls._uno.setUp()
cls.xContext = cls._uno.getContext()
- cls.xDoc = cls._uno.openEmptyWriterDoc()
@classmethod
def tearDownClass(cls):
diff --git a/sw/qa/python/check_named_property_values.py b/sw/qa/python/check_named_property_values.py
index dd06adc60313..1a81d13a6323 100644
--- a/sw/qa/python/check_named_property_values.py
+++ b/sw/qa/python/check_named_property_values.py
@@ -36,7 +36,6 @@ class CheckNamedPropertyValues(unittest.TestCase):
cls._uno = UnoInProcess()
cls._uno.setUp()
cls.xContext = cls._uno.getContext()
- cls.xDoc = cls._uno.openEmptyWriterDoc()
@classmethod
def tearDownClass(cls):
diff --git a/sw/qa/python/check_table.py b/sw/qa/python/check_table.py
index 35da08fe8195..8fd888f187bd 100644
--- a/sw/qa/python/check_table.py
+++ b/sw/qa/python/check_table.py
@@ -583,6 +583,8 @@ class CheckTable(unittest.TestCase):
xCellRangeString = xChartDataProvider.convertRangeFromXML("Table1.$A$1:.$C$3")
self.assertEqual("Table1.A1:C3", xCellRangeString)
+ xDoc.dispose()
+
def test_splitRangeHorizontal(self):
xDoc = CheckTable._uno.openEmptyWriterDoc()
xTable = xDoc.createInstance("com.sun.star.text.TextTable")
@@ -600,6 +602,7 @@ class CheckTable(unittest.TestCase):
self.assertTrue(math.isnan(xTable.Data[1][1]))
self.assertTrue(math.isnan(xTable.Data[2][0]))
self.assertTrue(math.isnan(xTable.Data[2][1]))
+ xDoc.dispose()
def test_mergeRangeHorizontal(self):
xDoc = CheckTable._uno.openEmptyWriterDoc()
@@ -618,6 +621,7 @@ class CheckTable(unittest.TestCase):
self.assertEqual(xTable.Data[1][1], float(5))
self.assertEqual(xTable.Data[1][2], float(6))
self.assertEqual(xTable.Data[2], (float(7), float(8), float(9)))
+ xDoc.dispose()
if __name__ == '__main__':
unittest.main()
diff --git a/sw/qa/python/get_expression.py b/sw/qa/python/get_expression.py
index 7462db68a730..98e9402bb602 100644
--- a/sw/qa/python/get_expression.py
+++ b/sw/qa/python/get_expression.py
@@ -22,6 +22,10 @@ class TestGetExpression(unittest.TestCase):
@classmethod
def tearDownClass(cls):
cls._uno.tearDown()
+ # HACK in case cls._xDoc holds a UNO proxy to an SwXTextDocument (whose dtor calls
+ # Application::GetSolarMutex via sw::UnoImplPtrDeleter), which would potentially only be
+ # garbage-collected after VCL has already been deinitialized:
+ cls._xDoc = None
def test_get_expression(self):
self.__class__._uno.checkProperties(
diff --git a/sw/qa/python/set_expression.py b/sw/qa/python/set_expression.py
index 220952536fea..c5dc5e6ae2e9 100644
--- a/sw/qa/python/set_expression.py
+++ b/sw/qa/python/set_expression.py
@@ -18,15 +18,15 @@ class TestSetExpression(unittest.TestCase):
def setUpClass(cls):
cls._uno = UnoInProcess()
cls._uno.setUp()
- cls._xDoc = cls._uno.openEmptyWriterDoc()
@classmethod
def tearDownClass(cls):
cls._uno.tearDown()
def test_set_expression(self):
+ xDoc = self.__class__._uno.openEmptyWriterDoc()
self.__class__._uno.checkProperties(
- self.__class__._xDoc.createInstance("com.sun.star.text.textfield.SetExpression"),
+ xDoc.createInstance("com.sun.star.text.textfield.SetExpression"),
{"NumberingType": 0,
"Content": "foo",
"CurrentPresentation": "bar",
diff --git a/sw/qa/python/text_portion_enumeration_test.py b/sw/qa/python/text_portion_enumeration_test.py
index 3a7e9d8586be..c379138db303 100644
--- a/sw/qa/python/text_portion_enumeration_test.py
+++ b/sw/qa/python/text_portion_enumeration_test.py
@@ -934,6 +934,11 @@ class TextPortionEnumerationTest(unittest.TestCase):
@classmethod
def tearDownClass(cls):
cls.xDoc.close(True)
+ cls._uno.tearDown()
+ # HACK in case cls.xDoc holds a UNO proxy to an SwXTextDocument (whose dtor calls
+ # Application::GetSolarMutex via sw::UnoImplPtrDeleter), which would potentially only be
+ # garbage-collected after VCL has already been deinitialized:
+ cls.xDoc = None
def test_text(self):
root = TreeNode()
diff --git a/sw/qa/python/var_fields.py b/sw/qa/python/var_fields.py
index c2af7a40f408..52fe3ddd6938 100644
--- a/sw/qa/python/var_fields.py
+++ b/sw/qa/python/var_fields.py
@@ -19,7 +19,6 @@ class TestVarFields(unittest.TestCase):
def setUpClass(cls):
cls._uno = UnoInProcess()
cls._uno.setUp()
- cls._xDoc = cls._uno.openEmptyWriterDoc()
@classmethod
def tearDownClass(cls):
@@ -32,7 +31,7 @@ class TestVarFields(unittest.TestCase):
sw/qa/complex/writer/VarFields.java
"""
- xDoc = self.__class__._xDoc
+ xDoc = self.__class__._uno.openEmptyWriterDoc()
xBodyText = xDoc.getText()
xCursor = xBodyText.createTextCursor()
# 0. create text field