def new(request): ss = Spreadsheet(owner=request.user, file_name="New Spreadsheet", module="briefcase.apps.spreadsheet.views.home") ss.data = "{}" ss.save() url = { "url": reverse('briefcase.apps.spreadsheet.views.home', args=[ss.pk]) } return HttpResponse(json.dumps(url))
def evaluate(): if request.method == "POST": try: data = Spreadsheet(request.values) except RuntimeError: return jsonify(error="You have linked cells to each other. Please refresh the table") for i in range(len(data.data)): try: data.result[i] = evaluate_string(data.data[i]) except Exception: data.result[i] = "You have an error in your string" return jsonify(result=data.result) return render_template("main.html")
def test_get_rows_columns(self): """ row here is 1 because we want the list index """ self.spreadsheet = Spreadsheet() row, column = self.spreadsheet._get_row_column("A2") self.assertEqual(column, "A") self.assertEqual(row, 1)
def test_get_value(self): self.spreadsheet = Spreadsheet() self.spreadsheet["A1"] = 2 self.spreadsheet["A2"] = 3 self.spreadsheet["A3"] = "=SUM(A1:A2)" # the cell A3 resolves to 5 and sums to itself, return 10 as the final # result self.assertEqual(self.spreadsheet.sum("A1", "A3"), 10)
class TestSpreadsheet(unittest.TestCase): def setUp(self): pass #### test class initialization def test_initialize_with_data(self): self.spreadsheet = Spreadsheet(initial_data={'A': []}) self.assertEqual(self.spreadsheet._sheet, {'A': []}) #### test getter, setter and slice def test_get_row(self): self.spreadsheet = Spreadsheet() row = self.spreadsheet["A"] self.assertEqual(len(row), 10) def test_get_value(self): self.spreadsheet = Spreadsheet() self.spreadsheet["A1"] = 2 self.spreadsheet["A2"] = 3 self.spreadsheet["A3"] = "=SUM(A1:A2)" # the cell A3 resolves to 5 and sums to itself, return 10 as the final # result self.assertEqual(self.spreadsheet.sum("A1", "A3"), 10) def test_set_row(self): self.spreadsheet = Spreadsheet() self.spreadsheet["A"] = 10 row = self.spreadsheet["A"] self.assertEqual(len(row), 10) def test_access(self): self.spreadsheet = Spreadsheet() self.assertEqual(self.spreadsheet["A2"], "") def test_access_data(self): self.spreadsheet = Spreadsheet() self.spreadsheet["A2"] = 3 self.assertEqual(self.spreadsheet["A2"], 3) def test_slice(self): self.spreadsheet = Spreadsheet() values = self.spreadsheet["A2":"B3"] self.assertEqual(len(values), 4) #### test exceptions def test_slice_exception(self): self.spreadsheet = Spreadsheet() # make sure that when we use the step operator an exception is raised self.assertRaises( Exception, self.spreadsheet.__getitem__, slice("A2", "A4", 2) ) def test_slice_exception2(self): self.spreadsheet = Spreadsheet() # make sure that when we use the step operator an exception is raised self.assertRaises( Exception, self.spreadsheet.__getitem__, slice("A", "A4") )
class TestInternalMethods(unittest.TestCase): def setUp(self): pass def test_get_rows_columns(self): """ row here is 1 because we want the list index """ self.spreadsheet = Spreadsheet() row, column = self.spreadsheet._get_row_column("A2") self.assertEqual(column, "A") self.assertEqual(row, 1) def test_keys(self): self.spreadsheet = Spreadsheet() keys = self.spreadsheet._keys self.assertEqual(keys, ["A", "B", "C", "D", "E", "F", "G", "H"]) def test_get_raw_value(self): self.spreadsheet = Spreadsheet(initial_data=EXAMPLE_SPREADSHEET) self.spreadsheet["F1"] = "=SUM(A2:C4)" self.assertEqual(self.spreadsheet._get_raw_value("F1").value, "=SUM(A2:C4)")
def test_slice_exception2(self): self.spreadsheet = Spreadsheet() # make sure that when we use the step operator an exception is raised self.assertRaises( Exception, self.spreadsheet.__getitem__, slice("A", "A4") )
def test_slice(self): self.spreadsheet = Spreadsheet() values = self.spreadsheet["A2":"B3"] self.assertEqual(len(values), 4)
def test_access_data(self): self.spreadsheet = Spreadsheet() self.spreadsheet["A2"] = 3 self.assertEqual(self.spreadsheet["A2"], 3)
def test_access(self): self.spreadsheet = Spreadsheet() self.assertEqual(self.spreadsheet["A2"], "")
def test_set_row(self): self.spreadsheet = Spreadsheet() self.spreadsheet["A"] = 10 row = self.spreadsheet["A"] self.assertEqual(len(row), 10)
def test_initialize_with_data(self): self.spreadsheet = Spreadsheet(initial_data={'A': []}) self.assertEqual(self.spreadsheet._sheet, {'A': []})
def new(request): ss = Spreadsheet(owner=request.user, file_name="New Spreadsheet", module="briefcase.apps.spreadsheet.views.home") ss.data = "{}" ss.save() url = {"url":reverse('briefcase.apps.spreadsheet.views.home', args=[ss.pk])} return HttpResponse(json.dumps(url))
def test_get_raw_value(self): self.spreadsheet = Spreadsheet(initial_data=EXAMPLE_SPREADSHEET) self.spreadsheet["F1"] = "=SUM(A2:C4)" self.assertEqual(self.spreadsheet._get_raw_value("F1").value, "=SUM(A2:C4)")
def test_keys(self): self.spreadsheet = Spreadsheet() keys = self.spreadsheet._keys self.assertEqual(keys, ["A", "B", "C", "D", "E", "F", "G", "H"])