Hi Gabe,

sorry for the delay. Here comes the review!

1.) All the tests fail, since the IPA master is not installed at all:

    def test_advice(self):
        # Obtain the advice from the server
      tasks.kinit_admin(self.master)

test_integration/test_advise.py:37:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_integration/tasks.py:484: in kinit_admin
    stdin_text=host.config.admin_password)
../pytest_multihost/host.py:222: in run_command
    command.wait(raiseonerr=raiseonerr)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <pytest_multihost.transport.SSHCommand object at 0x7f09c0530c90>
raiseonerr = True

    def wait(self, raiseonerr=True):
        """Wait for the remote process to exit
Raises an excption if the exit code is not 0, unless raiseonerr is
            true.
            """
        if self._done:
            return self.returncode
self._end_process() self._done = True if raiseonerr and self.returncode:
            self.log.error('Exit code: %s', self.returncode)
          raise subprocess.CalledProcessError(self.returncode, self.argv)
E           CalledProcessError: Command '['kinit', 'admin']' returned non-zero 
exit status 1


Similiarly for other tests. This is caused by the fact that you did not set topology in the BaseTestAdvise class, like this:

--- a/ipatests/test_integration/test_advise.py
+++ b/ipatests/test_integration/test_advise.py
@@ -31,6 +31,7 @@ class BaseTestAdvise(IntegrationTest, object):
     advice_id = None
     raiseerr = None
     advice_regex = ''
+    topology = 'line'

2.) BaseTestAdvise inherits from IntegrationTest and from object. Explicitly specifying object as superclass is not needed, IntegrationTest already inherits from it.

3.) I think there is no good incentive to separate the test cases into mutliple classes. Each test class adds overhead of installing and uninstalling IPA server, to guarantee a clean and sane environment. However, it seems to be an overkill for testing ipa-advise command, which should be read-only anyway. By squashing the tests into one test class, we will decrease the run time of this test more than 8-fold.

4.) The patch adds a whitespace error.

The test cases themselves are looking fine, and when I fixed the missing topology, they all passed. So this is a question of fixing the above issues, and we should be ready to push.

Tomas

On 02/17/2015 03:29 PM, Gabe Alford wrote:
Hello,

        I was wondering if I could get a review of this patch.

Thanks,

Gabe

On Thursday, January 29, 2015, Gabe Alford <redhatri...@gmail.com <mailto:redhatri...@gmail.com>> wrote:

    Hello,

           Here is a patch for
    https://fedorahosted.org/freeipa/ticket/4029 I added test cases
    for valid and invalid advice.

    Thanks,

    Gabe

    On Wed, Jan 14, 2015 at 10:23 AM, Tomas Babej <tba...@redhat.com
    <javascript:_e(%7B%7D,'cvml','tba...@redhat.com');>> wrote:


        On 01/14/2015 06:13 PM, Gabe Alford wrote:
        On Wed, Jan 14, 2015 at 10:05 AM, Tomas Babej
        <tba...@redhat.com
        <javascript:_e(%7B%7D,'cvml','tba...@redhat.com');>> wrote:


            On 01/14/2015 06:00 PM, Tomas Babej wrote:

            On 01/14/2015 05:37 PM, Tomas Babej wrote:

            On 01/14/2015 02:55 PM, Gabe Alford wrote:
            Hello,

                   In looking into
            https://fedorahosted.org/freeipa/ticket/4029 I am
            wondering if there should be separate ipa-advise test,
            Yes/No? Could be handy in the future to test more
            ipa-advise output? Or should this test be added to the
            test_legacy_clients.py?

            Thanks,

            Gabe

            On Tue, Dec 2, 2014 at 9:21 PM, Gabe Alford
            <redhatri...@gmail.com
            <javascript:_e(%7B%7D,'cvml','redhatri...@gmail.com');>>
            wrote:

                Hello,

                I was going to try my hand at attempting a patch
                for ipa-tests. However in wanting to test my
                patch, I am not sure how to run ipa-tests to check
                if it works or not. Documentation is not really
                clear on what needs to be done to start a test and
                run a test. This is for
                https://fedorahosted.org/freeipa/ticket/4029

                I have attached the patch that I have yet to
                really test with ipa-test. Any help on how to test
                the patch running ipa-tests would be great. Of
                course, if one of the reviewers looks at the patch
                and looks good, then I would be happy with that as
                well.

                Thanks,

                Gabe




            _______________________________________________
            Freeipa-devel mailing list
            Freeipa-devel@redhat.com  
<javascript:_e(%7B%7D,'cvml','Freeipa-devel@redhat.com');>
            https://www.redhat.com/mailman/listinfo/freeipa-devel

            Hello,

            TL;DR: feel free to create a separate ipa-advise test
            file. Test requested in this ticket really does not
            belong to the legacy clients feature test.

            As for the any new tests that might come: I think tests
            for ipa-advise that are specific to that particular
            feature should be tested with that feature, more so, if
            they contain parts that are supposed to work
            copy-pasted. If a tests, however, tests a general
            behaviour of ipa-advise, it should live in the
            ipa-advise namespace, hence separate test file.

            HTH,

-- Tomas Babej
            Associate Software Engineer | Red Hat | Identity Management
RHCE | Brno Site | IRC: tbabej |freeipa.org <http://freeipa.org>

            The attached patch looks fine, although, please also
            test for a non-zero return code number.


            Upon hitting send I noticed you did not include
            raiseonerr=False into the run_command call. You need to
            do that, otherwise a exception will be raised, since
            ipa-advise exited with non-zero return code.

        Thanks Tomas.

        Which do you prefer: a test_advise.py or an update to the
        existing patch?

        A new test file, as I pointed out in the second email :) sorry
        for splitting.

        However, it would be the best if you could spin up a positive
        test as well (maybe listing out available advices), not just
        this negative one, to justify the overhead reinstalling IPA
        for testing this feature.



-- Tomas Babej
            Associate Software Engineer | Red Hat | Identity Management
RHCE | Brno Site | IRC: tbabej |freeipa.org <http://freeipa.org>

-- Tomas Babej
            Associate Software Engineer | Red Hat | Identity Management
RHCE | Brno Site | IRC: tbabej |freeipa.org <http://freeipa.org>


-- Tomas Babej
        Associate Software Engineer | Red Hat | Identity Management
RHCE | Brno Site | IRC: tbabej |freeipa.org <http://freeipa.org>


_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to