Best Python code snippet using autotest_python
autotest.py
Source:autotest.py
...401 monitor_dir, '-H autoserv']402 cmd += self.get_base_cmd_args(section)403 cmd += ['>/dev/null', '2>/dev/null', '&']404 return ' '.join(cmd)405 def get_monitor_cmd(self, monitor_dir, stdout_read, stderr_read):406 cmd = [os.path.join(self.autodir, 'bin', 'autotestd_monitor'),407 monitor_dir, str(stdout_read), str(stderr_read)]408 return ' '.join(cmd)409 def get_client_log(self):410 """Find what the "next" client.* prefix should be411 @returns A string of the form client.INTEGER that should be prefixed412 to all client debug log files.413 """414 max_digit = -1415 debug_dir = os.path.join(self.results_dir, 'debug')416 client_logs = glob.glob(os.path.join(debug_dir, 'client.*.*'))417 for log in client_logs:418 _, number, _ = log.split('.', 2)419 if number.isdigit():420 max_digit = max(max_digit, int(number))421 return 'client.%d' % (max_digit + 1)422 def copy_client_config_file(self, client_log_prefix=None):423 """424 Create and copy the client config file based on the server config.425 @param client_log_prefix: Optional prefix to prepend to log files.426 """427 client_config_file = self._create_client_config_file(client_log_prefix)428 self.host.send_file(client_config_file, self.config_file)429 os.remove(client_config_file)430 def _create_client_config_file(self, client_log_prefix=None):431 """432 Create a temporary file with the [CLIENT] section configuration values433 taken from the server global_config.ini.434 @param client_log_prefix: Optional prefix to prepend to log files.435 @return: Path of the temporary file generated.436 """437 config = global_config.global_config.get_section_values('CLIENT')438 if client_log_prefix:439 config.set('CLIENT', 'default_logging_name', client_log_prefix)440 return self._create_aux_file(config.write)441 def _create_aux_file(self, func, *args):442 """443 Creates a temporary file and writes content to it according to a444 content creation function. The file object is appended to *args, which445 is then passed to the content creation function446 @param func: Function that will be used to write content to the447 temporary file.448 @param *args: List of parameters that func takes.449 @return: Path to the temporary file that was created.450 """451 fd, path = tempfile.mkstemp(dir=self.host.job.tmpdir)452 aux_file = os.fdopen(fd, "w")453 try:454 list_args = list(args)455 list_args.append(aux_file)456 func(*list_args)457 finally:458 aux_file.close()459 return path460 @staticmethod461 def is_client_job_finished(last_line):462 return bool(re.match(r'^END .*\t----\t----\t.*$', last_line))463 @staticmethod464 def is_client_job_rebooting(last_line):465 return bool(re.match(r'^\t*GOOD\t----\treboot\.start.*$', last_line))466 def log_unexpected_abort(self, stderr_redirector):467 stderr_redirector.flush_all_buffers()468 msg = "Autotest client terminated unexpectedly"469 self.host.job.record("END ABORT", None, None, msg)470 def _execute_in_background(self, section, timeout):471 full_cmd = self.get_background_cmd(section)472 devnull = open(os.devnull, "w")473 self.copy_client_config_file(self.get_client_log())474 self.host.job.push_execution_context(self.results_dir)475 try:476 result = self.host.run(full_cmd, ignore_status=True,477 timeout=timeout,478 stdout_tee=devnull,479 stderr_tee=devnull)480 finally:481 self.host.job.pop_execution_context()482 return result483 @staticmethod484 def _strip_stderr_prologue(stderr):485 """Strips the 'standard' prologue that get pre-pended to every486 remote command and returns the text that was actually written to487 stderr by the remote command."""488 stderr_lines = stderr.split("\n")[1:]489 if not stderr_lines:490 return ""491 elif stderr_lines[0].startswith("NOTE: autotestd_monitor"):492 del stderr_lines[0]493 return "\n".join(stderr_lines)494 def _execute_daemon(self, section, timeout, stderr_redirector,495 client_disconnect_timeout):496 monitor_dir = self.host.get_tmp_dir()497 daemon_cmd = self.get_daemon_cmd(section, monitor_dir)498 # grab the location for the server-side client log file499 client_log_prefix = self.get_client_log()500 client_log_path = os.path.join(self.results_dir, 'debug',501 client_log_prefix + '.log')502 client_log = open(client_log_path, 'w', 0)503 self.copy_client_config_file(client_log_prefix)504 stdout_read = stderr_read = 0505 self.host.job.push_execution_context(self.results_dir)506 try:507 self.host.run(daemon_cmd, ignore_status=True, timeout=timeout)508 disconnect_warnings = []509 while True:510 monitor_cmd = self.get_monitor_cmd(monitor_dir, stdout_read,511 stderr_read)512 try:513 result = self.host.run(monitor_cmd, ignore_status=True,514 timeout=timeout,515 stdout_tee=client_log,516 stderr_tee=stderr_redirector)517 except error.AutoservRunError, e:518 result = e.result_obj519 result.exit_status = None520 disconnect_warnings.append(e.description)521 stderr_redirector.log_warning(522 "Autotest client was disconnected: %s" % e.description,523 "NETWORK")524 except error.AutoservSSHTimeout:...
recordingtools.py
Source:recordingtools.py
1""" Python equivalent of akai section recordingtools2Methods to facilitate recording3"""4__author__ = 'Walco van Loon'5__version__ = '0.2'6from aksy.devices.akai.sysex import Command7import aksy.devices.akai.sysex_types8class Recordingtools:9 def __init__(self, z48):10 self.sampler = z4811 self.get_status_cmd = Command('_', '\x30\x01', 'recordingtools', 'get_status', (), None)12 self.get_progress_cmd = Command('_', '\x30\x02', 'recordingtools', 'get_progress', (), None)13 self.get_max_rec_time_cmd = Command('_', '\x30\x03', 'recordingtools', 'get_max_rec_time', (), None)14 self.arm_cmd = Command('_', '\x30\x10', 'recordingtools', 'arm', (), None)15 self.start_cmd = Command('_', '\x30\x11', 'recordingtools', 'start', (), None)16 self.stop_cmd = Command('_', '\x30\x12', 'recordingtools', 'stop', (), None)17 self.cancel_cmd = Command('_', '\x30\x13', 'recordingtools', 'cancel', (), None)18 self.start_playing_cmd = Command('_', '\x30\x20', 'recordingtools', 'start_playing', (), None)19 self.stop_playing_cmd = Command('_', '\x30\x21', 'recordingtools', 'stop_playing', (), None)20 self.keep_cmd = Command('_', '\x30\x22', 'recordingtools', 'keep', (), None)21 self.delete_cmd = Command('_', '\x30\x23', 'recordingtools', 'delete', (), None)22 self.set_input_cmd = Command('_', '\x32\x01', 'recordingtools', 'set_input', (aksy.devices.akai.sysex_types.BYTE,), None)23 self.set_mode_cmd = Command('_', '\x32\x02', 'recordingtools', 'set_mode', (aksy.devices.akai.sysex_types.BYTE,), None)24 self.enable_monitor_cmd = Command('_', '\x32\x03', 'recordingtools', 'enable_monitor', (aksy.devices.akai.sysex_types.BOOL,), None)25 self.set_rec_time_cmd = Command('_', '\x32\x04', 'recordingtools', 'set_rec_time', (aksy.devices.akai.sysex_types.DWORD,), None)26 self.set_orig_pitch_cmd = Command('_', '\x32\x05', 'recordingtools', 'set_orig_pitch', (aksy.devices.akai.sysex_types.BYTE,), None)27 self.set_threshold_cmd = Command('_', '\x32\x06', 'recordingtools', 'set_threshold', (aksy.devices.akai.sysex_types.SBYTE,), None)28 self.set_trigger_src_cmd = Command('_', '\x32\x07', 'recordingtools', 'set_trigger_src', (aksy.devices.akai.sysex_types.BYTE,), None)29 self.set_bit_depth_cmd = Command('_', '\x32\x08', 'recordingtools', 'set_bit_depth', (aksy.devices.akai.sysex_types.BYTE,), None)30 self.set_prerec_time_cmd = Command('_', '\x32\x09', 'recordingtools', 'set_prerec_time', (aksy.devices.akai.sysex_types.WORD,), None)31 self.set_dest_cmd = Command('_', '\x32\x0A', 'recordingtools', 'set_dest', (aksy.devices.akai.sysex_types.BYTE,), None)32 self.set_name_cmd = Command('_', '\x32\x10', 'recordingtools', 'set_name', (aksy.devices.akai.sysex_types.STRING,), None)33 self.set_name_seed_cmd = Command('_', '\x32\x11', 'recordingtools', 'set_name_seed', (aksy.devices.akai.sysex_types.STRING,), None)34 self.set_autorec_mode_cmd = Command('_', '\x32\x12', 'recordingtools', 'set_autorec_mode', (aksy.devices.akai.sysex_types.BOOL,), None)35 self.set_autonormalize_cmd = Command('_', '\x32\x13', 'recordingtools', 'set_autonormalize', (aksy.devices.akai.sysex_types.BOOL,), None)36 self.get_input_cmd = Command('_', '\x33\x01', 'recordingtools', 'get_input', (), None)37 self.get_mode_cmd = Command('_', '\x33\x02', 'recordingtools', 'get_mode', (), None)38 self.get_monitor_cmd = Command('_', '\x33\x03', 'recordingtools', 'get_monitor', (), None)39 self.get_rec_time_cmd = Command('_', '\x33\x04', 'recordingtools', 'get_rec_time', (), None)40 self.get_pitch_cmd = Command('_', '\x33\x05', 'recordingtools', 'get_pitch', (), None)41 self.get_threshold_cmd = Command('_', '\x33\x06', 'recordingtools', 'get_threshold', (), None)42 self.get_trigger_src_cmd = Command('_', '\x33\x07', 'recordingtools', 'get_trigger_src', (), None)43 self.get_bit_depth_cmd = Command('_', '\x33\x08', 'recordingtools', 'get_bit_depth', (), None)44 self.get_prerec_time_cmd = Command('_', '\x33\x09', 'recordingtools', 'get_prerec_time', (), None)45 self.get_dest_cmd = Command('_', '\x33\x0A', 'recordingtools', 'get_dest', (), None)46 self.get_name_cmd = Command('_', '\x33\x10', 'recordingtools', 'get_name', (), None)47 self.get_name_seed_cmd = Command('_', '\x33\x11', 'recordingtools', 'get_name_seed', (), None)48 self.get_autorec_mode_cmd = Command('_', '\x33\x12', 'recordingtools', 'get_autorec_mode', (), None)49 self.get_autonormalize_cmd = Command('_', '\x33\x13', 'recordingtools', 'get_autonormalize', (), None)50 def get_status(self):51 """Get Record Status52 Returns:53 BYTE54 """55 return self.sampler.execute(self.get_status_cmd, ())56 def get_progress(self):57 """Get Record Progress58 Returns:59 DWORD60 """61 return self.sampler.execute(self.get_progress_cmd, ())62 def get_max_rec_time(self):63 """Get Maximum Record Time64 Returns:65 DWORD66 """67 return self.sampler.execute(self.get_max_rec_time_cmd, ())68 def arm(self):69 """Arm Recording70 """71 return self.sampler.execute(self.arm_cmd, ())72 def start(self):73 """Start Recording74 """75 return self.sampler.execute(self.start_cmd, ())76 def stop(self):77 """Stop Recording78 """79 return self.sampler.execute(self.stop_cmd, ())80 def cancel(self):81 """Cancel Recording82 """83 return self.sampler.execute(self.cancel_cmd, ())84 def start_playing(self):85 """Play Recorded Sample Start86 """87 return self.sampler.execute(self.start_playing_cmd, ())88 def stop_playing(self):89 """Play Recorded Sample Stop90 """91 return self.sampler.execute(self.stop_playing_cmd, ())92 def keep(self):93 """Keep Recorded Sample. Sample with name assigned above, is added to the list of available samples.94 """95 return self.sampler.execute(self.keep_cmd, ())96 def delete(self):97 """Delete Recorded Sample98 """99 return self.sampler.execute(self.delete_cmd, ())100 def set_input(self, arg0):101 """Set Input <Data1> = (0=ANALOGUE, 1=DIGITAL, 2=MAIN OUT 3=ADAT1/2, 4=ADAT3/4, 5=ADAT5/6, 6=ADAT7/8)102 """103 return self.sampler.execute(self.set_input_cmd, (arg0, ))104 def set_mode(self, arg0):105 """Set Record Mode <Data1> = (0=STEREO, 1=MONO L, 2=MONO R, 3=L/R MIX)106 """107 return self.sampler.execute(self.set_mode_cmd, (arg0, ))108 def enable_monitor(self, arg0):109 """Set Record Monitor110 """111 return self.sampler.execute(self.enable_monitor_cmd, (arg0, ))112 def set_rec_time(self, arg0):113 """Set Record Time <Data1> = time in seconds. If <Data1> = 0, MANUAL mode is enabled.114 """115 return self.sampler.execute(self.set_rec_time_cmd, (arg0, ))116 def set_orig_pitch(self, arg0):117 """Set Original Pitch118 """119 return self.sampler.execute(self.set_orig_pitch_cmd, (arg0, ))120 def set_threshold(self, arg0):121 """Set Threshold <Data1> = threshold in dB (-63,0)122 """123 return self.sampler.execute(self.set_threshold_cmd, (arg0, ))124 def set_trigger_src(self, arg0):125 """Set Trigger Source (0=OFF, 1=AUDIO, 2=MIDI)126 """127 return self.sampler.execute(self.set_trigger_src_cmd, (arg0, ))128 def set_bit_depth(self, arg0):129 """Set Bit Depth <Data1> = (0=16-bit, 1=24-bit)130 """131 return self.sampler.execute(self.set_bit_depth_cmd, (arg0, ))132 def set_prerec_time(self, arg0):133 """Set Pre-recording Time <Data1> = time in ms134 """135 return self.sampler.execute(self.set_prerec_time_cmd, (arg0, ))136 def set_dest(self, arg0):137 """Set Recording Detination <Data1> = (0=RAM, 1=DISK) Note: seems to be unsupported138 """139 return self.sampler.execute(self.set_dest_cmd, (arg0, ))140 def set_name(self, arg0):141 """Set Record Name142 """143 return self.sampler.execute(self.set_name_cmd, (arg0, ))144 def set_name_seed(self, arg0):145 """Set Record Name Seed146 """147 return self.sampler.execute(self.set_name_seed_cmd, (arg0, ))148 def set_autorec_mode(self, arg0):149 """Set Auto-Record Mode <Data1> = (0=OFF, 1=ON)150 """151 return self.sampler.execute(self.set_autorec_mode_cmd, (arg0, ))152 def set_autonormalize(self, arg0):153 """Set Auto-Normalise Mode <Data1> = (0=OFF, 1=ON)154 """155 return self.sampler.execute(self.set_autonormalize_cmd, (arg0, ))156 def get_input(self):157 """Get Input (0=ANALOGUE, 1=DIGITAL, 2=MAIN OUT, 3=ADAT1/2, 4=ADAT3/4, 5=ADAT5/6, 6=ADAT7/8)158 Returns:159 BYTE160 """161 return self.sampler.execute(self.get_input_cmd, ())162 def get_mode(self):163 """Get Record Mode (0=STEREO, 1=MONO L, 2=MONO R, 3=L/R MIX)164 """165 return self.sampler.execute(self.get_mode_cmd, ())166 def get_monitor(self):167 """Get Record Monitor <Reply> = (0=OFF, 1=ON)168 Returns:169 BOOL170 """171 return self.sampler.execute(self.get_monitor_cmd, ())172 def get_rec_time(self):173 """Get Record Time <Reply> = time in seconds.174 Returns:175 DWORD176 """177 return self.sampler.execute(self.get_rec_time_cmd, ())178 def get_pitch(self):179 """Get Original Pitch180 Returns:181 BYTE182 """183 return self.sampler.execute(self.get_pitch_cmd, ())184 def get_threshold(self):185 """Get Threshold <Reply> = threshold in dB -63,0186 Returns:187 SBYTE188 """189 return self.sampler.execute(self.get_threshold_cmd, ())190 def get_trigger_src(self):191 """Get Trigger Source <Reply> = (0=OFF, 1=AUDIO, 2=MIDI)192 Returns:193 BYTE194 """195 return self.sampler.execute(self.get_trigger_src_cmd, ())196 def get_bit_depth(self):197 """Get Bit Depth <Reply> = (0=16-bit, 1=24-bit)198 Returns:199 BYTE200 """201 return self.sampler.execute(self.get_bit_depth_cmd, ())202 def get_prerec_time(self):203 """Get Pre-recording Time <Reply> = time in ms204 Returns:205 WORD206 """207 return self.sampler.execute(self.get_prerec_time_cmd, ())208 def get_dest(self):209 """Get Recording Destination <Reply> = (0=RAM, 1=DISK) Note: seems to be unsupported210 Returns:211 BYTE212 """213 return self.sampler.execute(self.get_dest_cmd, ())214 def get_name(self):215 """Get Record Name216 Returns:217 STRING218 """219 return self.sampler.execute(self.get_name_cmd, ())220 def get_name_seed(self):221 """Get Record Name Seed222 Returns:223 STRING224 """225 return self.sampler.execute(self.get_name_seed_cmd, ())226 def get_autorec_mode(self):227 """Get Auto-Record Mode <Reply> = (0=OFF, 1=ON)228 Returns:229 BOOL230 """231 return self.sampler.execute(self.get_autorec_mode_cmd, ())232 def get_autonormalize(self):233 """Get Auto-Normalise Mode <Reply> = (0=OFF, 1=ON)234 Returns:235 BOOL236 """...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!