Beispiel #1
0
    def test_find_approval_rules_error_means_rollback(
            self, patched_get_worksheet, patched_find_approval_rules,
            patched_rollback):
        eie.import_upload_excel_file_for_approval(None, "remco",
                                                  "norealfile.xls", [])

        self.assertTrue(patched_rollback.called)
    def test_find_approval_rules_error_means_rollback(
        self, patched_get_worksheet,
        patched_find_approval_rules, patched_rollback):
        eie.import_upload_excel_file_for_approval(
            None, "remco", "norealfile.xls", [])

        self.assertTrue(patched_rollback.called)
Beispiel #3
0
    def test_find_approval_rules_works_empty_worksheet_no_errors(
            self, patched_find_approval_rules, patched_commit):
        worksheet = MockWorksheet()
        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            eie.import_upload_excel_file_for_approval(None, "remco",
                                                      "norealfile.xls", [])

        self.assertTrue(patched_commit.called)
    def test_find_approval_rules_works_empty_worksheet_no_errors(
        self, patched_find_approval_rules, patched_commit):
        worksheet = MockWorksheet()
        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            eie.import_upload_excel_file_for_approval(
                None, "remco", "norealfile.xls", [])

        self.assertTrue(patched_commit.called)
    def test_put_row_in_worksheet_row_returns_errors(self, patched_rollback):
        scenario = ScenarioF.create()
        project = ProjectF.create()
        scenario.set_project(project)

        worksheet = MockWorksheet()
        worksheet.write(eie.HEADER_ROWS, 1, scenario.id)
        rule_dict = dict()
        allowed_scenario_ids = []  # This will give an error

        with mock.patch("flooding_lib.excel_import_export.get_worksheet", return_value=worksheet):
            with mock.patch("flooding_lib.excel_import_export.find_approval_rules", return_value=([], rule_dict)):
                eie.import_upload_excel_file_for_approval(project, "remco", "somepath.xls", allowed_scenario_ids)

        self.assertTrue(patched_rollback.called)
Beispiel #6
0
def post_excel(request, project, province):
    form = forms.ExcelImportForm(request.POST, request.FILES)

    errors = []

    if form.is_valid():
        filename = request.FILES['excel_file'].name
        if not filename.startswith(province.name):
            errors += [
                _('Filename does not start with the name of the province. '
                  'Wrong file?')
            ]
        else:
            dest_path = os.path.join('/tmp', filename)
            with open(dest_path, 'wb') as dest:
                for chunk in request.FILES['excel_file'].chunks():
                    dest.write(chunk)

            allowed_scenario_ids = [
                scenario.id for scenario in scenario_list(project, province)
            ]

            errors = (
                excel_import_export.import_upload_excel_file_for_approval(
                    project, request.user.username, dest_path,
                    allowed_scenario_ids))

            if errors:
                request.session['messages'] = errors
            else:
                request.session['messages'] = ['Opslaan is geslaagd.']

            return HttpResponseRedirect(reverse('sharedproject_dashboard'))
Beispiel #7
0
    def test_put_row_in_worksheet_row_returns_errors(self, patched_rollback):
        scenario = ScenarioF.create()
        project = ProjectF.create()
        scenario.set_project(project)

        worksheet = MockWorksheet()
        worksheet.write(eie.HEADER_ROWS, 1, scenario.id)
        rule_dict = dict()
        allowed_scenario_ids = []  # This will give an error

        with mock.patch('flooding_lib.excel_import_export.get_worksheet',
                        return_value=worksheet):
            with mock.patch(
                    'flooding_lib.excel_import_export.find_approval_rules',
                    return_value=([], rule_dict)):
                eie.import_upload_excel_file_for_approval(
                    project, 'remco', 'somepath.xls', allowed_scenario_ids)

        self.assertTrue(patched_rollback.called)