408 Commits

Author SHA1 Message Date
Thibault Jouan
653a630645 Improve Env#target spec 2013-12-19 23:25:34 +00:00
Thibault Jouan
1ed17e6064 Fix Condition#! specs 2013-12-19 23:17:03 +00:00
Thibault Jouan
5fd4f3b371 Move Task::DSL#condition specs to better location 2013-12-19 22:49:20 +00:00
Thibault Jouan
921fc8d3f9 Refactor Remote::Environment spec 2013-12-19 22:49:20 +00:00
Thibault Jouan
ef0307fbb5 Improve small details in specs:
* Fix coding standards;
* Simplify some expectations (eq instead of be matcher);
* Expect identity on block instead of calling;
* Change some before call as oneliners;
* Avoid shadowing variable names;
* Improve wording where needed.
2013-12-19 22:46:56 +00:00
Thibault Jouan
f5224c7569 Improve wording in Env#initialize specs 2013-12-19 21:00:11 +00:00
Thibault Jouan
a80843699e Improve Condition.evaluate specs 2013-12-19 20:57:05 +00:00
Thibault Jouan
fe1eb5bc1a Simplify actions specs 2013-12-19 20:37:49 +00:00
Thibault Jouan
35621e1f5f Implement condition DSL negated test prefix (no_*)
* Allow no_* to be used for every tests in condition DSL:
  condition { no_has_env :shell, '/bin/sh' };
* Modify Test constructor to accept negated: named argument, implement
  #negated? and #pass?;
* Rename #success? to #verify in all test classes.
2013-12-19 20:22:44 +00:00
Thibault Jouan
cfe9a009ae Revert "Remove deprecated rspec option"
This reverts commit 5e6f5f4861c50c4450095f271943674885476d5f.
2013-12-19 20:21:24 +00:00
Thibault Jouan
b9e48a9cc4 Fix some wording issues in Test specs 2013-12-19 19:52:07 +00:00
Thibault Jouan
5e6f5f4861 Remove deprecated rspec option 2013-12-19 19:47:29 +00:00
Thibault Jouan
a692efe96d Replace be_true' matchers with be true' in specs 2013-12-19 19:46:32 +00:00
Thibault Jouan
3b3542fc66 Fix an example in Task::DSL.evaluate specs 2013-12-19 19:45:37 +00:00
Thibault Jouan
217b8a203a Add missing empty line in test spec 2013-10-01 19:38:17 +00:00
Thibault Jouan
a36b30dd3c Bump version to 0.1.4 2013-10-01 19:38:09 +00:00
Thibault Jouan
85a47df547 Use SSH user name configured for a given target:
When a user is configured for the targeted host name, use it for SSH
authentification instead of the name of current user logged in.

