Example #1
0
 def build(cls,
           manager,
           extension,
           default_parser=None,
           form_code=None,
           is_datasender=False):
     channels = dict({
         ".xls": Channel.XLS,
         ".xlsx": Channel.XLSX,
         ".csv": Channel.CSV
     })
     try:
         channel = channels[extension]
     except KeyError:
         raise InvalidFileFormatException()
     if default_parser is not None:
         parser = default_parser()
     elif extension == '.csv':
         parser = CsvParser()
     elif extension == '.xls':
         parser = XlsParser()
     elif extension == '.xlsx':
         parser = XlsxParser()
     else:
         raise InvalidFileFormatException()
     location_bridge = LocationBridge(
         get_location_tree(), get_loc_hierarchy=get_location_hierarchy)
     player = FilePlayer(manager,
                         parser,
                         channel,
                         location_tree=location_bridge,
                         is_datasender=is_datasender)
     player.form_code = form_code
     return player
Example #2
0
    def setUp(self):
        loc_tree = Mock()
        loc_tree.get_hierarchy_path.return_value = None
        self.dbm = Mock(spec=DatabaseManager)
        self.submission_handler_mock = Mock(spec=SubmissionHandler)
        self.parser = XlsParser()
        self.xls_data = """
                                FORM_CODE,ID,BEDS,DIRECTOR,MEDS
                                CLF1,CL001,10,Dr. A,201
                                CLF1,CL002,11,Dr. B,202

                                CLF2,CL003,12,Dr. C,203
                                CLF1,CL004,13,Dr. D,204
                                
                                CLF1,CL005,14,Dr. E,205
"""
        self.file_name = 'test.xls'
        wb = xlwt.Workbook()
        ws = wb.add_sheet('test')
        for row_number, row in enumerate(self.xls_data.split('\n')):
            for col_number, val in enumerate(row.split(',')):
                ws.write(row_number, col_number, val)
        wb.save(self.file_name)
        self.player = XlsPlayer(self.dbm, self.submission_handler_mock,
                                self.parser, loc_tree)
        self.generate_code_patcher = patch(
            "mangrove.transport.player.player.Player._handle_registration_form"
        )
        self.generate_code_patcher.start()
 def _init_xls_data(self):
     self.parser = XlsParser()
     self.file_name = 'test.xls'
     wb = xlwt.Workbook()
     ws = wb.add_sheet('test')
     for row_number, row in enumerate(UPLOAD_DATA.split('\n')):
         for col_number, val in enumerate(row.split(',')):
             ws.write(row_number, col_number, val)
     wb.save(self.file_name)
Example #4
0
    def setUp(self):
        data = """
                                                                 FORM_CODE,ID,BEDS,DIRECTOR,MEDS

                                                                 CLF1,CL001,10,Dr. A,201
                                                                 CLF1,CL002,11,Dr. B,202

                                                                 CLF2,CL003,12,Dr. C,203
                                                                 CLF1,CL004,13,Dr. D,204
                                                                 CLF1,CL005,14,Dr. E,205

                                 """
        self._write_to_xls(data)
        self.parser = XlsParser()
Example #5
0
def _handle_uploaded_file(file_name, file, manager):
    base_name, extension = os.path.splitext(file_name)
    if extension == '.csv':
        csv_player = CsvPlayer(dbm=manager,
                               submission_handler=SubmissionHandler(manager),
                               parser=CsvParser())
        response = csv_player.accept(file)
    elif extension == '.xls':
        xls_player = XlsPlayer(dbm=manager,
                               submission_handler=SubmissionHandler(manager),
                               parser=XlsParser())
        response = xls_player.accept(file)
    else:
        raise InvalidFileFormatException()
    return response