diff --git a/src/processor/org_mode/orgnode.py b/src/processor/org_mode/orgnode.py index 39c67731..433a367f 100644 --- a/src/processor/org_mode/orgnode.py +++ b/src/processor/org_mode/orgnode.py @@ -64,7 +64,7 @@ def makelist(filename): level = 0 heading = "" bodytext = "" - tags = set() # set of all tags in headline + tags = list() # set of all tags in headline closed_date = '' sched_date = '' deadline_date = '' @@ -98,14 +98,14 @@ def makelist(filename): level = hdng.group(1) heading = hdng.group(2) bodytext = "" - tags = set() # set of all tags in headline + tags = list() # set of all tags in headline tagsrch = re.search(r'(.*?)\s*:([a-zA-Z0-9].*?):$',heading) if tagsrch: heading = tagsrch.group(1) parsedtags = tagsrch.group(2) if parsedtags: for parsedtag in parsedtags.split(':'): - if parsedtag != '': tags.add(parsedtag) + if parsedtag != '': tags.append(parsedtag) else: # we are processing a non-heading line if line[:10] == '#+SEQ_TODO': kwlist = re.findall(r'([A-Z]+)\(', line) @@ -217,7 +217,7 @@ class Orgnode(object): self.level = len(level) self.headline = headline self.body = body - self.tags = set(tags) # All tags in the headline + self.tags = tags # All tags in the headline self.todo = "" self.prty = "" # empty of A, B or C self.scheduled = "" # Scheduled date @@ -270,8 +270,8 @@ class Orgnode(object): def Tags(self): """ - Returns the set of all tags - For example, :HOME:COMPUTER: would return {'HOME', 'COMPUTER'} + Returns the list of all tags + For example, :HOME:COMPUTER: would return ['HOME', 'COMPUTER'] """ return self.tags @@ -287,7 +287,7 @@ class Orgnode(object): """ Store all the tags found in the headline. """ - self.tags = set(newtags) + self.tags = newtags def Todo(self): """ diff --git a/tests/test_orgnode.py b/tests/test_orgnode.py index 186eaaec..a81f1cc3 100644 --- a/tests/test_orgnode.py +++ b/tests/test_orgnode.py @@ -23,7 +23,7 @@ Body Line 1''' # Assert assert len(entries) == 1 assert entries[0].Heading() == "Heading" - assert entries[0].Tags() == set() + assert entries[0].Tags() == list() assert entries[0].Body() == "Body Line 1" assert entries[0].Priority() == "" assert entries[0].Property("ID") == "" @@ -57,7 +57,7 @@ Body Line 2''' assert len(entries) == 1 assert entries[0].Heading() == "Heading" assert entries[0].Todo() == "DONE" - assert entries[0].Tags() == {"Tag1", "TAG2", "tag3"} + assert entries[0].Tags() == ["Tag1", "TAG2", "tag3"] assert entries[0].Body() == "- Clocked Log 1\nBody Line 1\nBody Line 2" assert entries[0].Priority() == "A" assert entries[0].Property("ID") == "id:123-456-789-4234-1231" @@ -158,7 +158,7 @@ Body 2 for index, entry in enumerate(entries): assert entry.Heading() == f"Heading{index+1}" assert entry.Todo() == "FAILED" if index == 0 else "CANCELLED" - assert entry.Tags() == {f"tag{index+1}"} + assert entry.Tags() == [f"tag{index+1}"] assert entry.Body() == f"- Clocked Log {index+1}\nBody {index+1}\n\n" assert entry.Priority() == "A" assert entry.Property("ID") == f"id:123-456-789-4234-000{index+1}"