def test_run_clean_directory_list(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!') ]) remote_dirs = ['', 'S', 'files', 'files', 'tmp'] result = comm._clean_directory_list("/home", remote_dirs) self.assertEqual(result, ['/home/files', '/home/tmp'])
def test_run_execute(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) ftp = FtpAutomaton(comm, loop, self.remote_dir, self.local_dir) ftp.execute() file = os.path.join( self.remote_dir, os.path.basename(ftp._file_enumerator.get_current_file_name())) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed') ]) self.assertEqual(ftp._file_state == FileState.NeedDownload, True)
def test_run_execute_twice(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) ftp = FtpAutomaton(comm, loop, self.remote_dir, self.local_dir) self.assertEqual(ftp.__active__, False) ftp.start() self.assertEqual(ftp.__active__, True) time.sleep(ftp._interval_sec * 2 * ftp._calls_per_execute) self.assertEqual(ftp.__active__, True) ftp.stop() self.assertEqual(ftp.__active__, False) time.sleep(ftp._interval_sec * ftp._calls_per_execute) self.assertEqual(ftp.__active__, False) file = os.path.join( self.remote_dir, os.path.basename(ftp._file_enumerator.get_current_file_name())) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed'), call('Downloading remote file', file, 'to local directory', self.local_dir), call('Download file failed') ]) self.setUp()
def test_run_delete_remote_file(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) loop.run_until_complete(self.run_delete_remote_file(comm)) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Deleting remote file', '/home/files/file1.txt'), call('Deleting file failed') ])
def test_run_are_files_identical(self, mock_print): self.setUp() loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) loop.run_until_complete(self.run_are_files_identical(comm)) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Checking if files are identical failed') ])
def test_run_list_directory(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) loop.run_until_complete(self.run_list_directory(comm)) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('List remote directory for', '/home:'), call('List directory failed') ])
def test_run_check_files_identical_file_does_not_exist(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) ftp = FtpAutomaton(comm, loop, self.remote_dir, self.local_dir) ftp._file_state = FileState.NeedIdenticalCheck loop.run_until_complete(self.check_files_identical(ftp)) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Local file does not exist. Retrying download') ]) self.assertEqual(ftp._file_state == FileState.NeedDownload, True) self.setUp()
def test_run_check_files_identical(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) ftp = FtpAutomaton(comm, loop, self.remote_dir, self.local_dir) ftp._file_state = FileState.NeedIdenticalCheck file = open(ftp._file_enumerator.get_current_file_name(), 'w') file.write("Test") file.close() loop.run_until_complete(self.check_files_identical(ftp)) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Checking if files are identical failed') ]) self.assertEqual(ftp._file_state == FileState.NeedIdenticalCheck, True) self.setUp()
def test_run_delete_remote_file(self, mock_print): loop = asyncio.get_event_loop() comm = Comm(loop, self.mavsdk_server_address, self.mavsdk_server_port, self.device, self.baudrate) ftp = FtpAutomaton(comm, loop, self.remote_dir, self.local_dir) ftp._file_state = FileState.NeedDelete loop.run_until_complete(self.delete_remote_file(ftp)) file = os.path.join( self.remote_dir, os.path.basename(ftp._file_enumerator.get_current_file_name())) self.assertEqual(mock_print.mock_calls, [ call('Waiting for mavsdk_server to be ready...'), call('Connected to mavsdk_server!'), call('Deleting remote file', file), call('Deleting file failed') ]) self.assertEqual(ftp._file_state == FileState.NeedDelete, True) self.setUp()
def run_ground_mode(conf): loop = asyncio.get_event_loop() comm = Comm(loop, conf.mavsdk_server_address, conf.mavsdk_server_port, conf.comm_device, conf.comm_baudrate) a = FtpAutomaton(comm, loop, conf.sat_final_dir, conf.downloaded_files_dir) a.start()