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_run_worksheet_with_overrides(self, mock_urllib2): self.maxDiff = None cellA2 = Cell() cellA2.formula = '1' cellA2.value = 1 cellC3 = Cell() cellC3.formula = '5' cellC3.value = 5 cellE4 = Cell() cellE4.formula = '=A2 + C3' cellE4.value = 6 overrides = { (1, 2): '11', (3, 3): 55, (4, 1): '="abc"', 'dirigible_l337_private_key': sentinel.private_key } result_of_calculation_json = '''{ "name": "Untitled", "1": { "2": 11 }, "3": { "3": 55 }, "4": { "1": "abc" }, "5": { "4": 66 } }''' mock_opener = mock_urllib2.build_opener.return_value mock_urlopen_file = mock_opener.open.return_value mock_urlopen_file.read.return_value = result_of_calculation_json worksheet_url = 'ws_url/' result = run_worksheet(worksheet_url, overrides, sentinel.private_key) target_url = '%sv%s/json/' % (worksheet_url, CURRENT_API_VERSION) self.assertCalledOnce(mock_opener.open, target_url, data=urlencode(overrides)) self.assertEquals(type(result), Worksheet) expected_sheet = Worksheet() expected_sheet.name = 'Untitled' expected_sheet[1, 2].value = 11 expected_sheet[3, 3].value = 55 expected_sheet[4, 1].value = 'abc' expected_sheet[5, 4].value = 66 self.assertEquals(result, expected_sheet)
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_setting_value_sets_formatted_value_to_unicode_version(self): cell = Cell() cell._set_formatted_value = Mock() cell.value = sentinel.value self.assertCalledOnce(cell._set_formatted_value, unicode(sentinel.value))
def test_setting_value_to_undefined_sets_formatted_value_to_empty_string( self): cell = Cell() cell._set_formatted_value = Mock() cell.value = undefined self.assertCalledOnce(cell._set_formatted_value, u'')
def test_setting_value_to_ws_doesnt_die(self): # This is actually mostly testing that it doesn't explode cell = Cell() ws = Worksheet() cell.value = ws self.assertEquals(cell.formatted_value, unicode(ws))
def test_setting_value_to_undefined_sets_formatted_value_to_empty_string(self): cell = Cell() cell._set_formatted_value = Mock() cell.value = undefined self.assertCalledOnce(cell._set_formatted_value, u'')