Spreadsheet: Updated test cases.
This commit is contained in:
parent
b74b3f3358
commit
9606fb144a
|
@ -1,4 +1,5 @@
|
|||
# (c) 2016 Werner Mayer
|
||||
# (c) 2016 Eivind Kvedalen
|
||||
# LGPL
|
||||
|
||||
import os
|
||||
|
@ -7,6 +8,7 @@ import unittest
|
|||
import FreeCAD
|
||||
import Part
|
||||
import Sketcher
|
||||
import tempfile
|
||||
from FreeCAD import Base
|
||||
|
||||
v = Base.Vector
|
||||
|
@ -19,6 +21,59 @@ v = Base.Vector
|
|||
class SpreadsheetCases(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.doc = FreeCAD.newDocument()
|
||||
self.TempPath = tempfile.gettempdir()
|
||||
FreeCAD.Console.PrintLog( ' Using temp path: ' + self.TempPath + '\n')
|
||||
|
||||
def testRemoveRows(self):
|
||||
""" Removing rows -- check renaming of internal cells """
|
||||
sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')
|
||||
sheet.set('A3', '123')
|
||||
sheet.set('A1', '=A3')
|
||||
sheet.removeRows('2', 1)
|
||||
self.assertEqual(sheet.getContents("A1"),"=A2")
|
||||
|
||||
def testInsertRows(self):
|
||||
""" Inserting rows -- check renaming of internal cells """
|
||||
sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')
|
||||
sheet.set('B1', '=B2')
|
||||
sheet.set('B2', '124')
|
||||
sheet.insertRows('2', 1)
|
||||
self.assertEqual(sheet.getContents("B1"),"=B3")
|
||||
|
||||
def testRenameAlias(self):
|
||||
""" Test renaming of alias1 to alias2 in a spreadsheet """
|
||||
sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')
|
||||
sheet.set('B1', '124')
|
||||
sheet.setAlias('B1', 'alias1')
|
||||
sheet.set('B2', '=alias1')
|
||||
self.doc.recompute()
|
||||
self.assertEqual(sheet.get("alias1"), 124)
|
||||
self.assertEqual(sheet.get("B1"), 124)
|
||||
self.assertEqual(sheet.get("B2"), 124)
|
||||
sheet.setAlias('B1', 'alias2')
|
||||
self.doc.recompute()
|
||||
self.assertEqual(sheet.get("alias2"), 124)
|
||||
self.assertEqual(sheet.getContents("B2"),"=alias2")
|
||||
|
||||
def testRenameAlias2(self):
|
||||
""" Test renaming of alias1 to alias2 in a spreadsheet, when referenced from another object """
|
||||
sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')
|
||||
sheet.set('B1', '124')
|
||||
sheet.setAlias('B1', 'alias1')
|
||||
box = self.doc.addObject('Part::Box', 'Box')
|
||||
box.setExpression('Length', 'Spreadsheet.alias1')
|
||||
sheet.setAlias('B1', 'alias2')
|
||||
self.assertEqual(box.ExpressionEngine[0][1], "Spreadsheet.alias2");
|
||||
|
||||
def testRenameAlias3(self):
|
||||
""" Test renaming of document object referenced from another object """
|
||||
sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')
|
||||
sheet.set('B1', '124')
|
||||
sheet.setAlias('B1', 'alias1')
|
||||
box = self.doc.addObject('Part::Box', 'Box')
|
||||
box.setExpression('Length', 'Spreadsheet.alias1')
|
||||
sheet.Label = "Params"
|
||||
self.assertEqual(box.ExpressionEngine[0][1], "Params.alias1");
|
||||
|
||||
def testAlias(self):
|
||||
""" Playing with aliases """
|
||||
|
@ -101,6 +156,35 @@ class SpreadsheetCases(unittest.TestCase):
|
|||
self.assertEqual(sketch.ExpressionEngine[0][1],'Calc.Length')
|
||||
self.assertIn('Up-to-date',sketch.State)
|
||||
|
||||
def testCrossDocumentLinks(self):
|
||||
""" Expressions accross files are not saved (bug #2442) """
|
||||
|
||||
# Create a box
|
||||
box = self.doc.addObject('Part::Box', 'Box')
|
||||
|
||||
# Create a second document with a cylinder
|
||||
doc2 = FreeCAD.newDocument()
|
||||
cylinder = doc2.addObject('Part::Cylinder', 'Cylinder')
|
||||
cylinder.setExpression('Radius', 'cube#Cube.Height')
|
||||
|
||||
# Save and close first document
|
||||
self.doc.saveAs(self.TempPath + os.sep + 'cube.fcstd')
|
||||
FreeCAD.closeDocument(self.doc.Name)
|
||||
|
||||
# Save and close second document
|
||||
doc2.saveAs(self.TempPath + os.sep + 'cylinder.fcstd')
|
||||
FreeCAD.closeDocument(doc2.Name)
|
||||
|
||||
# Open both documents again
|
||||
self.doc = FreeCAD.openDocument(self.TempPath + os.sep + 'cube.fcstd')
|
||||
doc2 = FreeCAD.openDocument(self.TempPath + os.sep + 'cylinder.fcstd')
|
||||
|
||||
# Check reference between them
|
||||
self.assertEqual(doc2.getObject('Cylinder').ExpressionEngine[0][1], 'cube#Cube.Height')
|
||||
|
||||
# Close second document
|
||||
FreeCAD.closeDocument(doc2.Name)
|
||||
|
||||
def tearDown(self):
|
||||
#closing doc
|
||||
FreeCAD.closeDocument(self.doc.Name)
|
||||
|
|
Loading…
Reference in New Issue
Block a user