Esempio n. 1
0
    def test_empty_scenario_id(self):
        """Should give an error message mentioning the row nr"""
        errors = eie.import_scenario_row(eie.ImportedHeader(), 66,
                                         [mock.MagicMock(value="")], set())

        self.assertEquals(len(errors), 1)
        self.assertTrue("66" in errors[0])
Esempio n. 2
0
    def test_unknown_scenario_id(self):
        """Tests that using a nonexisting scenario id results in an
        error, and that the error message includes the line number."""
        errors = eie.import_scenario_row(eie.ImportedHeader(), 66,
                                         [mock.MagicMock(value=42313)], set())

        self.assertEquals(len(errors), 1)
        self.assertTrue("66" in errors[0])
Esempio n. 3
0
    def test_getitem(self):
        name = u"dit is een input field"
        InputFieldF.create(name=name)
        header = eie.ImportedHeader()

        foundfield = header.find_field_by_name(1, name)

        self.assertTrue(header[1] is foundfield)
Esempio n. 4
0
 def build_header(self, *inputfields):
     """Build an eie.ImportedHeader object using named
     inputfields."""
     fields = {}
     i = 1
     for inputfield in inputfields:
         fields[i] = inputfield
         i += 1
     return eie.ImportedHeader(fields)
Esempio n. 5
0
    def test_bad_scenario_id(self):
        """Tests that a row with a badly formed scenario id returns an
        error, and that the error message includes the line number."""
        errors = eie.import_scenario_row(eie.ImportedHeader(), 66,
                                         [mock.MagicMock(value="scenarioid")],
                                         set())

        self.assertEquals(len(errors), 1)
        self.assertTrue("66" in errors[0])
Esempio n. 6
0
    def test_exception_if_occurs_twice(self):
        name = u"dit is een input field"
        InputFieldF.create(name=name)
        header = eie.ImportedHeader()

        header.find_field_by_name(1, name)

        self.assertRaises(eie.ImportedHeader.HeaderException,
                          lambda: header.find_field_by_name(2, name))
Esempio n. 7
0
    def test_can_iterate(self):
        name = u"dit is een input field"
        field = InputFieldF.create(name=name)
        header = eie.ImportedHeader()

        header.find_field_by_name(1, name)

        for i, iterfield in enumerate(header):
            self.assertEquals(i, 0)  # We should only come here once
            self.assertEquals(field, iterfield)
Esempio n. 8
0
    def test_disallowed_scenario_id(self):
        """Tests that using a scenario id that exists but isn't in
        allowed scenario id fails."""
        scenario = ScenarioF.create()
        allowed_ids = set((scenario.id + 1, ))
        errors = eie.import_scenario_row(eie.ImportedHeader(), 66,
                                         [mock.MagicMock(value=scenario.id)],
                                         allowed_ids)

        self.assertEquals(len(errors), 1)
        self.assertTrue("66" in errors[0])
Esempio n. 9
0
    def test_finds_field(self):
        name = u"dit is een input field"
        field = InputFieldF.create(name=name)

        fields = {}
        header = eie.ImportedHeader(fields)

        foundfield = header.find_field_by_name(1, name)

        self.assertEquals(field, foundfield)
        self.assertTrue(fields[1] is foundfield)
Esempio n. 10
0
 def test_empty_row(self):
     """Shouldn't really do anything, just return"""
     errors = eie.import_scenario_row(eie.ImportedHeader(), 5, [], set())
     self.assertEquals(errors, [])
Esempio n. 11
0
 def test_exception_if_not_found(self):
     header = eie.ImportedHeader()
     self.assertRaises(
         eie.ImportedHeader.HeaderException,
         lambda: header.find_field_by_name(1, u"bestaat niet"))
Esempio n. 12
0
 def test_returns_none_for_fieldnr_0(self):
     self.assertEquals(None, eie.ImportedHeader().find_field_by_name(0, ''))
Esempio n. 13
0
 def test_trivial(self):
     eie.ImportedHeader()
Esempio n. 14
0
class TestImportUploadedExcelFile(TestCase):
    @mock.patch('flooding_lib.excel_import_export.import_header',
                return_value=(None, []))
    def test_calls_import_header(self, patched_import_header):
        cell = mock.MagicMock(value=15)
        cells = [cell]
        sheetattrs = {'row.return_value': cells}
        worksheet = mock.MagicMock(**sheetattrs)

        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            self.assertEquals([], eie.import_uploaded_excel_file('', set()))

        patched_import_header.assertCalledWith(cells)

    @mock.patch('flooding_lib.excel_import_export.import_header',
                return_value=(None, ["error!"]))
    def test_import_headers_returns_errors(self, patched_import_header):
        cell = mock.MagicMock(value=15)
        cells = [cell]
        sheetattrs = {'row.return_value': cells}
        worksheet = mock.MagicMock(**sheetattrs)

        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            self.assertEquals(["error!"],
                              eie.import_uploaded_excel_file('', set()))

    @mock.patch('flooding_lib.excel_import_export.import_header',
                return_value=(eie.ImportedHeader(), []))
    @mock.patch('flooding_lib.excel_import_export.import_scenario_row',
                return_value=[])
    def test_rows_calls_get_scenario_row(self, patched_import_header,
                                         patched_import_scenario_row):
        cell = object()
        onecellrow = [cell]

        def row(i):
            if i < 4:
                return []
            return onecellrow

        worksheet = mock.MagicMock(row=row, nrows=5)

        allowed_ids = set()

        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            eie.import_uploaded_excel_file('', allowed_ids)

            patched_import_scenario_row.assertCalledWith(
                (patched_import_header.return_value, 4, onecellrow,
                 allowed_ids))

    @mock.patch('flooding_lib.excel_import_export.import_header',
                return_value=(eie.ImportedHeader(), []))
    @mock.patch('flooding_lib.excel_import_export.import_scenario_row',
                return_value=["error!"])
    def test_get_scenario_row_returns_errors(self, patched_import_header,
                                             patched_import_scenario_row):
        worksheet = mock.MagicMock(row=lambda i: [], nrows=5)

        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            errors = eie.import_uploaded_excel_file('', set())
            self.assertEquals(errors, ["error!"])