def get_results(self): """ download and unpack tar file from remote to local computer, if local computer is windows, convert files into dos-format :return: """ if self._subject.location == 'remote': message(mode='INFO', text='Get results {}'.format(self._item.name())) mod = __import__(self._subject.computer) generate_folder(self._item.directory) if path.exists(self._item.directory): # clear local directory files = glob(self._item.directory + '*') for file in files: remove_file(file) winscp_command = 'get {}results.tar {}'.format( self._item.directory_computer_selected, self._item.directory) call_winscp([winscp_command], self._subject.user, self._subject.hostname, mod.pwd, output_flag=True) unpack_tar_file(self._item.directory) # tar file on local computer if system() == 'Windows': message(mode='INFO', text=' Convert to dos') for file in listdir(self._item.directory): unix2dos(file, output_flag=False) else: message(mode='ERROR', text='Directory missing') else: message(mode='INFO', text='{} is local - Nothing done'.format(self._subject.computer))
def update_release(self): """ copy built files in special folder and rename them for release generate new release folder if it does not exist :return: """ message(mode='INFO', text='Updating release {} {}'.format(system(), self._item.configuration)) generate_folder(self._subject.directory + 'releases') built_file = self._subject.get_built_file(self._item) copy_file(built_file, self._subject.get_built_file_for_release(self._item))
def export_to_repository(self, gate_flag=False): """ copy input files into destination folder X: destination is gate (for file transfer between computer) x: destination is repository (e.g. for file transfer between branches) destination folder generated if it is missing :return: """ message(mode='INFO', text='Exporting {}'.format(self._item.name())) if gate_flag: message(mode='INFO', text='Into gate') directory_destination = self._subject.directory_gate else: message(mode='INFO', text='Into repository') directory_destination = self._item.directory_repository generate_folder(directory_destination) copy_input_files(self._item.directory, directory_destination)
def import_from_repository(self, gate_flag=False): """ copy input files from source directory into folder for test runs folder is generated if it is missing I: source is gate (for file transfer between computer) i: source is repository (e.g. for file transfer between branches) :return: """ message(mode='INFO', text='Importing {}'.format(self._item.name())) if gate_flag: message(mode='INFO', text=' From gate') directory_source = self._subject.directory_gate else: message(mode='INFO', text=' From repository') directory_source = self._item.directory_repository generate_folder(self._item.directory) copy_input_files(directory_source, self._item.directory)
def store_results_as_reference(self): """ copy results (these are files with endings configurationShared.outputFileEndings) into reference folder (generates folder for references if it does not exist) each computer, case, branch has own reference folder :return: """ message(mode='INFO', text='Store results as reference \n {}'.format(self._item.name())) directory_reference = adapt_path("{}references\\{}\\{}\\{}\\{}\\{}\\".format( self._subject.directory, self._item.type, self._item.case, self._item.flow_process, self._item.element_type, self._item.configuration)) generate_folder(directory_reference) if path.exists(self._item.directory): for extension in outputFileEndings: for file_name in listdir(self._item.directory): if file_name.endswith('.{}'.format(extension)): copy_file(self._item.directory + file_name, directory_reference) else: message(mode='ERROR', text='Directory missing')