Пример #1
0
    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')
Пример #2
0
    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')
Пример #3
0
    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'>")
Пример #4
0
    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')
Пример #5
0
    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')
Пример #6
0
    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")
Пример #7
0
    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")
Пример #8
0
    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'>")
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
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
Пример #12
0
    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)
Пример #13
0
    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)
Пример #14
0
 def test_setting_formatted_value_to_none(self):
     cell = Cell()
     cell.formatted_value = None
     self.assertEquals(cell.formatted_value, '')
Пример #15
0
 def test_setting_formatted_value_to_string_passes_through(self):
     cell = Cell()
     cell.formatted_value = 'this > string'
     self.assertEquals(cell.formatted_value, 'this > string')
Пример #16
0
 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!')
Пример #17
0
 def test_setting_formatted_value_to_string_passes_through(self):
     cell = Cell()
     cell.formatted_value = 'this > string'
     self.assertEquals(cell.formatted_value, 'this > string')
Пример #18
0
 def test_setting_formatted_value_to_none(self):
     cell = Cell()
     cell.formatted_value = None
     self.assertEquals(cell.formatted_value, '')
Пример #19
0
 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!')