blob: d31fe1ac63ca06be1fa9b71fddd5f4ded8420476 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/usr/bin/python
import os.path
import shutil
import sys
import tempfile
import unittest
import xdg.Menu
import xdg.DesktopEntry
import resources
def show_menu(menu, depth = 0):
# print depth*"-" + "\x1b[01m" + menu.getName().encode("ascii", 'ignore') + "\x1b[0m"
# depth += 1
for entry in menu.getEntries():
if isinstance(entry, xdg.Menu.Menu):
show_menu(entry, depth)
elif isinstance(entry, xdg.Menu.MenuEntry):
# print depth*"-" + entry.DesktopEntry.getName().encode("ascii", 'ignore')
print(menu.getPath() + "/\t" + entry.DesktopFileID + "\t" + entry.DesktopEntry.getFileName())
# elif isinstance(entry, xdg.Menu.Separator):
# print depth*"-" + "|||"
# elif isinstance(entry, xdg.Menu.Header):
# print depth*"-" + "\x1b[01m" + entry.Name + "\x1b[0m"
# depth -= 1
class MenuTest(unittest.TestCase):
def setUp(self):
self.tmpdir = tempfile.mkdtemp()
self.test_file = os.path.join(self.tmpdir, "applications.menu")
with open(self.test_file, "w") as f:
f.write(resources.applications_menu)
def tearDown(self):
shutil.rmtree(self.tmpdir)
def test_parse_menu(self):
menu = xdg.Menu.parse(self.test_file)
show_menu(menu)
# Check these don't throw an error
menu.getName()
menu.getGenericName()
menu.getComment()
menu.getIcon()
|