Spreadsheet: unit test for expressions using an input spreadsheet

A bug was reported here: https://forum.freecadweb.org/viewtopic.php?p=564502#p564502
This commit is contained in:
wmayer
2022-01-24 14:20:26 +01:00
parent 369fc153b1
commit 10ca067d95

View File

@@ -1184,6 +1184,50 @@ class SpreadsheetCases(unittest.TestCase):
FreeCAD.closeDocument(square.Name)
FreeCAD.closeDocument(base.Name)
def testExpressionWithAlias(self):
# https://forum.freecadweb.org/viewtopic.php?p=564502#p564502
ss1 = self.doc.addObject("Spreadsheet::Sheet", "Input")
ss1.setAlias('A1', 'one')
ss1.setAlias('A2', 'two')
ss1.set("A1","1")
ss1.set("A2","2")
self.doc.recompute()
ss2 = self.doc.addObject("Spreadsheet::Sheet", "Output")
ss2.set("A1","=Input.A1 + Input.A2")
ss2.set("A2","=Input.one + Input.two")
ss2.set("A3","=<<Input>>.A1 + <<Input>>.A2")
ss2.set("A4","=<<Input>>.one + <<Input>>.two")
self.doc.recompute()
self.assertEqual(ss2.get("A1"), 3)
self.assertEqual(ss2.get("A2"), 3)
self.assertEqual(ss2.get("A3"), 3)
self.assertEqual(ss2.get("A4"), 3)
project_path = self.TempPath + os.sep + 'alias.FCStd'
self.doc.saveAs(project_path)
FreeCAD.closeDocument(self.doc.Name)
self.doc = FreeCAD.openDocument(project_path)
ss1 = self.doc.Input
ss2 = self.doc.Output
self.assertEqual(ss2.get("A1"), 3)
self.assertEqual(ss2.get("A2"), 3)
self.assertEqual(ss2.get("A3"), 3)
self.assertEqual(ss2.get("A4"), 3)
ss1.set("A1","2")
self.doc.recompute()
self.assertEqual(ss1.get("A1"), 2)
self.assertEqual(ss1.get("one"), 2)
self.assertEqual(ss2.get("A1"), 4)
self.assertEqual(ss2.get("A2"), 4)
self.assertEqual(ss2.get("A3"), 4)
self.assertEqual(ss2.get("A4"), 4)
def tearDown(self):
#closing doc
FreeCAD.closeDocument(self.doc.Name)