[Freeipa-devel] [TEST][Patch-0030]Next part of replica promotion tests

Oleg Fayans ofayans at redhat.com
Fri Apr 1 09:41:16 UTC 2016


Hi Martin,

Thanks for the review! The new version is attached

On 03/24/2016 06:08 PM, Martin Babinsky wrote:
> On 03/21/2016 01:51 PM, Oleg Fayans wrote:
>>
>>
>>
> Hi Oleg,
> 
> I have a few comments:
> 
> 1.)
> please make the commit message more clear, briefly describe what kind of
> test cases were added to the suite and maybe add a link to the test plan.

Done

> 
> 2.)
> I see negative test scenarios for attempting to issue
> 'ipa-csreplica-manage connect' and 'disconnect' under domain level 1.
> However, for full coverage there should be also a negative test case for
> 'ipa-csreplica-manage del' which should also issue error in domain level
> 1, see
> https://git.fedorahosted.org/cgit/freeipa.git/commit/install/tools/ipa-csreplica-manage?h=ipa-4-3&id=6119dbb9a915283434f718b38a70017e3ad00840
> 
> 
> Could you please add this case to the patch and also to the Test plan so
> that we have full coverage of this?

Done

> 
> 3.)
> test_one_command_installation exploded during client enrollment part on
> "Joining realm failed: incorrect password". This is probably caused by
> missing '-P', 'admin' option here:
> """
> +        self.replicas[0].run_command(['ipa-replica-install', '-p',
> +                                     self.master.config.admin_password,
> +                                     '-n', self.master.domain.name,
> +                                     '-r', self.master.domain.realm])
> +
> """

Fixed. Turned out, it's enough to just provide '-w'

> 
> 4.)
> I am not very happy about the organization of
> 'TestUnprivilegedUserPermissions' class.
> 
> For starters, I would add this whole block:
> """
> +        password = self.master.config.dirman_password
> +        new_password = '$ome0therPaaS'
> +        replica = self.replicas[0]
> +        adduser_stdin_text = "%s\n%s\n" %
> (self.master.config.admin_password,
> + self.master.config.admin_password)
> +        user_kinit_stdin_text = "%s\n%s\n%s\n" % (password, new_password,
> +                                                  new_password)
> +        tasks.kinit_admin(self.master)
> +        self.master.run_command(['ipa', 'user-add', 'testuser',
> '--password',
> +                                 '--first', 'John', '--last', 'Donn'],
> +                                stdin_text=adduser_stdin_text)
> +        # Now we need to change the password for the user
> +        self.master.run_command(['kinit', 'testuser'],
> +                                stdin_text=user_kinit_stdin_text)
> +        # And again kinit admin
> +        tasks.kinit_admin(self.master)
> """
> 
> into 'install()' method, since it indeed sets-up the test harness. You
> can add the user name and password to class members so that you can then
> use them from the test cases. Which brings me to the second point: I
> know that the test plan mentions this as a single test case, but I would
> like this:
> 
> """
> +        result1 = replica.run_command(['ipa-client-install', '-p',
> 'testuser',
> +                                       '-w', new_password,
> +                                       '--domain', replica.domain.name,
> +                                       '--realm', replica.domain.realm,
> '-U'],
> +                                      raiseonerr=False)
> +        assert_error(result1, "No permission to join this host", 1)
> +        tasks.install_client(self.master, replica)
> +        result2 = replica.run_command(['ipa-replica-install', '-P',
> 'testuser',
> +                                       '-p', new_password,
> +                                       '-n', self.master.domain.name,
> +                                       '-r', self.master.domain.realm],
> +                                      raiseonerr=False)
> +        assert_error(result2,
> +                     "Insufficient privileges to promote the server", 1)
> +        self.master.run_command(['ipa', 'group-add-member', 'admins',
> +                                 '--users=testuser'])
> +
> +        replica.run_command(['ipa-replica-install', '-P', 'testuser',
> +                             '-p', new_password,
> +                             '-n', self.master.domain.name,
> +                             '-r', self.master.domain.realm])
> """
> 
> to be split into three separate test methods for the sake of clarity, e.g.:
> "test_client_enrollment_by_unprivileged_user"
> "test_replica_install_by_unprovileged_user"
> "test_replica_install_after_adding_to_admin_group"

I like that! Implemented.

> 
> 5.)
> """
> +        result = self.replicas[0].run_command(['ipa-server-install',
> +                                               '--uninstall', '-U'],
> +                                              raiseonerr=False)
> +        assert("Uninstallation leads to disconnected topology"
> +               in result.stderr_text)
> +        self.replicas[0].run_command(['ipa-server-install', '--uninstall',
> +                                      '-U',
> '--ignore-topology-disconnect'])
> """
> here you should assert against command stdout, since the error message
> is emitted only by plain print(). Yes it is weird but that's the way it
> is. It will probably be changed when I implement
> https://fedorahosted.org/freeipa/ticket/5588 so we can fix it when the
> ticket is finished.

Yeah, I've noticed that already. Fixed

> 

-- 
Oleg Fayans
Quality Engineer
FreeIPA team
RedHat.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-ofayans-0030.1-Added-5-more-tests-to-Replica-Promotion-testsuite.patch
Type: text/x-patch
Size: 8897 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20160401/85441b31/attachment.bin>


More information about the Freeipa-devel mailing list