Kaydet (Commit) 9d67a587 authored tarafından n5xgdh's avatar n5xgdh Kaydeden (comit) Björn Michaelsen

tdf#97361: Changed naming convention to Python type, object factories implemented

Change-Id: Id42e9a2e2cfd7c95140411123e8702dfdb4054da
Reviewed-on: https://gerrit.libreoffice.org/31676Reviewed-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@canonical.com>
Tested-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@canonical.com>
üst ccbb0dd8
...@@ -23,13 +23,13 @@ class InsertRemoveCells(unittest.TestCase): ...@@ -23,13 +23,13 @@ class InsertRemoveCells(unittest.TestCase):
smgr = ctxt.ServiceManager smgr = ctxt.ServiceManager
desktop = smgr.createInstanceWithContext('com.sun.star.frame.Desktop', ctxt) desktop = smgr.createInstanceWithContext('com.sun.star.frame.Desktop', ctxt)
loadProps = tuple(mkPropertyValue(k, v) for (k, v) in ( load_props = tuple(mkPropertyValue(k, v) for (k, v) in (
('Hidden', True), ('Hidden', True),
('ReadOnly', False) ('ReadOnly', False)
)) ))
tdoc_dir = getenv('TDOC') tdoc_dir = getenv('TDOC')
url = 'file://' + quote(path.join(tdoc_dir, 'fdo74824.ods')) url = 'file://' + quote(path.join(tdoc_dir, 'fdo74824.ods'))
doc = desktop.loadComponentFromURL(url, "_blank", 0, loadProps) doc = desktop.loadComponentFromURL(url, "_blank", 0, load_props)
sheet = doc.Sheets.Sheet1 sheet = doc.Sheets.Sheet1
area = sheet.getCellRangeByName('A2:B4') area = sheet.getCellRangeByName('A2:B4')
......
...@@ -14,6 +14,9 @@ from testcollections_base import CollectionsTestBase ...@@ -14,6 +14,9 @@ from testcollections_base import CollectionsTestBase
from com.sun.star.beans import PropertyValue from com.sun.star.beans import PropertyValue
from com.sun.star.table import CellAddress from com.sun.star.table import CellAddress
# TextTable instance factory
def getTextTableInstance(doc):
return doc.createInstance('com.sun.star.text.TextTable')
# Tests behaviour of objects implementing XCellRange using the new-style # Tests behaviour of objects implementing XCellRange using the new-style
# collection accessors # collection accessors
...@@ -48,10 +51,10 @@ class TestXCellRange(CollectionsTestBase): ...@@ -48,10 +51,10 @@ class TestXCellRange(CollectionsTestBase):
def test_XCellRange_Table_Cell_00(self): def test_XCellRange_Table_Cell_00(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance('com.sun.star.text.TextTable') text_table = getTextTableInstance(doc)
textTable.initialize(10, 10) text_table.initialize(10, 10)
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
tbl = doc.TextTables.getByIndex(0) tbl = doc.TextTables.getByIndex(0)
# When # When
...@@ -86,10 +89,10 @@ class TestXCellRange(CollectionsTestBase): ...@@ -86,10 +89,10 @@ class TestXCellRange(CollectionsTestBase):
def test_XCellRange_Table_Cell_37(self): def test_XCellRange_Table_Cell_37(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance('com.sun.star.text.TextTable') text_table = getTextTableInstance(doc)
textTable.initialize(10, 10) text_table.initialize(10, 10)
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
tbl = doc.TextTables.getByIndex(0) tbl = doc.TextTables.getByIndex(0)
# When # When
...@@ -124,10 +127,10 @@ class TestXCellRange(CollectionsTestBase): ...@@ -124,10 +127,10 @@ class TestXCellRange(CollectionsTestBase):
def test_XCellRange_Table_Range_Index_Slice(self): def test_XCellRange_Table_Range_Index_Slice(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance('com.sun.star.text.TextTable') text_table = getTextTableInstance(doc)
textTable.initialize(10, 10) text_table.initialize(10, 10)
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
tbl = doc.TextTables.getByIndex(0) tbl = doc.TextTables.getByIndex(0)
doc.lockControllers() doc.lockControllers()
tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10)) tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10))
...@@ -165,10 +168,10 @@ class TestXCellRange(CollectionsTestBase): ...@@ -165,10 +168,10 @@ class TestXCellRange(CollectionsTestBase):
def test_XCellRange_Table_Range_Slice_Index(self): def test_XCellRange_Table_Range_Slice_Index(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance('com.sun.star.text.TextTable') text_table = getTextTableInstance(doc)
textTable.initialize(10, 10) text_table.initialize(10, 10)
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
tbl = doc.TextTables.getByIndex(0) tbl = doc.TextTables.getByIndex(0)
doc.lockControllers() doc.lockControllers()
tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10)) tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10))
...@@ -222,10 +225,10 @@ class TestXCellRange(CollectionsTestBase): ...@@ -222,10 +225,10 @@ class TestXCellRange(CollectionsTestBase):
def test_XCellRange_Table_Range_Slices(self): def test_XCellRange_Table_Range_Slices(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance('com.sun.star.text.TextTable') text_table = getTextTableInstance(doc)
textTable.initialize(10, 10) text_table.initialize(10, 10)
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
tbl = doc.TextTables.getByIndex(0) tbl = doc.TextTables.getByIndex(0)
doc.lockControllers() doc.lockControllers()
tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10)) tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10))
...@@ -263,10 +266,10 @@ class TestXCellRange(CollectionsTestBase): ...@@ -263,10 +266,10 @@ class TestXCellRange(CollectionsTestBase):
def test_XCellRange_Table_Range_Descriptor(self): def test_XCellRange_Table_Range_Descriptor(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance('com.sun.star.text.TextTable') text_table = getTextTableInstance(doc)
textTable.initialize(10, 10) text_table.initialize(10, 10)
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
tbl = doc.TextTables.getByIndex(0) tbl = doc.TextTables.getByIndex(0)
doc.lockControllers() doc.lockControllers()
tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10)) tbl.DataArray = tuple(tuple(str(100 + y) for y in range(10*x, 10*x + 10)) for x in range(10))
......
...@@ -15,6 +15,9 @@ from inspect import isclass ...@@ -15,6 +15,9 @@ from inspect import isclass
from testcollections_base import CollectionsTestBase from testcollections_base import CollectionsTestBase
from com.sun.star.beans import PropertyValue from com.sun.star.beans import PropertyValue
# Footnote instance factory
def getFootnoteInstance(doc):
return doc.createInstance("com.sun.star.text.Footnote")
# Tests behaviour of objects implementing XIndexAccess using the new-style # Tests behaviour of objects implementing XIndexAccess using the new-style
# collection accessors # collection accessors
...@@ -26,7 +29,7 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -26,7 +29,7 @@ class TestXIndexAccess(CollectionsTestBase):
def insertTestFootnotes(self, doc, count): def insertTestFootnotes(self, doc, count):
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
for i in range(count): for i in range(count):
footnote = doc.createInstance("com.sun.star.text.Footnote") footnote = getFootnoteInstance(doc)
footnote.Label = 'n'+str(i) footnote.Label = 'n'+str(i)
doc.Text.insertTextContent(cursor, footnote, 0) doc.Text.insertTextContent(cursor, footnote, 0)
...@@ -82,7 +85,7 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -82,7 +85,7 @@ class TestXIndexAccess(CollectionsTestBase):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
footnote = doc.createInstance("com.sun.star.text.Footnote") footnote = getFootnoteInstance(doc)
doc.Text.insertTextContent(cursor, footnote, 0) doc.Text.insertTextContent(cursor, footnote, 0)
# When # When
...@@ -128,11 +131,11 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -128,11 +131,11 @@ class TestXIndexAccess(CollectionsTestBase):
# val1,val2 = obj[2:4] # Access by slice # val1,val2 = obj[2:4] # Access by slice
def test_XIndexAccess_ReadSlice(self): def test_XIndexAccess_ReadSlice(self):
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
testMax = 4 test_max = 4
for i in range(testMax): for i in range(test_max):
t = tuple(range(i)) t = tuple(range(i))
for j in [x for x in range(-testMax-2, testMax+3)] + [None]: for j in [x for x in range(-test_max-2, test_max+3)] + [None]:
for k in [x for x in range(-testMax-2, testMax+3)] + [None]: for k in [x for x in range(-test_max-2, test_max+3)] + [None]:
key = slice(j, k) key = slice(j, k)
expected = t[key] expected = t[key]
self.readValuesTestFixture(doc, i, key, expected) self.readValuesTestFixture(doc, i, key, expected)
...@@ -141,11 +144,11 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -141,11 +144,11 @@ class TestXIndexAccess(CollectionsTestBase):
# val1,val2 = obj[0:3:2] # Access by extended slice # val1,val2 = obj[0:3:2] # Access by extended slice
def test_XIndexAccess_ReadExtendedSlice(self): def test_XIndexAccess_ReadExtendedSlice(self):
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
testMax = 4 test_max = 4
for i in range(testMax): for i in range(test_max):
t = tuple(range(i)) t = tuple(range(i))
for j in [x for x in range(-testMax-2, testMax+3)] + [None]: for j in [x for x in range(-test_max-2, test_max+3)] + [None]:
for k in [x for x in range(-testMax-2, testMax+3)] + [None]: for k in [x for x in range(-test_max-2, test_max+3)] + [None]:
for l in [-2, -1, 2]: for l in [-2, -1, 2]:
key = slice(j, k, l) key = slice(j, k, l)
expected = t[key] expected = t[key]
...@@ -159,7 +162,7 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -159,7 +162,7 @@ class TestXIndexAccess(CollectionsTestBase):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
footnote = doc.createInstance("com.sun.star.text.Footnote") footnote = getFootnoteInstance(doc)
footnote.setLabel('foo') footnote.setLabel('foo')
doc.Text.insertTextContent(cursor, footnote, 0) doc.Text.insertTextContent(cursor, footnote, 0)
footnote = doc.Footnotes.getByIndex(0) footnote = doc.Footnotes.getByIndex(0)
...@@ -219,12 +222,12 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -219,12 +222,12 @@ class TestXIndexAccess(CollectionsTestBase):
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
# When # When
readFootnotes = [] read_footnotes = []
for f in doc.Footnotes: for f in doc.Footnotes:
readFootnotes.append(f) read_footnotes.append(f)
# Then # Then
self.assertEqual(0, len(readFootnotes)) self.assertEqual(0, len(read_footnotes))
# Tests syntax: # Tests syntax:
# for val in obj: ... # Implicit iterator (values) # for val in obj: ... # Implicit iterator (values)
...@@ -234,18 +237,18 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -234,18 +237,18 @@ class TestXIndexAccess(CollectionsTestBase):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
footnote = doc.createInstance("com.sun.star.text.Footnote") footnote = getFootnoteInstance(doc)
footnote.setLabel('foo') footnote.setLabel('foo')
doc.Text.insertTextContent(cursor, footnote, 0) doc.Text.insertTextContent(cursor, footnote, 0)
# When # When
readFootnotes = [] read_footnotes = []
for f in doc.Footnotes: for f in doc.Footnotes:
readFootnotes.append(f) read_footnotes.append(f)
# Then # Then
self.assertEqual(1, len(readFootnotes)) self.assertEqual(1, len(read_footnotes))
self.assertEqual('foo', readFootnotes[0].Label) self.assertEqual('foo', read_footnotes[0].Label)
# Tests syntax: # Tests syntax:
# for val in obj: ... # Implicit iterator (values) # for val in obj: ... # Implicit iterator (values)
...@@ -255,22 +258,22 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -255,22 +258,22 @@ class TestXIndexAccess(CollectionsTestBase):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
footnote1 = doc.createInstance("com.sun.star.text.Footnote") footnote1 = getFootnoteInstance(doc)
footnote2 = doc.createInstance("com.sun.star.text.Footnote") footnote2 = getFootnoteInstance(doc)
footnote1.setLabel('foo') footnote1.setLabel('foo')
footnote2.setLabel('bar') footnote2.setLabel('bar')
doc.Text.insertTextContent(cursor, footnote1, 0) doc.Text.insertTextContent(cursor, footnote1, 0)
doc.Text.insertTextContent(cursor, footnote2, 0) doc.Text.insertTextContent(cursor, footnote2, 0)
# When # When
readFootnotes = [] read_footnotes = []
for f in doc.Footnotes: for f in doc.Footnotes:
readFootnotes.append(f) read_footnotes.append(f)
# Then # Then
self.assertEqual(2, len(readFootnotes)) self.assertEqual(2, len(read_footnotes))
self.assertEqual('foo', readFootnotes[0].Label) self.assertEqual('foo', read_footnotes[0].Label)
self.assertEqual('bar', readFootnotes[1].Label) self.assertEqual('bar', read_footnotes[1].Label)
# Tests syntax: # Tests syntax:
# itr = iter(obj) # Named iterator (values) # itr = iter(obj) # Named iterator (values)
...@@ -280,7 +283,7 @@ class TestXIndexAccess(CollectionsTestBase): ...@@ -280,7 +283,7 @@ class TestXIndexAccess(CollectionsTestBase):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
footnote = doc.createInstance("com.sun.star.text.Footnote") footnote = getFootnoteInstance(doc)
footnote.setLabel('foo') footnote.setLabel('foo')
doc.Text.insertTextContent(cursor, footnote, 0) doc.Text.insertTextContent(cursor, footnote, 0)
......
...@@ -13,6 +13,10 @@ import uno ...@@ -13,6 +13,10 @@ import uno
from testcollections_base import CollectionsTestBase from testcollections_base import CollectionsTestBase
from com.sun.star.beans import PropertyValue from com.sun.star.beans import PropertyValue
# DataForm factory
def getDataFormInstance(doc):
return doc.createInstance("com.sun.star.form.component.DataForm")
# Tests behaviour of objects implementing XIndexContainer using the new-style # Tests behaviour of objects implementing XIndexContainer using the new-style
# collection accessors # collection accessors
...@@ -37,18 +41,18 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -37,18 +41,18 @@ class TestXIndexContainer(CollectionsTestBase):
def assignValuesTestFixture(self, count, key, values, expected): def assignValuesTestFixture(self, count, key, values, expected):
# Given # Given
propertyValues = self.generateTestPropertyValues(count) property_values = self.generateTestPropertyValues(count)
if type(values) is list: if type(values) is list:
toAssign = self.generateTestTuple(values) to_assign = self.generateTestTuple(values)
else: else:
toAssign = values to_assign = values
if not (isinstance(expected, Exception)): if not (isinstance(expected, Exception)):
toCompare = self.generateTestTuple(expected) to_compare = self.generateTestTuple(expected)
# When # When
captured = None captured = None
try: try:
propertyValues[key] = toAssign property_values[key] = to_assign
except Exception as e: except Exception as e:
captured = e captured = e
...@@ -60,20 +64,20 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -60,20 +64,20 @@ class TestXIndexContainer(CollectionsTestBase):
else: else:
# expected is list # expected is list
self.assertEqual(None, captured) self.assertEqual(None, captured)
self.assertEqual(len(expected), propertyValues.getCount()) self.assertEqual(len(expected), property_values.getCount())
for i in range(propertyValues.getCount()): for i in range(property_values.getCount()):
self.assertEqual(toCompare[i][0].Name, propertyValues.getByIndex(i)[0].Name) self.assertEqual(to_compare[i][0].Name, property_values.getByIndex(i)[0].Name)
def deleteValuesTestFixture(self, count, key, expected): def deleteValuesTestFixture(self, count, key, expected):
# Given # Given
propertyValues = self.generateTestPropertyValues(count) property_values = self.generateTestPropertyValues(count)
if not (isinstance(expected, Exception)): if not (isinstance(expected, Exception)):
toCompare = self.generateTestTuple(expected) to_compare = self.generateTestTuple(expected)
# When # When
captured = None captured = None
try: try:
del propertyValues[key] del property_values[key]
except Exception as e: except Exception as e:
captured = e captured = e
...@@ -85,9 +89,9 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -85,9 +89,9 @@ class TestXIndexContainer(CollectionsTestBase):
else: else:
# expected is list # expected is list
self.assertEqual(None, captured) self.assertEqual(None, captured)
self.assertEqual(len(expected), propertyValues.getCount()) self.assertEqual(len(expected), property_values.getCount())
for i in range(propertyValues.getCount()): for i in range(property_values.getCount()):
self.assertEqual(toCompare[i][0].Name, propertyValues.getByIndex(i)[0].Name) self.assertEqual(to_compare[i][0].Name, property_values.getByIndex(i)[0].Name)
# Tests syntax: # Tests syntax:
# obj[2:4] = val1,val2 # Replace by slice # obj[2:4] = val1,val2 # Replace by slice
...@@ -98,13 +102,13 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -98,13 +102,13 @@ class TestXIndexContainer(CollectionsTestBase):
# For: # For:
# Cases requiring sequence type coercion # Cases requiring sequence type coercion
def test_XIndexContainer_AssignSlice(self): def test_XIndexContainer_AssignSlice(self):
baseMax = 5 base_max = 5
assignMax = 5 assign_max = 5
for i in range(baseMax): for i in range(base_max):
for j in [x for x in range(-baseMax-2, baseMax+3)] + [None]: for j in [x for x in range(-base_max-2, base_max+3)] + [None]:
for k in [x for x in range(-baseMax-2, baseMax+3)] + [None]: for k in [x for x in range(-base_max-2, base_max+3)] + [None]:
key = slice(j, k) key = slice(j, k)
for l in range(assignMax): for l in range(assign_max):
assign = [y+100 for y in range(l)] assign = [y+100 for y in range(l)]
expected = list(range(i)) expected = list(range(i))
expected[key] = assign expected[key] = assign
...@@ -132,7 +136,7 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -132,7 +136,7 @@ class TestXIndexContainer(CollectionsTestBase):
def test_XIndexContainer_AssignSlice_NoCoercion(self): def test_XIndexContainer_AssignSlice_NoCoercion(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
form = doc.createInstance("com.sun.star.form.component.DataForm") form = getDataFormInstance(doc)
form.Name = 'foo' form.Name = 'foo'
# When # When
...@@ -146,14 +150,14 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -146,14 +150,14 @@ class TestXIndexContainer(CollectionsTestBase):
# For: # For:
# Cases requiring sequence type coercion # Cases requiring sequence type coercion
def test_XIndexContainer_AssignExtendedSlice(self): def test_XIndexContainer_AssignExtendedSlice(self):
baseMax = 5 base_max = 5
assignMax = 5 assign_max = 5
for i in range(baseMax): for i in range(base_max):
for j in [x for x in range(-baseMax-2, baseMax+3)] + [None]: for j in [x for x in range(-base_max-2, base_max+3)] + [None]:
for k in [x for x in range(-baseMax-2, baseMax+3)] + [None]: for k in [x for x in range(-base_max-2, base_max+3)] + [None]:
for l in [-2, -1, 1, 2]: for l in [-2, -1, 1, 2]:
key = slice(j, k, l) key = slice(j, k, l)
for m in range(assignMax): for m in range(assign_max):
assign = [y+100 for y in range(m)] assign = [y+100 for y in range(m)]
expected = list(range(i)) expected = list(range(i))
try: try:
...@@ -166,9 +170,9 @@ class TestXIndexContainer(CollectionsTestBase): ...@@ -166,9 +170,9 @@ class TestXIndexContainer(CollectionsTestBase):
# Tests syntax: # Tests syntax:
# del obj[0] # Delete by index # del obj[0] # Delete by index
def test_XIndexContainer_DelIndex(self): def test_XIndexContainer_DelIndex(self):
baseMax = 5 base_max = 5
for i in range(baseMax): for i in range(base_max):
for j in [x for x in range(-baseMax-2, baseMax+3)]: for j in [x for x in range(-base_max-2, base_max+3)]:
expected = list(range(i)) expected = list(range(i))
try: try:
del expected[j] del expected[j]
......
...@@ -14,6 +14,10 @@ from testcollections_base import CollectionsTestBase ...@@ -14,6 +14,10 @@ from testcollections_base import CollectionsTestBase
from com.sun.star.beans import PropertyValue from com.sun.star.beans import PropertyValue
# ContentIndex instance factory
def getContentIndexInstance(doc):
return doc.createInstance("com.sun.star.text.ContentIndex")
# Tests behaviour of objects implementing XIndexReplace using the new-style # Tests behaviour of objects implementing XIndexReplace using the new-style
# collection accessors # collection accessors
# The objects chosen have no special meaning, they just happen to implement the # The objects chosen have no special meaning, they just happen to implement the
...@@ -22,7 +26,7 @@ from com.sun.star.beans import PropertyValue ...@@ -22,7 +26,7 @@ from com.sun.star.beans import PropertyValue
class TestXIndexReplace(CollectionsTestBase): class TestXIndexReplace(CollectionsTestBase):
def generateTestContentIndex(self, doc): def generateTestContentIndex(self, doc):
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
for i in range(10): for i in range(10):
styles = ('n'+str(i),) styles = ('n'+str(i),)
uno.invoke(index.LevelParagraphStyles, "replaceByIndex", (i, uno.Any("[]string", styles))) uno.invoke(index.LevelParagraphStyles, "replaceByIndex", (i, uno.Any("[]string", styles)))
...@@ -37,14 +41,14 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -37,14 +41,14 @@ class TestXIndexReplace(CollectionsTestBase):
def assignValuesTestFixture(self, doc, key, values, expected): def assignValuesTestFixture(self, doc, key, values, expected):
# Given # Given
index = self.generateTestContentIndex(doc) index = self.generateTestContentIndex(doc)
toAssign = self.generateTestTuple(values) to_assign = self.generateTestTuple(values)
if not (isinstance(expected, Exception)): if not (isinstance(expected, Exception)):
toCompare = self.generateTestTuple(expected) toCompare = self.generateTestTuple(expected)
# When # When
captured = None captured = None
try: try:
index.LevelParagraphStyles[key] = toAssign index.LevelParagraphStyles[key] = to_assign
except Exception as e: except Exception as e:
captured = e captured = e
...@@ -66,7 +70,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -66,7 +70,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex(self): def test_XIndexReplace_ReplaceIndex(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When # When
index.LevelParagraphStyles[0] = ('Caption',) index.LevelParagraphStyles[0] = ('Caption',)
...@@ -81,7 +85,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -81,7 +85,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex_Invalid_None(self): def test_XIndexReplace_ReplaceIndex_Invalid_None(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -94,7 +98,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -94,7 +98,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex_Invalid_String(self): def test_XIndexReplace_ReplaceIndex_Invalid_String(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -107,7 +111,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -107,7 +111,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex_Invalid_Float(self): def test_XIndexReplace_ReplaceIndex_Invalid_Float(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -120,7 +124,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -120,7 +124,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex_Invalid_List(self): def test_XIndexReplace_ReplaceIndex_Invalid_List(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -133,7 +137,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -133,7 +137,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex_Invalid_Dict(self): def test_XIndexReplace_ReplaceIndex_Invalid_Dict(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -146,7 +150,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -146,7 +150,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceIndex_Invalid_InconsistentTuple(self): def test_XIndexReplace_ReplaceIndex_Invalid_InconsistentTuple(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -157,13 +161,13 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -157,13 +161,13 @@ class TestXIndexReplace(CollectionsTestBase):
# For: # For:
# Cases requiring sequence type coercion # Cases requiring sequence type coercion
def test_XIndexReplace_ReplaceSlice(self): def test_XIndexReplace_ReplaceSlice(self):
assignMax = 12 assign_max = 12
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
t = tuple(range(10)) t = tuple(range(10))
for j in [x for x in range(-12, 13)] + [None]: for j in [x for x in range(-12, 13)] + [None]:
for k in [x for x in range(-12, 13)] + [None]: for k in [x for x in range(-12, 13)] + [None]:
key = slice(j, k) key = slice(j, k)
for l in range(assignMax): for l in range(assign_max):
assign = [y+100 for y in range(l)] assign = [y+100 for y in range(l)]
expected = list(range(10)) expected = list(range(10))
try: try:
...@@ -181,7 +185,7 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -181,7 +185,7 @@ class TestXIndexReplace(CollectionsTestBase):
def test_XIndexReplace_ReplaceSlice_Invalid_InconsistentTuple(self): def test_XIndexReplace_ReplaceSlice_Invalid_InconsistentTuple(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
index = doc.createInstance("com.sun.star.text.ContentIndex") index = getContentIndexInstance(doc)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
...@@ -195,14 +199,14 @@ class TestXIndexReplace(CollectionsTestBase): ...@@ -195,14 +199,14 @@ class TestXIndexReplace(CollectionsTestBase):
# For: # For:
# Cases requiring sequence type coercion # Cases requiring sequence type coercion
def test_XIndexReplace_ReplaceExtendedSlice(self): def test_XIndexReplace_ReplaceExtendedSlice(self):
assignMax = 12 assign_max = 12
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
t = tuple(range(10)) t = tuple(range(10))
for j in [x for x in range(-12, 13)] + [None]: for j in [x for x in range(-12, 13)] + [None]:
for k in [x for x in range(-12, 13)] + [None]: for k in [x for x in range(-12, 13)] + [None]:
for l in [-2, -1, 2]: for l in [-2, -1, 2]:
key = slice(j, k, l) key = slice(j, k, l)
for m in range(assignMax): for m in range(assign_max):
assign = [y+100 for y in range(m)] assign = [y+100 for y in range(m)]
expected = list(range(10)) expected = list(range(10))
try: try:
......
...@@ -150,12 +150,12 @@ class TestXNameAccess(CollectionsTestBase): ...@@ -150,12 +150,12 @@ class TestXNameAccess(CollectionsTestBase):
i += 1 i += 1
# When # When
readLinks = [] read_links = []
for link in drw.Links: for link in drw.Links:
readLinks.append(link) read_links.append(link)
# Then # Then
self.assertEqual(['foo0', 'foo1'], readLinks) self.assertEqual(['foo0', 'foo1'], read_links)
# Tests syntax: # Tests syntax:
# itr = iter(obj) # Named iterator (keys) # itr = iter(obj) # Named iterator (keys)
......
...@@ -13,6 +13,10 @@ import uno ...@@ -13,6 +13,10 @@ import uno
from testcollections_base import CollectionsTestBase from testcollections_base import CollectionsTestBase
from com.sun.star.beans import PropertyValue from com.sun.star.beans import PropertyValue
# SheetCellRanges instance factory
def getSheetCellRangesInstance(spr):
return spr.createInstance("com.sun.star.sheet.SheetCellRanges")
# Tests behaviour of objects implementing XNameContainer using the new-style # Tests behaviour of objects implementing XNameContainer using the new-style
# collection accessors # collection accessors
...@@ -28,11 +32,11 @@ class TestXNameContainer(CollectionsTestBase): ...@@ -28,11 +32,11 @@ class TestXNameContainer(CollectionsTestBase):
def test_XNameContainer_InsertName(self): def test_XNameContainer_InsertName(self):
# Given # Given
spr = self.createBlankSpreadsheet() spr = self.createBlankSpreadsheet()
ranges = spr.createInstance("com.sun.star.sheet.SheetCellRanges") ranges = getSheetCellRangesInstance(spr)
newRange = spr.Sheets.getByIndex(0).getCellRangeByPosition(1, 2, 1, 2) new_range = spr.Sheets.getByIndex(0).getCellRangeByPosition(1, 2, 1, 2)
# When # When
ranges['foo'] = newRange ranges['foo'] = new_range
# Then # Then
self.assertEqual(1, len(ranges.ElementNames)) self.assertEqual(1, len(ranges.ElementNames))
...@@ -44,30 +48,30 @@ class TestXNameContainer(CollectionsTestBase): ...@@ -44,30 +48,30 @@ class TestXNameContainer(CollectionsTestBase):
def test_XNameContainer_InsertName_Invalid(self): def test_XNameContainer_InsertName_Invalid(self):
# Given # Given
spr = self.createBlankSpreadsheet() spr = self.createBlankSpreadsheet()
ranges = spr.createInstance("com.sun.star.sheet.SheetCellRanges") ranges = getSheetCellRangesInstance(spr)
newRange = spr.Sheets.getByIndex(0).getCellRangeByPosition(1, 2, 1, 2) new_range = spr.Sheets.getByIndex(0).getCellRangeByPosition(1, 2, 1, 2)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
ranges[12.34] = newRange ranges[12.34] = new_range
# Tests syntax: # Tests syntax:
# obj[key] = val # Replace by key # obj[key] = val # Replace by key
def test_XNameContainer_ReplaceName(self): def test_XNameContainer_ReplaceName(self):
# Given # Given
spr = self.createBlankSpreadsheet() spr = self.createBlankSpreadsheet()
ranges = spr.createInstance("com.sun.star.sheet.SheetCellRanges") ranges = getSheetCellRangesInstance(spr)
newRange1 = spr.Sheets.getByIndex(0).getCellRangeByPosition(1, 2, 1, 2) new_range1 = spr.Sheets.getByIndex(0).getCellRangeByPosition(1, 2, 1, 2)
newRange2 = spr.Sheets.getByIndex(0).getCellRangeByPosition(6, 6, 6, 6) new_range2 = spr.Sheets.getByIndex(0).getCellRangeByPosition(6, 6, 6, 6)
# When # When
ranges['foo'] = newRange1 ranges['foo'] = new_range1
ranges['foo'] = newRange2 ranges['foo'] = new_range2
# Then # Then
self.assertEqual(1, len(ranges.ElementNames)) self.assertEqual(1, len(ranges.ElementNames))
readRange = ranges['foo'] read_range = ranges['foo']
self.assertEqual(6, readRange.CellAddress.Column) self.assertEqual(6, read_range.CellAddress.Column)
# Tests syntax: # Tests syntax:
# del obj[key] # Delete by key # del obj[key] # Delete by key
......
...@@ -14,6 +14,9 @@ from testcollections_base import CollectionsTestBase ...@@ -14,6 +14,9 @@ from testcollections_base import CollectionsTestBase
from com.sun.star.beans import PropertyValue from com.sun.star.beans import PropertyValue
def getScriptName():
return 'macro://Standard.Module1.MySave()'
# Tests behaviour of objects implementing XNameReplace using the new-style # Tests behaviour of objects implementing XNameReplace using the new-style
# collection accessors # collection accessors
# The objects chosen have no special meaning, they just happen to implement the # The objects chosen have no special meaning, they just happen to implement the
...@@ -28,15 +31,14 @@ class TestXNameReplace(CollectionsTestBase): ...@@ -28,15 +31,14 @@ class TestXNameReplace(CollectionsTestBase):
def test_XNameReplace_ReplaceName(self): def test_XNameReplace_ReplaceName(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
scriptName = 'macro://Standard.Module1.MySave()' event_properties = (PropertyValue(Name='Script', Value=getScriptName()),)
eventProperties = (PropertyValue(Name='Script', Value=scriptName),)
# When # When
doc.Events['OnSave'] = eventProperties doc.Events['OnSave'] = event_properties
# Then # Then
onSave = [p.Value for p in doc.Events['OnSave'] if p.Name == 'Script'][0] on_save = [p.Value for p in doc.Events['OnSave'] if p.Name == 'Script'][0]
self.assertEqual(scriptName, onSave) self.assertEqual(getScriptName(), on_save)
# Tests syntax: # Tests syntax:
# obj[key] = val # Replace by key # obj[key] = val # Replace by key
...@@ -45,12 +47,11 @@ class TestXNameReplace(CollectionsTestBase): ...@@ -45,12 +47,11 @@ class TestXNameReplace(CollectionsTestBase):
def test_XNameReplace_ReplaceName_Invalid(self): def test_XNameReplace_ReplaceName_Invalid(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
scriptName = 'macro://Standard.Module1.MySave()' event_properties = (PropertyValue(Name='Script', Value=getScriptName()),)
eventProperties = (PropertyValue(Name='Script', Value=scriptName),)
# When / Then # When / Then
with self.assertRaises(KeyError): with self.assertRaises(KeyError):
doc.Events['qqqqq'] = eventProperties doc.Events['qqqqq'] = event_properties
# Tests syntax: # Tests syntax:
# obj[key] = val # Replace by key # obj[key] = val # Replace by key
...@@ -59,12 +60,11 @@ class TestXNameReplace(CollectionsTestBase): ...@@ -59,12 +60,11 @@ class TestXNameReplace(CollectionsTestBase):
def test_XNameReplace_ReplaceName_Invalid(self): def test_XNameReplace_ReplaceName_Invalid(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
scriptName = 'macro://Standard.Module1.MySave()' event_properties = (PropertyValue(Name='Script', Value=getScriptName()),)
eventProperties = (PropertyValue(Name='Script', Value=scriptName),)
# When / Then # When / Then
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
doc.Events[12.34] = eventProperties doc.Events[12.34] = event_properties
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -32,13 +32,13 @@ class CollectionsTestBase(unittest.TestCase): ...@@ -32,13 +32,13 @@ class CollectionsTestBase(unittest.TestCase):
pass pass
def createHiddenWindow(self, url): def createHiddenWindow(self, url):
serviceManager = self.context.ServiceManager service_manager = self.context.ServiceManager
desktop = serviceManager.createInstanceWithContext('com.sun.star.frame.Desktop', self.context) desktop = service_manager.createInstanceWithContext('com.sun.star.frame.Desktop', self.context)
loadProps = ( load_props = (
PropertyValue(Name='Hidden', Value=True), PropertyValue(Name='Hidden', Value=True),
PropertyValue(Name='ReadOnly', Value=False) PropertyValue(Name='ReadOnly', Value=False)
) )
component = desktop.loadComponentFromURL(url, '_blank', 0, loadProps) component = desktop.loadComponentFromURL(url, '_blank', 0, load_props)
return component return component
def createBlankTextDocument(self): def createBlankTextDocument(self):
......
...@@ -26,20 +26,20 @@ class TestMixedNameIndex(CollectionsTestBase): ...@@ -26,20 +26,20 @@ class TestMixedNameIndex(CollectionsTestBase):
def testWriterTextTableNameAndIndex(self): def testWriterTextTableNameAndIndex(self):
# Given # Given
doc = self.createBlankTextDocument() doc = self.createBlankTextDocument()
textTable = doc.createInstance("com.sun.star.text.TextTable") text_table = doc.createInstance("com.sun.star.text.TextTable")
textTable.initialize(2, 2) text_table.initialize(2, 2)
textTable.Name = 'foo' text_table.Name = 'foo'
cursor = doc.Text.createTextCursor() cursor = doc.Text.createTextCursor()
doc.Text.insertTextContent(cursor, textTable, False) doc.Text.insertTextContent(cursor, text_table, False)
# When # When
tableByName = doc.TextTables['foo'] table_by_name = doc.TextTables['foo']
tableByIndex = doc.TextTables[0] table_by_index = doc.TextTables[0]
# Then # Then
self.assertEqual('foo', tableByName.Name) self.assertEqual('foo', table_by_name.Name)
self.assertEqual('foo', tableByIndex.Name) self.assertEqual('foo', table_by_index.Name)
self.assertEqual(tableByName, tableByIndex) self.assertEqual(table_by_name, table_by_index)
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment