[master 1/2] Add tests for setRootPassword

dashea installerbot-noreply at redhat.com
Tue Sep 8 20:34:19 UTC 2015


From: David Shea <dshea at redhat.com>

---
 tests/pyanaconda_tests/user_create_test.py | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/tests/pyanaconda_tests/user_create_test.py b/tests/pyanaconda_tests/user_create_test.py
index 0220dcf..e59201f 100644
--- a/tests/pyanaconda_tests/user_create_test.py
+++ b/tests/pyanaconda_tests/user_create_test.py
@@ -281,3 +281,30 @@ def set_user_ssh_key_test(self):
             output_keydata = f.read()
 
         self.assertEqual(keydata, output_keydata.strip())
+
+    def set_root_password_test(self):
+        password = "password1"
+
+        # Initialize a root user with an empty password, like the setup package would have
+        with open(self.tmpdir + "/etc/passwd", "w") as f:
+            f.write("root:x:0:0:root:/root:/bin/bash\n")
+
+        with open(self.tmpdir + "/etc/shadow", "w") as f:
+            f.write("root:*:16489:0:99999:7:::\n")
+
+        self.users.setRootPassword(password, root=self.tmpdir)
+        shadow_fields = self._readFields("/etc/shadow", "root")
+        self.assertEqual(crypt.crypt(password, shadow_fields[1]), shadow_fields[1])
+
+        # Try a different password with isLocked=True
+        password = "password2"
+        self.users.setRootPassword(password, isLocked=True, root=self.tmpdir)
+        shadow_fields = self._readFields("/etc/shadow", "root")
+        self.assertTrue(shadow_fields[1].startswith("!"))
+        self.assertEqual(crypt.crypt(password, shadow_fields[1][1:]), shadow_fields[1][1:])
+
+        # Try an encrypted password
+        password = "$1$asdf$password"
+        self.users.setRootPassword(password, isCrypted=True, root=self.tmpdir)
+        shadow_fields = self._readFields("/etc/shadow", "root")
+        self.assertEqual(password, shadow_fields[1])


-- 
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/8aedfd1966da197d0d7689dbaca99feecaefcf67


More information about the anaconda-patches mailing list