Example #1
0
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))
Example #2
0
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)
Example #4
0
 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)
Example #5
0
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)")
Example #7
0
 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")
     )
Example #8
0
 def test_slice(self):
     self.spreadsheet = Spreadsheet()
     values = self.spreadsheet["A2":"B3"]
     self.assertEqual(len(values), 4)
Example #9
0
 def test_access_data(self):
     self.spreadsheet = Spreadsheet()
     self.spreadsheet["A2"] = 3
     self.assertEqual(self.spreadsheet["A2"], 3)
Example #10
0
 def test_access(self):
     self.spreadsheet = Spreadsheet()
     self.assertEqual(self.spreadsheet["A2"], "")
Example #11
0
 def test_set_row(self):
     self.spreadsheet = Spreadsheet()
     self.spreadsheet["A"] = 10
     row = self.spreadsheet["A"]
     self.assertEqual(len(row), 10)
Example #12
0
 def test_initialize_with_data(self):
     self.spreadsheet = Spreadsheet(initial_data={'A': []})
     self.assertEqual(self.spreadsheet._sheet, {'A': []})
Example #13
0
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"])