diff --git a/i3pystatus/openfiles.py b/i3pystatus/openfiles.py index 0afb43e..cc7a7d1 100644 --- a/i3pystatus/openfiles.py +++ b/i3pystatus/openfiles.py @@ -18,8 +18,9 @@ class Openfiles(IntervalModule): def run(self): - cur_filenr = open(self.filenr_path, 'r').readlines() - openfiles, unused, maxfiles = cur_filenr[0].split() + cur_filenr = open(self.filenr_path, 'r') + openfiles, unused, maxfiles = cur_filenr.readlines()[0].split() + cur_filenr.close() cdict = {'openfiles': openfiles, 'maxfiles': maxfiles} diff --git a/tests/test_openfiles.py b/tests/test_openfiles.py new file mode 100644 index 0000000..737fe8a --- /dev/null +++ b/tests/test_openfiles.py @@ -0,0 +1,29 @@ +""" +Basic test for the openfiles module +""" + +import unittest +from tempfile import TemporaryDirectory +from shutil import copyfile +from i3pystatus import openfiles + + +class OpenfilesTest(unittest.TestCase): + + def test_openfiles(self): + """ + Test output of open files + """ + # copy file-nr so we have a known/unchanged source file + with TemporaryDirectory() as tmpdirname: + copyfile('/proc/sys/fs/file-nr', tmpdirname + '/file-nr') + cur_filenr = open(tmpdirname + '/file-nr', 'r') + openfilehandles, ununsed, maxfiles = cur_filenr.readlines()[0].split() + cur_filenr.close() + i3openfiles = openfiles.Openfiles(filenr_path=tmpdirname + '/file-nr') + i3openfiles.run() + self.assertTrue(i3openfiles.output['full_text'] == 'open/max: %s/%s' % (openfilehandles, maxfiles)) + + +if __name__ == '__main__': + unittest.main()