Hi Francesco,

I wanted to follow up with you and give everyone else a chance to weigh in on 
the questions I had about the way subcommand unit testing is being done.  It 
just doesn't feel like we are accomplishing much.

In test_initlxc.py there is this code:

create_lxc_step = (
    initlxc.create_lxc, ['lxc_name', 'lxc_arch', 'lxc_os', 'user'])
start_lxc_step = (initlxc.start_lxc, ['lxc_name'])
wait_for_lxc_step = (initlxc.wait_for_lxc, ['lxc_name', 'ssh_key_path'])
initialize_lxc_step = (
    initlxc.initialize_lxc, ['lxc_name', 'ssh_key_path', 'lxc_os'])
setup_lxc_step = (
    initlxc.setup_lxc, ['lxc_name', 'ssh_key_path', 'user', 'home_dir'])
stop_lxc_step = (initlxc.stop_lxc, ['lxc_name', 'ssh_key_path'])

[…]

    expected_steps = (
        test_inithost.initialize_step,
        create_lxc_step,
        start_lxc_step,
        wait_for_lxc_step,
        initialize_lxc_step,
        setup_lxc_step,
        stop_lxc_step,
        )


The code being tested does this:

   create_lxc_step = (create_lxc,
        'lxc_name', 'lxc_arch', 'lxc_os', 'user')
    start_lxc_step = (start_lxc,
        'lxc_name')
    wait_for_lxc_step = (wait_for_lxc,
        'lxc_name', 'ssh_key_path')
    initialize_lxc_step = (initialize_lxc,
        'lxc_name', 'ssh_key_path', 'lxc_os')
    setup_lxc_step = (setup_lxc,
        'lxc_name', 'ssh_key_path', 'user', 'home_dir')
    stop_lxc_step = (stop_lxc,
        'lxc_name', 'ssh_key_path')

    steps = (
        inithost.SubCommand.initialize_step,
        create_lxc_step,
        start_lxc_step,
        wait_for_lxc_step,
        initialize_lxc_step,
        setup_lxc_step,
        stop_lxc_step,
        )

and then in utils.py, the SubCommandTestMixin, basically compares the two.

To me this looks like we're creating a list in the code and then recreating and 
comparing the list in the test.  Sure, that will cause a test failure if the 
list in the code changes but I don't feel there is much else being exercised.

It is possible I'm missing something fundamental but these tests just feel 
wrong to me.

Thoughts?

--Brad


-- 
Mailing list: https://launchpad.net/~yellow
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yellow
More help   : https://help.launchpad.net/ListHelp

Reply via email to