[Python-checkins] cpython (2.7): Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
serhiy.storchaka
python-checkins at python.org
Sun May 25 15:24:11 CEST 2014
http://hg.python.org/cpython/rev/c35274fe5b35
changeset: 90824:c35274fe5b35
branch: 2.7
parent: 90817:ece24bcd1a6f
user: Serhiy Storchaka <storchaka at gmail.com>
date: Sun May 25 16:21:32 2014 +0300
summary:
Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
files:
Lib/test/test_spwd.py | 62 +++++++++++++++++++++++++++++++
Misc/NEWS | 2 +
2 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
new file mode 100644
--- /dev/null
+++ b/Lib/test/test_spwd.py
@@ -0,0 +1,62 @@
+import os
+import unittest
+from test import test_support
+
+spwd = test_support.import_module('spwd')
+
+
+ at unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
+ 'root privileges required')
+class TestSpwdRoot(unittest.TestCase):
+
+ def test_getspall(self):
+ entries = spwd.getspall()
+ self.assertIsInstance(entries, list)
+ for entry in entries:
+ self.assertIsInstance(entry, spwd.struct_spwd)
+
+ def test_getspnam(self):
+ entries = spwd.getspall()
+ if not entries:
+ self.skipTest('empty shadow password database')
+ random_name = entries[0].sp_nam
+ entry = spwd.getspnam(random_name)
+ self.assertIsInstance(entry, spwd.struct_spwd)
+ self.assertEqual(entry.sp_nam, random_name)
+ self.assertEqual(entry.sp_nam, entry[0])
+ self.assertIsInstance(entry.sp_pwd, str)
+ self.assertEqual(entry.sp_pwd, entry[1])
+ self.assertIsInstance(entry.sp_lstchg, int)
+ self.assertEqual(entry.sp_lstchg, entry[2])
+ self.assertIsInstance(entry.sp_min, int)
+ self.assertEqual(entry.sp_min, entry[3])
+ self.assertIsInstance(entry.sp_max, int)
+ self.assertEqual(entry.sp_max, entry[4])
+ self.assertIsInstance(entry.sp_warn, int)
+ self.assertEqual(entry.sp_warn, entry[5])
+ self.assertIsInstance(entry.sp_inact, int)
+ self.assertEqual(entry.sp_inact, entry[6])
+ self.assertIsInstance(entry.sp_expire, int)
+ self.assertEqual(entry.sp_expire, entry[7])
+ self.assertIsInstance(entry.sp_flag, int)
+ self.assertEqual(entry.sp_flag, entry[8])
+ with self.assertRaises(KeyError) as cx:
+ spwd.getspnam('invalid user name')
+ self.assertEqual(str(cx.exception), "'getspnam(): name not found'")
+ self.assertRaises(TypeError, spwd.getspnam)
+ self.assertRaises(TypeError, spwd.getspnam, 0)
+ self.assertRaises(TypeError, spwd.getspnam, random_name, 0)
+ if test_support.have_unicode:
+ try:
+ unicode_name = unicode(random_name)
+ except UnicodeDecodeError:
+ pass
+ else:
+ self.assertEqual(spwd.getspnam(unicode_name), entry)
+
+
+def test_main():
+ test_support.run_unittest(TestSpwdRoot)
+
+if __name__ == "__main__":
+ test_main()
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -21,6 +21,8 @@
Tests
-----
+- Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
+
- Issue #21522: Added Tkinter tests for Listbox.itemconfigure(),
PanedWindow.paneconfigure(), and Menu.entryconfigure().
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list