def test_clipboad_copy_retrieves_stuff_from_sheet_and_removes_offset(self): self.maxDiff = None clipboard = Clipboard() sheet = Sheet() worksheet = Worksheet() worksheet.C2.formula = 'foo' worksheet.C2.formatted_value = 'fv' worksheet.D2.formatted_value = 'fv to become formula' sheet.jsonify_worksheet(worksheet) start = (3, 2) end = (4, 3) cut_called_previously = True clipboard.is_cut = cut_called_previously clipboard.copy(sheet, start, end) self.assertEquals( json.loads(clipboard.contents_json), { '0,0':{'formula': 'foo', 'formatted_value': 'fv'}, '1,0':{'formula': 'fv to become formula', 'formatted_value': 'fv to become formula'}, '0,1':{'formula': '', 'formatted_value': ''}, '1,1':{'formula': '', 'formatted_value': ''} } ) self.assertEquals(clipboard.source_left, 3) self.assertEquals(clipboard.source_top, 2) self.assertEquals(clipboard.source_right, 4) self.assertEquals(clipboard.source_bottom, 3) self.assertEquals(clipboard.is_cut, False) self.assertEquals(clipboard.source_sheet, None)
def test_paste_to_for_cut_different_sheet(self): self.user = User() self.user.save() c2 = Cell() c2.formula = 'foo' c2.formatted_value = 'fv' d2 = Cell() d2.formula = 'fv to become formula' d2.formatted_value = d2.formula c3 = Cell() d3 = Cell() c5 = Cell() c5.formula = 'a safe source cell' dest_cells = { (3, 4): c2, (3, 5): c3, (4, 4): d2, (4, 5): d3, } source_sheet = Sheet() source_sheet.owner = self.user source_sheet.save() clipboard = Clipboard() clipboard.to_cells = Mock() clipboard.to_cells.return_value = dest_cells.iteritems() clipboard.is_cut = True clipboard.source_sheet = source_sheet clipboard.source_left = 3 clipboard.source_top = 2 clipboard.source_right = 4 clipboard.source_bottom = 3 destination_sheet = Sheet() destination_sheet.owner = self.user destination_worksheet = Worksheet() destination_worksheet.C4.formula = 'i am in danger!' destination_worksheet.A1.formula = 'i am safe :-)' destination_sheet.jsonify_worksheet(destination_worksheet) destination_sheet.save() clipboard.paste_to(destination_sheet, (3, 4), (3, 4)) updated_worksheet = destination_sheet.unjsonify_worksheet() self.assertEquals(updated_worksheet.A1.formula, 'i am safe :-)') self.assertEquals(updated_worksheet.C4.formula, c2.formula) self.assertEquals(updated_worksheet.D4.formula, d2.formula) self.assertEquals(updated_worksheet.C5.formula, c3.formula) self.assertEquals(updated_worksheet.d5.formula, d3.formula) # paste should reset the clipboard so that future pastes act as # though they came from a copy self.assertEquals(clipboard.source_left, 3) self.assertEquals(clipboard.source_top, 4) self.assertEquals(clipboard.source_right, 4) self.assertEquals(clipboard.source_bottom, 5) self.assertEquals(clipboard.is_cut, False) self.assertEquals(clipboard.source_sheet, None)
def test_clipboad_copy_retrieves_stuff_from_sheet_and_removes_offset(self): self.maxDiff = None clipboard = Clipboard() sheet = Sheet() worksheet = Worksheet() worksheet.C2.formula = 'foo' worksheet.C2.formatted_value = 'fv' worksheet.D2.formatted_value = 'fv to become formula' sheet.jsonify_worksheet(worksheet) start = (3, 2) end = (4, 3) cut_called_previously = True clipboard.is_cut = cut_called_previously clipboard.copy(sheet, start, end) self.assertEquals( json.loads(clipboard.contents_json), { '0,0': { 'formula': 'foo', 'formatted_value': 'fv' }, '1,0': { 'formula': 'fv to become formula', 'formatted_value': 'fv to become formula' }, '0,1': { 'formula': '', 'formatted_value': '' }, '1,1': { 'formula': '', 'formatted_value': '' } }) self.assertEquals(clipboard.source_left, 3) self.assertEquals(clipboard.source_top, 2) self.assertEquals(clipboard.source_right, 4) self.assertEquals(clipboard.source_bottom, 3) self.assertEquals(clipboard.is_cut, False) self.assertEquals(clipboard.source_sheet, None)