def _test_resolve_tree(self): folders = self._test_folders() full_folders = {i['id']: copy.deepcopy(i) for i in folders} for folder in full_folders.values(): folder['properties']['name'] = folder.pop('name') folder['properties']['waypoints'] = [{ 'id': i, 'title': 'waypoint_%s' % i, 'properties': {} } for i in folder['properties']['waypoints']] folder['properties']['tracks'] = [{ 'id': i, 'title': 'track_%s' % i, 'properties': {} } for i in folder['properties']['tracks']] fake_client = mock.MagicMock() fake_client.get_object.side_effect = lambda t, id_: full_folders[id_] fake_client.list_objects.return_value = [{ 'title': 'testdata', 'properties': {}, 'folder': '' }] tree = util.make_tree(folders) resolved = util.resolve_tree(fake_client, tree) return resolved
def test_make_tree(self): tree = util.make_tree(self._test_folders()) self.assertEqual('/', tree['properties']['name']) self.assertEqual({}, tree['properties']['waypoints']) self.assertEqual({}, tree['properties']['tracks']) self.assertEqual(['1', '3'], list(sorted(tree['subfolders'].keys()))) self.assertEqual(['100', '101'], tree['subfolders']['1']['properties']['waypoints']) self.assertEqual(['200', '201'], tree['subfolders']['1']['properties']['tracks']) sf = tree['subfolders']['3']['subfolders']['2'] self.assertEqual([], sf['subfolders']['4']['properties']['waypoints']) self.assertEqual(['202'], sf['subfolders']['4']['properties']['tracks']) return tree
def default(self, args): folders = self.client.list_objects('folder') root = util.make_tree(folders) tree = util.resolve_tree(self.client, root) util.pprint_folder(tree)