def test_get_sync_data( self, mock_get_destination_subdir_data, mock_set_destination_subdir_abs, mock_oswalk, ): """ Test 'get_sync_data' gets list of valid sync_data dictionaries. """ mock_oswalk.return_value = ( ("/tmp/testdir", ["testsubdir"], ["song.mp3", "demo.mp3"]), ("/tmp/testdir/testsubdir", ["testsubdir2"], []), ("/tmp/testdir/testsubdir/testsubdir2", [], ["song2.mp3"]), ) mock_set_destination_subdir_abs.side_effect = ( "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir", # noqa "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir/testsubdir2", # noqa ) sync = Sync(FAKE_MTP_DETAILS, "/tmp", "Card/Music") sync.set_source_abs() sync.set_destination_abs() sync_data_set = sync.get_sync_data() self.assertTrue(mock_set_destination_subdir_abs.call_count, 2) self.assertTrue(mock_get_destination_subdir_data.call_count, 2) expected_sync_data_set = [ { "src_dir_abs": "/tmp/testdir", "src_dir_fls": [ "/tmp/testdir/song.mp3", "/tmp/testdir/demo.mp3", ], "dst_dir_fls": [], "dst_dir_abs": "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir", # noqa }, { "src_dir_abs": "/tmp/testdir/testsubdir/testsubdir2", "src_dir_fls": ["/tmp/testdir/testsubdir/testsubdir2/song2.mp3"], "dst_dir_fls": [], "dst_dir_abs": "/run/user/<user>/gvfs/mtp:host=%5Busb%3A002%2C003%5D/Card/Music/testdir/testsubdir2", # noqa }, ] self.assertIsInstance(sync_data_set, list) self.assertEqual(sync_data_set, expected_sync_data_set)