Need help to figure out why this expectation isn't met


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

On 25 Oct 2010, at 09:54, Haim Ashkenazi wrote:

Thanks in advance
Thanks

Haim

(Moved your reply inline.)

The rescuing that you do in line 56 of CLI#run was obscuring the real
error here:

  1. The CLI interface when run with subcommand shell should correctly
    initialize SshBackend
    Failure/Error: cli.run
    host definition (cust2 => dc => somehost) doesn’t exist!

    ./lib/runsshlib/config_file.rb:101:in `get_host’

    ./lib/runsshlib/cli.rb:228:in `run_shell’

    ./lib/runsshlib/cli.rb:54:in `call’

    ./lib/runsshlib/cli.rb:54:in `run’

    ./spec/runsshlib/cli_spec.rb:133

I found this by commenting out the lines where you rescue the exception
and raise a Trollop error instead.

So the example wasn’t even reaching the line in CLI#run_shell where you
create the SshBackend, because it was failing on the get_host call
(since the example uses dummy data).

I got the example to pass by also mocking/stubbing the ConfigFile stored
in @c, and stubbing its get_host method:

If you want to mock everything outside of the CLI object in this spec,
that’s one (not hugely elegant) way to do it.

When you have problems like this, it’s helpful to dig down and find the
exact place the error is occurring.

Chris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Chris,

On Oct 26, 2010, at 11:15 AM, Chris M. wrote:

The repository is here: GitHub - babysnakes/runssh: CLI utility to bookmark multiple ssh connections with hierarchy. My first ruby script :)

Chris
Wow, that was a stupid mistake. Thanks for the time, the good eye and
the advice :slight_smile:

I actually don’t need to stub everything, I just had to fix the path to
match the fixtures.

Thanks

Haim
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAkzG2PsACgkQhwMtGgRKzT1NsACeJ5MTWvcBCxqbPaHqGfy/QLuJ
+G4AoJD2hLjZ/eguqJFCOTs96dIQEa9W
=2UGK
-----END PGP SIGNATURE-----