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
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
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)
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()
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
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)
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
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)
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()
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
def find_board_port(self, board): return CompilerUploader.construct(board).get_port()
def get_available_ports(self): return CompilerUploader.construct().get_available_ports()