Beispiel #1
0
def create_compiler_uploader_mock():
    compileUploaderMock = flexmock(CompilerUploader(),
                                   compile=lambda *args: [True, None],
                                   get_port="PORT")
    CompileUploaderConstructorMock = flexmock(
        CompilerUploader, construct=lambda *args: compileUploaderMock)

    return compileUploaderMock, CompileUploaderConstructorMock
Beispiel #2
0
 def get_hex_data(self, code, _sender):
     """
     :type code: str
     :type _sender: ConnectedClientsGroup
     """
     log.info("getting hexData from {}".format(_sender.ID))
     log.debug("Compiling code: {}".format(code.encode("utf-8")))
     _sender.is_compiling()
     compileReport, hexData = CompilerUploader.construct().get_hex_data(code)
     return self.__handle_compile_report(compileReport), hexData
Beispiel #3
0
 def compile(self, code, _sender):
     """
     :type code: str
     :type _sender: ConnectedClientsGroup
     """
     log.info("Compiling from {}".format(_sender.ID))
     log.debug("Compiling code: {}".format(code.encode("utf-8")))
     _sender.is_compiling()
     compile_report = CompilerUploader.construct().compile(code)
     return self.__handle_compile_report(compile_report)
Beispiel #4
0
    def setUp(self):
        self.platformio_path = pm.PLATFORMIO_WORKSPACE_SKELETON
        self.hex_file_path = os.path.join(pm.TEST_SETTINGS_PATH, "CompilerUploader", "hex.hex")
        self.src_copy_path = os.path.join(pm.TEST_SETTINGS_PATH, "CompilerUploader", "srcCopy")
        self.working_cpp_path = os.path.join(self.src_copy_path, "working.ino")
        self.working_pre_compiler_cpp_path = os.path.join(self.src_copy_path, "precompiller.ino")
        self.not_working_cpp_path = os.path.join(self.src_copy_path, "notWorking.ino")
        self.with_libraries_cpp_path = os.path.join(self.src_copy_path, "withLibraries.ino")
        self.connected_board = self.platform_to_use
        self.compiler = CompilerUploader.construct(self.__get_platform_to_use())

        restore_test_resources()
Beispiel #5
0
 def __prepare_upload(self, board, _sender, upload_port=None):
     if upload_port is not None:
         _sender.is_uploading(upload_port)
         return upload_port
     compile_uploader = CompilerUploader.construct(board)
     self.serial_hub.close_all_connections()
     try:
         upload_port = compile_uploader.get_port()
     except CompilerException as e:
         return self._construct_unsuccessful_replay(dict(title="BOARD_NOT_READY", stdErr=e.message))
     _sender.is_uploading(upload_port)
     return upload_port
Beispiel #6
0
    def upload(self, code, board, _sender, port=None):
        """
        :type code: str
        :type _sender: ConnectedClientsGroup
        """
        log.info("Uploading for board {} from {}".format(board, _sender.ID))
        log.debug("Uploading code: {}".format(code.encode("utf-8")))
        upload_port = self.__prepare_upload(board, _sender, port)
        if isinstance(upload_port, UnsuccessfulReplay):
            return upload_port

        compile_report = CompilerUploader.construct(board).upload(code, upload_port=upload_port)

        return self.__handle_compile_report(compile_report, upload_port)
Beispiel #7
0
    def setUpClass(cls):
        if cls.portToUse is None:
            try:
                cls.portToUse = CompilerUploader.construct(cls.__get_platform_to_use()).get_port()
            except:
                cls.portToUse = -1
        cls.platform_to_use = cls.__get_platform_to_use()
        log.info("""\n\n
        #######################################
        Remember to connect a {} board
        #######################################\n""".format(cls.platform_to_use))

        def click_confirm(message):
            print message
            return True

        click.confirm = click_confirm
Beispiel #8
0
    def upload_hex(self, hex_text, board, _sender, port=None):
        """
        :type board: str
        :type hex_text: str
        :type _sender: ConnectedClientsGroup
        """
        log.info("upload Hex text for board {} from {}".format(board, _sender.ID))
        upload_port = self.__prepare_upload(board, _sender, port)
        if isinstance(upload_port, UnsuccessfulReplay):
            return upload_port

        with open(PathsManager.RES_PATH + os.sep + "factory.hex", 'w+b') as tmpHexFile:
            tmpHexFile.write(hex_text)

        rel_path = os.path.relpath(tmpHexFile.name, os.getcwd())
        compileReport = CompilerUploader.construct(board).upload_avr_hex(rel_path, upload_port=upload_port)
        return self.__handle_compile_report(compileReport, upload_port)
Beispiel #9
0
    def setUp(self):
        self.platformio_path = pm.PLATFORMIO_WORKSPACE_SKELETON
        self.hex_file_path = os.path.join(pm.TEST_SETTINGS_PATH,
                                          "CompilerUploader", "hex.hex")
        self.src_copy_path = os.path.join(pm.TEST_SETTINGS_PATH,
                                          "CompilerUploader", "srcCopy")
        self.working_cpp_path = os.path.join(self.src_copy_path, "working.ino")
        self.working_pre_compiler_cpp_path = os.path.join(
            self.src_copy_path, "precompiller.ino")
        self.not_working_cpp_path = os.path.join(self.src_copy_path,
                                                 "notWorking.ino")
        self.with_libraries_cpp_path = os.path.join(self.src_copy_path,
                                                    "withLibraries.ino")
        self.connected_board = self.platform_to_use
        self.compiler = CompilerUploader.construct(
            self.__get_platform_to_use())

        restore_test_resources()
Beispiel #10
0
    def setUpClass(cls):
        if cls.portToUse is None:
            try:
                cls.portToUse = CompilerUploader.construct(
                    cls.__get_platform_to_use()).get_port()
            except:
                cls.portToUse = -1
        cls.platform_to_use = cls.__get_platform_to_use()
        log.info("""\n\n
        #######################################
        Remember to connect a {} board
        #######################################\n""".format(
            cls.platform_to_use))

        def click_confirm(message):
            print message
            return True

        click.confirm = click_confirm
Beispiel #11
0
 def find_board_port(self, board):
     return CompilerUploader.construct(board).get_port()
Beispiel #12
0
 def get_available_ports(self):
     return CompilerUploader.construct().get_available_ports()