def test_setting_formula_with_syntax_error_sets_appropriate_raise_in_python_formula_and_clears_dependencies(self): cell = Cell() cell.dependencies = 'before' cell.python_formula = 'before' cell.formula = '=#NULL!' self.assertEquals( cell.python_formula, '_raise(FormulaError("Error in formula at position 2: unexpected \'#NULL!\'"))' ) self.assertEquals(cell.dependencies, []) cell.dependencies = 'before' cell.python_formula = 'before' cell.formula = '=#Invalid!' self.assertEquals( cell.python_formula, '_raise(FormulaError("#Invalid! cell reference in formula"))' ) self.assertEquals(cell.dependencies, []) cell.dependencies = 'before' cell.python_formula = 'before' cell.formula = '=#Deleted!' self.assertEquals( cell.python_formula, '_raise(FormulaError("#Deleted! cell reference in formula"))' ) self.assertEquals(cell.dependencies, [])
def test_setting_formula_with_syntax_error_sets_appropriate_raise_in_python_formula_and_clears_dependencies( self): cell = Cell() cell.dependencies = 'before' cell.python_formula = 'before' cell.formula = '=#NULL!' self.assertEquals( cell.python_formula, '_raise(FormulaError("Error in formula at position 2: unexpected \'#NULL!\'"))' ) self.assertEquals(cell.dependencies, []) cell.dependencies = 'before' cell.python_formula = 'before' cell.formula = '=#Invalid!' self.assertEquals( cell.python_formula, '_raise(FormulaError("#Invalid! cell reference in formula"))') self.assertEquals(cell.dependencies, []) cell.dependencies = 'before' cell.python_formula = 'before' cell.formula = '=#Deleted!' self.assertEquals( cell.python_formula, '_raise(FormulaError("#Deleted! cell reference in formula"))') self.assertEquals(cell.dependencies, [])
def test_clear_clears_stuff(self): cell = Cell() cell.value = 29 cell.formula = 'e equals emcee squared' cell.python_formula = 'e equals emcee squared' cell.dependencies = [(1, 1), (2, 2)] cell.formatted_value = "wibble" cell.error = 'a spear' cell.clear() self.assertEquals(cell.value, undefined) self.assertEquals(cell.formula, None) self.assertEquals(cell.python_formula, None) self.assertEquals(Cell().dependencies, []) self.assertEquals(cell.formatted_value, u"") self.assertEquals(cell.error, None)
def worksheet_from_json(json_string): #use jsonlib for read ops because of better performance #keep simplejson for write ops as it's more robust worksheet_dict = jsonlib.read(json_string) worksheet = Worksheet() for (key, value) in worksheet_dict.iteritems(): if key == "_console_text": worksheet._console_text = value elif key == "_usercode_error": worksheet._usercode_error = value else: col_str, row_str = key.split(",") cell = Cell() cell._formula = value["formula"] cell._python_formula = value.get("python_formula") cell.dependencies = map(tuple, value.get("dependencies", [])) cell.error = value.get("error") cell._value = value.get("value", undefined) cell.formatted_value = value["formatted_value"] worksheet[int(col_str), int(row_str)] = cell return worksheet