Esempio n. 1
0
	def test_merge(self):
		tree = ElementTree.fromstring(
			'<omnifocus xmlns="http://www.omnigroup.com/namespace/OmniFocus/v1" app-id="com.omnigroup.OmniFocus.iPad" app-version="79.4.0.175422" os-name="iPhone OS" os-version="6.1" machine-model="iPad">' +
			'<task id="l5FczgWVl2S">' +
			'<task idref="gZW06uIszyr"/>' +
			'<added>2012-08-28T04:55:12.824Z</added>' +
			'<modified>2012-09-05T08:00:16.788Z</modified>' +
			'<name>Kill duplicates</name>' +
			'<rank>0</rank>' +
			'<order>parallel</order>' +
			'</task>' +
			'</omnifocus>')

		tree_upd = ElementTree.fromstring(
			'<omnifocus xmlns="http://www.omnigroup.com/namespace/OmniFocus/v1" app-id="com.omnigroup.OmniFocus.iPad" app-version="79.4.0.175422" os-name="iPhone OS" os-version="6.1" machine-model="iPad">' +
			'<task id="l5FczgWVl2S" op="update">' +
			'<task idref="gZW06uIszyr"/>' +
			'<added>2012-08-28T04:55:12.824Z</added>' +
			'<modified>2012-09-05T08:00:16.788Z</modified>' +
			'<name>Kill duplicates in bases</name>' +
			'<rank>0</rank>' +
			'<order>parallel</order>' +
			'</task>' +
			'</omnifocus>')

		task = Task()
		task.fromXmlNode(tree[0])
		task.merge(tree_upd[0])
		self.assertEquals(task.name, "Kill duplicates in bases")
Esempio n. 2
0
	def fromXml(self, tree):
		self._tree = tree
		root = tree
		self.tasks = dict()
		self.tasks_tree = dict()
		self.folders = dict()
		self.folders_tree = dict()
		self.contexts = dict()
		self.contexts_tree = dict()

		for e in root:
			tag = extract_tag(e.tag)
			if tag == 'task':
				task = Task()
				task.fromXmlNode(e)
				self.tasks[task.id] = task
				parent = task.parentRef or task.folderRef or "/"
				if not parent in self.tasks_tree:
					self.tasks_tree[parent] = []
				self.tasks_tree[parent].append(task)
			elif tag == 'folder':
				folder = Folder()
				folder.fromXmlNode(e)
				self.folders[folder.id] = folder
				parent_folder = folder.parentRef or "/"
				if not parent_folder in self.folders_tree:
					self.folders_tree[parent_folder] = []
				self.folders_tree[parent_folder].append(folder)
			elif tag == 'context':
				context = Context()
				context.fromXmlNode(e)
				self.contexts[context.id] = context
				parent_ctx = context.parentRef or "/"
				if not parent_ctx in self.contexts_tree:
					self.contexts_tree[parent_ctx] = []
				self.contexts_tree[parent_ctx].append(context)