def test_eq_neq(self): cell1 = Cell() cell1.formula = '=formula' cell2 = Cell() cell2.formula = '=formula' self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) cell1.value = 10 self.assertFalse(cell1 == cell2) self.assertTrue(cell1 != cell2) cell2.value = 10 self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) cell1.formatted_value = 'formatted' self.assertFalse(cell1 == cell2) self.assertTrue(cell1 != cell2) cell2.formatted_value = 'formatted' self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) cell1.error = 'this error' self.assertFalse(cell1 == cell2) self.assertTrue(cell1 != cell2) cell2.error = 'this error' self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) self.assertFalse(cell1 == 'hello') self.assertTrue(cell1 != 'hello')
def test_eq_neq(self): cell1 = Cell() cell1.formula = '=formula' cell2 = Cell() cell2.formula = '=formula' self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) cell1.value = 10 self.assertFalse(cell1 == cell2) self.assertTrue(cell1 != cell2) cell2.value = 10 self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) cell1.formatted_value = 'formatted' self.assertFalse(cell1 == cell2) self.assertTrue(cell1 != cell2) cell2.formatted_value = 'formatted' self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) cell1.error = 'this error' self.assertFalse(cell1 == cell2) self.assertTrue(cell1 != cell2) cell2.error = 'this error' self.assertTrue(cell1 == cell2) self.assertFalse(cell1 != cell2) self.assertFalse(cell1 == 'hello') self.assertTrue(cell1 != 'hello')
def test_repr(self): cell = Cell() cell.formula = 'f' self.assertEquals(repr(cell), "<Cell formula=f value=<undefined> formatted_value=u''>") cell = Cell() cell.value = 'v' self.assertEquals(repr(cell), "<Cell formula=None value='v' formatted_value=u'v'>") cell = Cell() cell.value = 23 self.assertEquals(repr(cell), "<Cell formula=None value=23 formatted_value=u'23'>") cell = Cell() cell.formula = 'f' cell.value = 'v' self.assertEquals(repr(cell), "<Cell formula=f value='v' formatted_value=u'v'>") cell = Cell() cell.formula = 'f' cell.value = 'v' cell.formatted_value = u'fv' self.assertEquals(repr(cell), "<Cell formula=f value='v' formatted_value=u'fv'>") cell = Cell() cell.formula = 'f' cell.value = 'v' cell.formatted_value = u'fv' cell.error = 'e' self.assertEquals(repr(cell), "<Cell formula=f value='v' formatted_value=u'fv' error='e'>")
def test_setting_formatted_value_to_non_string_explodes(self): class TestObject(object): pass cell = Cell() with self.assertRaises(TypeError) as mngr: cell.formatted_value = TestObject() self.assertEquals(str(mngr.exception), 'cell formatted_value must be str or unicode')
def test_setting_formatted_value_to_non_string_explodes(self): class TestObject(object): pass cell = Cell() with self.assertRaises(TypeError) as mngr: cell.formatted_value = TestObject() self.assertEquals(str(mngr.exception), 'cell formatted_value must be str or unicode')
def test_clear_value_clears_value_but_not_formatted_value(self): cell = Cell() cell.value = 29 cell.formatted_value = "wibble" cell.clear_value() self.assertEquals(cell.value, undefined) self.assertEquals(cell.formatted_value, "wibble")
def test_clear_value_clears_value_but_not_formatted_value(self): cell = Cell() cell.value = 29 cell.formatted_value = "wibble" cell.clear_value() self.assertEquals(cell.value, undefined) self.assertEquals(cell.formatted_value, "wibble")
def test_repr(self): cell = Cell() cell.formula = 'f' self.assertEquals( repr(cell), "<Cell formula=f value=<undefined> formatted_value=u''>") cell = Cell() cell.value = 'v' self.assertEquals( repr(cell), "<Cell formula=None value='v' formatted_value=u'v'>") cell = Cell() cell.value = 23 self.assertEquals( repr(cell), "<Cell formula=None value=23 formatted_value=u'23'>") cell = Cell() cell.formula = 'f' cell.value = 'v' self.assertEquals(repr(cell), "<Cell formula=f value='v' formatted_value=u'v'>") cell = Cell() cell.formula = 'f' cell.value = 'v' cell.formatted_value = u'fv' self.assertEquals(repr(cell), "<Cell formula=f value='v' formatted_value=u'fv'>") cell = Cell() cell.formula = 'f' cell.value = 'v' cell.formatted_value = u'fv' cell.error = 'e' self.assertEquals( repr(cell), "<Cell formula=f value='v' formatted_value=u'fv' error='e'>")
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 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
def to_cells(self, start, end): start_col, start_row = start end_col, end_row = end strings_dict = jsonlib.loads(self.contents_json) for col in xrange(0, end_col - start_col + 1): for row in xrange(0, end_row - start_row + 1): clip_loc = col % self.width, row % self.height clip_cell = strings_dict['%s,%s' % clip_loc] dest_cell = Cell() if clip_cell['formula']: column_offset, row_offset = self._get_offset(col, row, start_col, start_row) dest_cell.formula = rewrite_formula( clip_cell['formula'], column_offset, row_offset, self.is_cut, self.source_range ) dest_cell.formatted_value = clip_cell['formatted_value'] dest_loc = col + start_col, row + start_row yield (dest_loc, dest_cell)
def to_cells(self, start, end): start_col, start_row = start end_col, end_row = end strings_dict = jsonlib.loads(self.contents_json) for col in xrange(0, end_col - start_col + 1): for row in xrange(0, end_row - start_row + 1): clip_loc = col % self.width, row % self.height clip_cell = strings_dict['%s,%s' % clip_loc] dest_cell = Cell() if clip_cell['formula']: column_offset, row_offset = self._get_offset( col, row, start_col, start_row) dest_cell.formula = rewrite_formula( clip_cell['formula'], column_offset, row_offset, self.is_cut, self.source_range) dest_cell.formatted_value = clip_cell['formatted_value'] dest_loc = col + start_col, row + start_row yield (dest_loc, dest_cell)
def test_setting_formatted_value_to_none(self): cell = Cell() cell.formatted_value = None self.assertEquals(cell.formatted_value, '')
def test_setting_formatted_value_to_string_passes_through(self): cell = Cell() cell.formatted_value = 'this > string' self.assertEquals(cell.formatted_value, 'this > string')
def test_setting_formatted_value_to_unicode(self): cell = Cell() cell.formatted_value = u'Sacr\xe9 bleu!' self.assertEquals(cell.formatted_value, u'Sacr\xe9 bleu!')
def test_setting_formatted_value_to_string_passes_through(self): cell = Cell() cell.formatted_value = 'this > string' self.assertEquals(cell.formatted_value, 'this > string')
def test_setting_formatted_value_to_none(self): cell = Cell() cell.formatted_value = None self.assertEquals(cell.formatted_value, '')
def test_setting_formatted_value_to_unicode(self): cell = Cell() cell.formatted_value = u'Sacr\xe9 bleu!' self.assertEquals(cell.formatted_value, u'Sacr\xe9 bleu!')