Add uname module

This commit is contained in:
enkore 2014-11-25 22:34:55 +01:00
parent dcd219d7e8
commit 57fda43b4e
2 changed files with 51 additions and 0 deletions

35
i3pystatus/uname.py Normal file
View File

@ -0,0 +1,35 @@
import os
from i3pystatus import Module
class Uname(Module):
"""
uname(1) like module.
Formatters:
- {sysname}: operating system name
- {nodename}: name of machine on network (implementation-defined)
- {release}: operating system release
- {version}: operating system version
- {machine}: hardware identifier
"""
format = "{sysname} {release}"
settings = (
("format", "format string used for output"),
)
def init(self):
uname_result = os.uname()
fdict = {
"sysname": uname_result.sysname,
"nodename": uname_result.nodename,
"release": uname_result.release,
"version": uname_result.version,
"machine": uname_result.machine,
}
self.output = {
"full_text": self.format.format(**fdict),
}

16
tests/test_uname.py Normal file
View File

@ -0,0 +1,16 @@
import os
from i3pystatus import uname
def test_uname():
KEYS = ("sysname", "nodename", "release", "version", "machine")
uref = os.uname()
for key in KEYS:
um = uname.Uname(format="{" + key + "}")
um.init()
assert um.output["full_text"] == getattr(uref, key)