From 991e8bfb2b23b74531d7805839d17d1a5fb993b7 Mon Sep 17 00:00:00 2001 From: Benjamin Nauck Date: Tue, 29 Dec 2020 17:55:04 +0100 Subject: [PATCH] [Spreadsheet] Add unit tests for new input behaviour --- src/Mod/Spreadsheet/TestSpreadsheet.py | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/Mod/Spreadsheet/TestSpreadsheet.py b/src/Mod/Spreadsheet/TestSpreadsheet.py index adda58466d..ba6f2a1ec1 100644 --- a/src/Mod/Spreadsheet/TestSpreadsheet.py +++ b/src/Mod/Spreadsheet/TestSpreadsheet.py @@ -668,6 +668,23 @@ class SpreadsheetCases(unittest.TestCase): self.assertEqual(sheet.A17, 0.5) self.assertEqual(sheet.A18, 0.5) + def testQuantitiesAndFractionsAsNumbers(self): + """ Test quantities and simple fractions as numbers """ + sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet') + sheet.set('A1', '1mm') + sheet.set('A2', '1/2') + sheet.set('A3', '4mm/2') + sheet.set('A4', '2/mm') + sheet.set('A5', '4/2mm') + sheet.set('A6', '6mm/3s') + self.doc.recompute() + self.assertEqual(sheet.A1, Units.Quantity('1 mm')) + self.assertEqual(sheet.A2, 0.5) + self.assertEqual(sheet.A3, Units.Quantity('2 mm')) + self.assertEqual(sheet.A4, Units.Quantity('2 1/mm')) + self.assertEqual(sheet.A5, Units.Quantity('2 1/mm')) + self.assertEqual(sheet.A6, Units.Quantity('2 mm/s')) + def testRemoveRows(self): """ Removing rows -- check renaming of internal cells """ sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet') @@ -1034,6 +1051,16 @@ class SpreadsheetCases(unittest.TestCase): self.doc.recompute() self.assertEqual(sheet.get('C1'), Units.Quantity('3 mm')) + def testIssue4156(self): + """ Regression test for issue 4156; necessarily use of leading '=' to enter an expression, creates inconsistent behavior depending on the spreadsheet state""" + sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet') + sheet.set('A3', 'A1') + sheet.set('A1', '1000') + self.doc.recompute() + sheet.set('A3', '') + sheet.set('A3', 'A1') + self.assertEqual(sheet.getContents('A3'), 'A1') + def testInsertRowsAlias(self): """ Regression test for issue 4429; insert rows to sheet with aliases""" sheet = self.doc.addObject('Spreadsheet::Sheet','Spreadsheet')