def test_merge_non_calc_attrs_should_copy_some_attrs(self):
        s1 = Sheet()
        s1.name = 's1'
        s1.column_widths = {'s1': 0}
        s1.contents_json = sentinel.sheet1
        s2 = Sheet()
        s2.name = 's2'
        s2.column_widths = {'s2': 0}
        s2.contents_json = sentinel.sheet2

        s1.merge_non_calc_attrs(s2)

        self.assertEquals(s1.name, 's2')
        self.assertEquals(s1.column_widths, {'s2': 0})
        self.assertEquals(s1.contents_json, sentinel.sheet1)
    def test_merge_non_calc_attrs_should_copy_some_attrs(self):
        s1 = Sheet()
        s1.name = 's1'
        s1.column_widths = {'s1': 0}
        s1.contents_json = sentinel.sheet1
        s2 = Sheet()
        s2.name = 's2'
        s2.column_widths = {'s2': 0}
        s2.contents_json = sentinel.sheet2

        s1.merge_non_calc_attrs(s2)

        self.assertEquals(s1.name, 's2')
        self.assertEquals(s1.column_widths, {'s2': 0})
        self.assertEquals(s1.contents_json, sentinel.sheet1)
    def test_unjsonify_worksheet_should_return_worksheet(self, mock_worksheet_from_json):
        sheet = Sheet()
        sheet.contents_json = sentinel.contents_json

        worksheet = sheet.unjsonify_worksheet()

        self.assertEquals(worksheet, mock_worksheet_from_json.return_value)
        self.assertCalledOnce(mock_worksheet_from_json, sentinel.contents_json)
    def test_unjsonify_worksheet_should_return_worksheet(
            self, mock_worksheet_from_json):
        sheet = Sheet()
        sheet.contents_json = sentinel.contents_json

        worksheet = sheet.unjsonify_worksheet()

        self.assertEquals(worksheet, mock_worksheet_from_json.return_value)
        self.assertCalledOnce(mock_worksheet_from_json, sentinel.contents_json)
Example #5
0
    def test_run_worksheet_should_return_worksheet_with_calculated_values_only(
            self, mock_urllib2):
        self.maxDiff = None

        original_sheet = Worksheet()

        original_sheet.A2.formula = '1'
        original_sheet.A2.value = 1

        original_sheet.C3.formula = '5'
        original_sheet.C3.value = 5

        original_sheet.E4.formula = '=A2 + C3'
        original_sheet.E4.value = 6

        expected_sheet = Worksheet()
        expected_sheet.name = 'Untitled'
        for (col, row), cell in original_sheet.items():
            expected_sheet[col, row].value = cell.value
        foreign_sheet = Sheet()
        foreign_sheet.owner = User(username='******', password='******')
        foreign_sheet.owner.save()
        foreign_sheet.contents_json = worksheet_to_json(original_sheet)
        foreign_sheet.calculate()

        mock_opener = mock_urllib2.build_opener.return_value
        mock_urlopen_file = mock_opener.open.return_value
        mock_urlopen_file.read.return_value = _sheet_to_value_only_json(
            foreign_sheet.name,
            worksheet_from_json(foreign_sheet.contents_json))

        worksheet_url = 'ws_url/'
        result = run_worksheet(worksheet_url, None, sentinel.private_key)

        target_url = '%sv%s/json/' % (worksheet_url, CURRENT_API_VERSION)
        self.assertCalledOnce(mock_opener.open,
                              target_url,
                              data=urlencode({
                                  'dirigible_l337_private_key':
                                  sentinel.private_key
                              }))
        self.assertEquals(type(result), Worksheet)
        self.assertEquals(result, expected_sheet)
    def test_run_worksheet_should_return_worksheet_with_calculated_values_only(self, mock_urllib2):
        self.maxDiff = None

        original_sheet = Worksheet()

        original_sheet.A2.formula = '1'
        original_sheet.A2.value = 1

        original_sheet.C3.formula = '5'
        original_sheet.C3.value = 5

        original_sheet.E4.formula = '=A2 + C3'
        original_sheet.E4.value = 6

        expected_sheet = Worksheet()
        expected_sheet.name = 'Untitled'
        for (col, row), cell in original_sheet.items():
            expected_sheet[col, row].value = cell.value
        foreign_sheet = Sheet()
        foreign_sheet.owner = User(username='******', password='******')
        foreign_sheet.owner.save()
        foreign_sheet.contents_json = worksheet_to_json(original_sheet)
        foreign_sheet.calculate()

        mock_opener = mock_urllib2.build_opener.return_value
        mock_urlopen_file = mock_opener.open.return_value
        mock_urlopen_file.read.return_value = _sheet_to_value_only_json(
            foreign_sheet.name, worksheet_from_json(foreign_sheet.contents_json)
        )

        worksheet_url = 'ws_url/'
        result = run_worksheet(worksheet_url, None, sentinel.private_key)

        target_url = '%sv%s/json/' % (worksheet_url, CURRENT_API_VERSION)
        self.assertCalledOnce(mock_opener.open, target_url, data=urlencode({'dirigible_l337_private_key': sentinel.private_key}))
        self.assertEquals(type(result), Worksheet)
        self.assertEquals(result, expected_sheet)