* Modify Remote#user_name to use configured user name.
2013-09-28 20:07:36 +00:00
Thibault Jouan
768a6755de Implement Remote#config:
Load SSH configuration for targeted host name.
2013-09-26 19:22:07 +00:00
Thibault Jouan
9985fceb63 Extract logic for current target ssh user name:
Add Remote#user_name method, with code returning which user name
will be used for SSH authentication.
2013-09-26 18:34:19 +00:00
Thibault Jouan
868c502531 Remove multibyte char from Remote::FS spec 2013-09-26 01:00:06 +00:00
Thibault Jouan
c281687bfb Bump version to 0.1.3 2013-09-26 00:30:41 +00:00
Thibault Jouan
2cbe1726f7 Implement `has_file' condition keyword 2013-09-26 00:28:40 +00:00
Thibault Jouan
3492382968 Implement Remote::FS#has_file? 2013-09-26 00:28:40 +00:00
Thibault Jouan
91f2bc3567 Implement Remote#fs 2013-09-26 00:28:40 +00:00
Thibault Jouan
99710b0df9 Implement Remote::FS#sftp 2013-09-26 00:28:40 +00:00
Thibault Jouan
d240df0281 Add Remote::FS class 2013-09-26 00:28:40 +00:00
Thibault Jouan
8531c49e6d Implement NetSSHStoryHelpers#sftp_story 2013-09-26 00:28:39 +00:00
Thibault Jouan
0529fab3c2 Import Net::SSH::Test::Channel code from net-sftp:
This class is included in net-ssh, but net-sftp adds some new methods
that we need for our tests. This code resides in net-sftp test helper,
and can't be required dynamicaly, this change adds a copy of the code we
need, hardcoded in NetSSHStoryHelpers.
2013-09-26 00:28:39 +00:00
Thibault Jouan
b2dbd60830 Add net-sftp gem dependency 2013-09-26 00:28:39 +00:00
Thibault Jouan
c01e143c86 Enable sftp subsystem in cucumber sshd config 2013-09-26 00:28:39 +00:00
Thibault Jouan
e51adbdefa Bump version to 0.1.2 2013-09-26 00:20:39 +00:00
Thibault Jouan
9040420360 Improve net-ssh mock connection usage in specs 2013-09-24 21:08:01 +00:00
Thibault Jouan
e676eb40d6 Transform Tests class in a module 2013-09-23 21:44:50 +00:00
Thibault Jouan
0307d6020a Remove uneeded once() calls from spec 2013-09-22 22:38:13 +00:00
Thibault Jouan
36cf2e041f Improve wording in sh cucumber feature 2013-09-07 21:40:59 +00:00
Thibault Jouan
85109afd46 Fix missing Then keywords in cucumber features 2013-09-07 21:40:25 +00:00
Thibault Jouan
33a2b9de5a Refactor producer invocation in cucumber features:
Use "When I successfully execute" instead of "When I execute", and
assert that exit status code was successful in this new step.
2013-09-06 20:10:28 +00:00
Thibault Jouan
0a9f7e38af Simplify Task::DSL.evaluate spec 2013-08-22 10:45:12 +00:00
Thibault Jouan
782c8f8498 Fix coding standards in specs (parenthesis usage) 2013-08-22 00:23:07 +00:00
Thibault Jouan
a555df40c6 Refactor interpreter spec 2013-08-22 00:22:16 +00:00
Thibault Jouan
856e78245f Remove extra empty line in echo action spec 2013-08-22 00:21:43 +00:00
Thibault Jouan
7a1c01a299 Remove empty cucumber support file 2013-08-22 00:11:09 +00:00
Thibault Jouan
8247f3a973 Bump version to 0.1.1 2013-08-20 03:53:38 +00:00
Thibault Jouan
f42fd856ff Fix missing gem description 2013-08-20 03:53:22 +00:00
Thibault Jouan
5d3173977f Bump version to 0.1.0 2013-08-20 03:16:45 +00:00
Thibault Jouan
04afc82a29 Implement `has_env' condition keyword 2013-08-20 03:03:17 +00:00
Thibault Jouan
b0ea7d876e Implement Remote#environment:
Build and return a Remote::Environment instance, with the output of
`env` command execution.
2013-08-20 03:03:07 +00:00
Thibault Jouan
513ba4eedb Implement basic Remote::Environment class:
Represent a registry for remote environment variables, will follow an
API similar to Hash except the constructor. Currently only #has_key? is
implemented.
2013-08-20 02:13:54 +00:00
Thibault Jouan
ed99c191e0 Build conditions with DSL evaluated tests:
In Condition:

  * Modify constructor to accepts tests and a default return value;
  * Implement #met?;
  * Modify #! so that it return the negated value returned by #met?.

  In Condition::DSL:

  * Modify .evaluate to build the condition with tests and the value
    returned by a the evaluated condition block.

  Add a basic Test base class, with env and arguments as attributes.

  Add some spec helpers to build some easily testable kind of Test
instances (as test doubles).
2013-08-18 00:29:36 +00:00
Thibault Jouan
00a11e159f Use instance_eval in Condition::DSL#evaluate:
Use instance_eval so that the assigned block is evaluated inside the
DSL sandbox instance, giving access to all required methods and instance
variables.
2013-08-18 00:29:36 +00:00