def _create_pso(self, pso_name): """Creates a PSO for use in other tests""" # the new PSO will take the current domain settings by default pso_settings = PasswordSettings(None, self.ldb) pso_settings.name = pso_name pso_settings.password_len = 10 pso_settings.precedence = 200 (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "200", "--min-pwd-length=10", "-H", self.server, self.user_auth) # make sure we clean-up after the test completes pso_settings.dn = "CN=%s,%s" % (pso_name, self.pso_container) self.obj_cleanup.append(pso_settings.dn) # sanity-check the cmd was successful self.assertCmdSuccess(result, out, err) self.assertEqual(err, "", "Shouldn't be any error messages") self.assertIn("successfully created", out) self.check_pso(pso_name, pso_settings) return pso_settings
def _create_pso(self, pso_name): """Creates a PSO for use in other tests""" # the new PSO will take the current domain settings by default pso_settings = PasswordSettings(None, self.ldb) pso_settings.name = pso_name pso_settings.password_len = 10 pso_settings.precedence = 200 (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "200", "--min-pwd-length=10", "-H", self.server, self.user_auth) # make sure we clean-up after the test completes pso_settings.dn = "CN=%s,%s" %(pso_name, self.pso_container) self.obj_cleanup.append(pso_settings.dn) # sanity-check the cmd was successful self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("successfully created", out) self.check_pso(pso_name, pso_settings) return pso_settings
def test_pso_create(self): """Tests basic PSO creation using the samba-tool""" # we expect the PSO to take the current domain settings by default # (we'll set precedence/complexity, the rest should be the defaults) expected_pso = PasswordSettings(None, self.ldb) expected_pso.complexity = False expected_pso.precedence = 100 # check basic PSO creation works pso_name = "test-create-PSO" (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "100", "--complexity=off", "-H", self.server, self.user_auth) # make sure we clean-up after the test completes self.obj_cleanup.append("CN=%s,%s" % (pso_name, self.pso_container)) self.assertCmdSuccess(result, out, err) self.assertEqual(err, "", "Shouldn't be any error messages") self.assertIn("successfully created", out) self.check_pso(pso_name, expected_pso) # check creating a PSO with the same name fails (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "100", "--complexity=off", "-H", self.server, self.user_auth) self.assertCmdFail(result, "Ensure that create for existing PSO fails") self.assertIn("already exists", err) # check we need to specify at least one password policy argument pso_name = "test-create-PSO2" (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "100", "-H", self.server, self.user_auth) self.assertCmdFail(result, "Ensure that create for existing PSO fails") self.assertIn("specify at least one password policy setting", err) # create a PSO with different settings and check they match expected_pso.complexity = True expected_pso.store_plaintext = True expected_pso.precedence = 50 expected_pso.password_len = 12 day_in_secs = 60 * 60 * 24 expected_pso.password_age_min = 11 * day_in_secs expected_pso.password_age_max = 50 * day_in_secs (result, out, err) = self.runsublevelcmd( "domain", ("passwordsettings", "pso", "create"), pso_name, "50", "--complexity=on", "--store-plaintext=on", "--min-pwd-length=12", "--min-pwd-age=11", "--max-pwd-age=50", "-H", self.server, self.user_auth) self.obj_cleanup.append("CN=%s,%s" % (pso_name, self.pso_container)) self.assertCmdSuccess(result, out, err) self.assertEqual(err, "", "Shouldn't be any error messages") self.assertIn("successfully created", out) self.check_pso(pso_name, expected_pso) # check the PSOs we created are present in the 'list' command (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "list"), "-H", self.server, self.user_auth) self.assertCmdSuccess(result, out, err) self.assertIn("test-create-PSO", out) self.assertIn("test-create-PSO2", out)
def test_pso_create(self): """Tests basic PSO creation using the samba-tool""" # we expect the PSO to take the current domain settings by default # (we'll set precedence/complexity, the rest should be the defaults) expected_pso = PasswordSettings(None, self.ldb) expected_pso.complexity = False expected_pso.precedence = 100 # check basic PSO creation works pso_name = "test-create-PSO" (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "100", "--complexity=off", "-H", self.server, self.user_auth) # make sure we clean-up after the test completes self.obj_cleanup.append("CN=%s,%s" %(pso_name, self.pso_container)) self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("successfully created", out) self.check_pso(pso_name, expected_pso) # check creating a PSO with the same name fails (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "100", "--complexity=off", "-H", self.server, self.user_auth) self.assertCmdFail(result, "Ensure that create for existing PSO fails") self.assertIn("already exists", err) # check we need to specify at least one password policy argument pso_name = "test-create-PSO2" (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "100", "-H", self.server, self.user_auth) self.assertCmdFail(result, "Ensure that create for existing PSO fails") self.assertIn("specify at least one password policy setting", err) # create a PSO with different settings and check they match expected_pso.complexity = True expected_pso.store_plaintext = True expected_pso.precedence = 50 expected_pso.password_len = 12 day_in_secs = 60 * 60 * 24 expected_pso.password_age_min = 11 * day_in_secs expected_pso.password_age_max = 50 * day_in_secs (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "create"), pso_name, "50", "--complexity=on", "--store-plaintext=on", "--min-pwd-length=12", "--min-pwd-age=11", "--max-pwd-age=50", "-H", self.server, self.user_auth) self.obj_cleanup.append("CN=%s,%s" %(pso_name, self.pso_container)) self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("successfully created", out) self.check_pso(pso_name, expected_pso) # check the PSOs we created are present in the 'list' command (result, out, err) = self.runsublevelcmd("domain", ("passwordsettings", "pso", "list"), "-H", self.server, self.user_auth) self.assertCmdSuccess(result, out, err) self.assertIn("test-create-PSO", out) self.assertIn("test-create-PSO2", out)