puppetry_toolbox 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +13 -6
- data/lib/puppetry/cli.rb +20 -1
- data/lib/puppetry/version.rb +1 -1
- data/test/end_to_end/puppetry_test.rb +21 -26
- data/test/lib/puppetry/test.rb +1 -0
- data/test/lib/puppetry/test/custom_assertions.rb +20 -0
- data/test/test_helper.rb +3 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d6648354d4386e03c4d382bac0e88e612e3e3c7
|
4
|
+
data.tar.gz: de74d6251ae3c93d93404649808a6bb7ad9b6d60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 809c7654c522771faa47721c6db158027e7621194877afef2e8549111be6140df70e3188318838f2fade27cd79f9045ee72f2d001689c2b3c662de7795af38c7
|
7
|
+
data.tar.gz: 3a507a31ed1bc4f12b48a71ddf540dd9748abee3e8b83526f098bca09f45554ac75bad6435db2e23b598e52f1c29397310d2a0c3d7a922330a3e46597b63e560
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -7,14 +7,14 @@
|
|
7
7
|
[](https://coveralls.io/r/stefanozanella/puppetry?branch=master)
|
8
8
|
## Installation
|
9
9
|
Puppetry is currently shipped as a gem, so you just need to install it with:
|
10
|
-
|
10
|
+
```
|
11
11
|
$ gem install puppetry_toolbox
|
12
|
-
|
12
|
+
```
|
13
13
|
or, if you're using Bundler, set the following dependency line in your
|
14
14
|
`Gemfile`:
|
15
|
-
|
15
|
+
```
|
16
16
|
gem 'puppetry_toolbox'
|
17
|
-
|
17
|
+
```
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
Puppetry can help you with the development of a Puppet module in many ways.
|
@@ -29,9 +29,16 @@ Since this is almost all repeatable stuff, Puppetry ships with a command to
|
|
29
29
|
generate the scaffolding for a new module.
|
30
30
|
|
31
31
|
Let's pretend you want to start working on the `my_nice_module` module; then you just need to:
|
32
|
-
|
32
|
+
```
|
33
33
|
puppetry new my_nice_module
|
34
|
-
|
34
|
+
```
|
35
35
|
This will generate a `my_nice_module` subdirectory in the current working
|
36
36
|
directory. This directory will contain everything you need to start developing
|
37
37
|
your new module.
|
38
|
+
|
39
|
+
### Adding a new test
|
40
|
+
```
|
41
|
+
$ puppetry test new_class
|
42
|
+
$ puppetry test -c new_class
|
43
|
+
$ puppetry test --class new_class
|
44
|
+
```
|
data/lib/puppetry/cli.rb
CHANGED
@@ -2,12 +2,13 @@ require 'thor'
|
|
2
2
|
require 'grit'
|
3
3
|
require 'fileutils'
|
4
4
|
require 'puppetry/version'
|
5
|
+
require 'bundler'
|
5
6
|
|
6
7
|
module Puppetry
|
7
8
|
class CLI < Thor
|
8
9
|
desc "version", "Print application's version"
|
9
10
|
def version
|
10
|
-
puts "Puppetry v#{Puppetry::Version}"
|
11
|
+
output.puts "Puppetry v#{Puppetry::Version}"
|
11
12
|
end
|
12
13
|
|
13
14
|
desc "new NAME", "Create a new module called NAME"
|
@@ -22,5 +23,23 @@ module Puppetry
|
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
26
|
+
|
27
|
+
no_commands do
|
28
|
+
##
|
29
|
+
# Overrides the default output stream (`$stdout`) used by the
|
30
|
+
# application. Useful for testing.
|
31
|
+
#
|
32
|
+
# param output [IO] An IO object that will receive the CLI standard
|
33
|
+
# output
|
34
|
+
def output=(output)
|
35
|
+
@output = output
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def output
|
41
|
+
@output || $stdout
|
42
|
+
end
|
43
|
+
end
|
25
44
|
end
|
26
45
|
end
|
data/lib/puppetry/version.rb
CHANGED
@@ -4,47 +4,42 @@ require 'tmpdir'
|
|
4
4
|
require 'fileutils'
|
5
5
|
|
6
6
|
describe "puppetry" do
|
7
|
+
let(:module_dir) { "test_module" }
|
8
|
+
let(:out) { StringIO.new }
|
9
|
+
let(:working_dir) { Dir.mktmpdir }
|
10
|
+
let(:cli) { Puppetry::CLI.new }
|
11
|
+
|
7
12
|
before do
|
8
|
-
|
9
|
-
$stdout = StringIO.new
|
13
|
+
cli.output = out
|
10
14
|
end
|
11
15
|
|
12
16
|
after do
|
13
|
-
|
17
|
+
FileUtils.remove_entry_secure working_dir
|
14
18
|
end
|
15
19
|
|
16
20
|
describe "version" do
|
17
21
|
it "shows the application's version" do
|
18
|
-
|
19
|
-
|
22
|
+
cli.version
|
23
|
+
out.string.must_match(/#{Puppetry::VERSION}/)
|
20
24
|
end
|
21
25
|
end
|
22
26
|
|
23
27
|
describe "new" do
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
# test_module should exist and not be empty
|
30
|
-
assert Dir.exists?("test_module"), "Module folder test_module wasn't created"
|
31
|
-
Dir.entries("test_module").wont_be_empty
|
32
|
-
# test_module should contain at least the manifests folder
|
33
|
-
Dir.entries("test_module").must_include "manifests"
|
34
|
-
# test_module should not be a git repo (for the moment)
|
35
|
-
Dir.entries("test_module").wont_include ".git"
|
36
|
-
end
|
37
|
-
end
|
28
|
+
before do
|
29
|
+
@old_pwd = FileUtils.pwd
|
30
|
+
FileUtils.cd(working_dir)
|
31
|
+
|
32
|
+
cli.new module_dir
|
38
33
|
end
|
39
34
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
Puppetry::CLI.start(["new", "test_module_setup"])
|
35
|
+
after do
|
36
|
+
FileUtils.cd @old_pwd
|
37
|
+
end
|
44
38
|
|
45
|
-
|
46
|
-
|
47
|
-
|
39
|
+
it "creates a new module starting from a scaffolded one" do
|
40
|
+
module_dir.must_contain_a_puppet_module
|
41
|
+
module_dir.wont_be_a_git_repository
|
42
|
+
assert_bundler_is_initialized_in module_dir
|
48
43
|
end
|
49
44
|
end
|
50
45
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'puppetry/test/custom_assertions'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module MiniTest::Assertions
|
2
|
+
def assert_contains_a_puppet_module(dir)
|
3
|
+
assert Dir.exists?(dir), "Module folder #{dir} wasn't created"
|
4
|
+
Dir.entries(dir).wont_be_empty
|
5
|
+
Dir.entries(dir).must_include "manifests"
|
6
|
+
end
|
7
|
+
|
8
|
+
def refute_git_repository(dir)
|
9
|
+
Dir.entries(dir).wont_include ".git"
|
10
|
+
end
|
11
|
+
|
12
|
+
def assert_bundler_is_initialized_in(dir)
|
13
|
+
assert Dir.entries(dir).include?(".bundle"), "Bundler hasn't been initialized in folder #{dir}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
module MiniTest::Expectations
|
18
|
+
infect_an_assertion :assert_contains_a_puppet_module, :must_contain_a_puppet_module, :only_one_argument
|
19
|
+
infect_an_assertion :refute_git_repository, :wont_be_a_git_repository, :only_one_argument
|
20
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppetry_toolbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Zanella
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -104,6 +104,8 @@ files:
|
|
104
104
|
- lib/puppetry/version.rb
|
105
105
|
- puppetry.gemspec
|
106
106
|
- test/end_to_end/puppetry_test.rb
|
107
|
+
- test/lib/puppetry/test.rb
|
108
|
+
- test/lib/puppetry/test/custom_assertions.rb
|
107
109
|
- test/test_helper.rb
|
108
110
|
homepage: https://github.com/stefanozanella/puppetry
|
109
111
|
licenses: []
|
@@ -131,4 +133,6 @@ specification_version: 4
|
|
131
133
|
summary: Puppetry is a CLI tool to aid Puppet modules development.
|
132
134
|
test_files:
|
133
135
|
- test/end_to_end/puppetry_test.rb
|
136
|
+
- test/lib/puppetry/test.rb
|
137
|
+
- test/lib/puppetry/test/custom_assertions.rb
|
134
138
|
- test/test_helper.rb
|