ra10ke 0.5.0 → 0.6.0
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 +2 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +16 -0
- data/README.md +59 -1
- data/Rakefile +7 -1
- data/lib/ra10ke/dependencies.rb +71 -0
- data/lib/ra10ke/install.rb +32 -0
- data/lib/ra10ke/monkey_patches.rb +28 -0
- data/lib/ra10ke/puppetfile_parser.rb +83 -0
- data/lib/ra10ke/solve.rb +185 -189
- data/lib/ra10ke/syntax.rb +18 -0
- data/lib/ra10ke/validate.rb +126 -0
- data/lib/ra10ke/version.rb +1 -1
- data/lib/ra10ke.rb +29 -122
- data/ra10ke.gemspec +2 -0
- data/spec/fixtures/Puppetfile +43 -0
- data/spec/fixtures/Puppetfile_test +12 -0
- data/spec/fixtures/Puppetfile_with_bad_refs +10 -0
- data/spec/fixtures/reflist.txt +290 -0
- data/spec/ra10ke/puppetfile_parser_spec.rb +103 -0
- data/spec/ra10ke/validate_spec.rb +81 -0
- data/spec/ra10ke_spec.rb +73 -0
- data/spec/spec_helper.rb +3 -0
- metadata +45 -2
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'ra10ke/validate'
|
5
|
+
RSpec::Mocks.configuration.allow_message_expectations_on_nil = true
|
6
|
+
|
7
|
+
RSpec.describe 'Ra10ke::Validate::Validation' do
|
8
|
+
let(:instance) do
|
9
|
+
Ra10ke::Validate::Validation.new(puppetfile)
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:result) do
|
13
|
+
double
|
14
|
+
end
|
15
|
+
|
16
|
+
before(:each) do
|
17
|
+
allow(result).to receive(:success?).and_return(true)
|
18
|
+
# allow(instance).to receive(:`).with(anything).and_return(result)
|
19
|
+
allow($CHILD_STATUS).to receive(:success?).and_return(true)
|
20
|
+
allow(instance).to receive(:`).with(anything)
|
21
|
+
.and_return(File.read(File.join(fixtures_dir, 'reflist.txt')))
|
22
|
+
end
|
23
|
+
|
24
|
+
let(:puppetfile) do
|
25
|
+
File.join(fixtures_dir, 'Puppetfile')
|
26
|
+
end
|
27
|
+
|
28
|
+
it '#new' do
|
29
|
+
expect(instance).to be_a Ra10ke::Validate::Validation
|
30
|
+
end
|
31
|
+
|
32
|
+
it '#valid_ref?' do
|
33
|
+
expect(instance.valid_ref?('https://www.example.com', 'master')).to be true
|
34
|
+
end
|
35
|
+
|
36
|
+
it '#valid_commit?' do
|
37
|
+
expect(instance.valid_commit?('https://www.example.com', 'master')).to be true
|
38
|
+
end
|
39
|
+
|
40
|
+
it '#bad_mods?' do
|
41
|
+
allow(instance).to receive(:`).with(anything)
|
42
|
+
.and_return(File.read(File.join(fixtures_dir, 'reflist.txt')))
|
43
|
+
# because we can't test every single module we return the same result set
|
44
|
+
# which only passes for a single module, while others fail.
|
45
|
+
expect(instance.bad_mods?).to be true
|
46
|
+
end
|
47
|
+
|
48
|
+
it '#all_modules is an array' do
|
49
|
+
expect(instance.all_modules).to be_a Array
|
50
|
+
end
|
51
|
+
|
52
|
+
it '#sorted_mods is an array' do
|
53
|
+
expect(instance.sorted_mods).to be_a Array
|
54
|
+
end
|
55
|
+
|
56
|
+
it '#data is a hash' do
|
57
|
+
expect(instance.all_modules.first).to be_a Hash
|
58
|
+
end
|
59
|
+
|
60
|
+
it '#data is a hash with keys' do
|
61
|
+
keys = instance.all_modules.first.keys
|
62
|
+
expect(keys).to eq(%i[name url ref valid_ref? status])
|
63
|
+
end
|
64
|
+
|
65
|
+
it '#data is a hash with values' do
|
66
|
+
keys = instance.all_modules.first.values
|
67
|
+
|
68
|
+
expect(keys).to eq(['gitlab', 'https://github.com/vshn/puppet-gitlab',
|
69
|
+
'00397b86dfb3487d9df768cbd3698d362132b5bf', true, '👍'])
|
70
|
+
end
|
71
|
+
|
72
|
+
it '#all_refs' do
|
73
|
+
refs = instance.all_refs('https://www.example.com')
|
74
|
+
expect(refs).to be_a Hash
|
75
|
+
expect(refs.first).to eq(
|
76
|
+
["0ec707e431367bbe2752966be8ab915b6f0da754",
|
77
|
+
{:name=>"74110ac", :ref=>"refs/heads/74110ac", :subtype=>nil, :type=>:branch}]
|
78
|
+
)
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
data/spec/ra10ke_spec.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ra10ke'
|
4
|
+
require 'spec_helper'
|
5
|
+
|
6
|
+
RSpec.describe 'Ra10ke::RakeTask' do
|
7
|
+
let(:instance) do
|
8
|
+
Ra10ke::RakeTask.new do |t|
|
9
|
+
t.puppetfile_path = puppetfile
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:puppetfile) do
|
14
|
+
File.join(fixtures_dir, 'Puppetfile')
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:args) do
|
18
|
+
[]
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'validate tasks' do
|
22
|
+
it '#new' do
|
23
|
+
expect(instance).to be_a Ra10ke::RakeTask
|
24
|
+
end
|
25
|
+
|
26
|
+
it '#define_task_validate' do
|
27
|
+
expect(instance.define_task_validate(args)).to be_a Rake::Task
|
28
|
+
end
|
29
|
+
|
30
|
+
it '#define_task_solve_dependencies' do
|
31
|
+
expect(instance.define_task_solve_dependencies(args)).to be_a Rake::Task
|
32
|
+
end
|
33
|
+
|
34
|
+
it '#define_task_syntax' do
|
35
|
+
expect(instance.define_task_syntax(args)).to be_a Rake::Task
|
36
|
+
end
|
37
|
+
|
38
|
+
it '#define_task_dependencies' do
|
39
|
+
expect(instance.define_task_dependencies(args)).to be_a Rake::Task
|
40
|
+
end
|
41
|
+
|
42
|
+
it '#define_task_install' do
|
43
|
+
expect(instance.define_task_install(args)).to be_a Rake::Task
|
44
|
+
end
|
45
|
+
|
46
|
+
it '#get_puppetfile' do
|
47
|
+
expect(instance.get_puppetfile).to be_a R10K::Puppetfile
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'run tasks with good refs' do
|
52
|
+
it '#run_validate_task' do
|
53
|
+
task = instance.define_task_validate(args)
|
54
|
+
expect(task.invoke).to be_a Array
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe 'run tasks with bad refs' do
|
59
|
+
let(:puppetfile) do
|
60
|
+
File.join(fixtures_dir, 'Puppetfile_with_bad_refs')
|
61
|
+
end
|
62
|
+
|
63
|
+
# I suspect rake is caching something here and the puppetfile is
|
64
|
+
# not being sent correctly as it is not using the file I specify.
|
65
|
+
# The output should be different.
|
66
|
+
# Testing this by itself works
|
67
|
+
it '#run_validate_task' do
|
68
|
+
t = Ra10ke::RakeTask.new
|
69
|
+
task2 = t.define_task_validate(args)
|
70
|
+
expect(task2.invoke).to be nil
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ra10ke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Theo Chatzimichos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '2.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: table_print
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.5.6
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.5.6
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '3.6'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '3.6'
|
97
125
|
description: R10K and Puppetfile rake tasks
|
98
126
|
email:
|
99
127
|
- tampakrap@gmail.com
|
@@ -102,6 +130,7 @@ extensions: []
|
|
102
130
|
extra_rdoc_files: []
|
103
131
|
files:
|
104
132
|
- ".gitignore"
|
133
|
+
- ".ruby-version"
|
105
134
|
- ".travis.yml"
|
106
135
|
- CHANGELOG.md
|
107
136
|
- Gemfile
|
@@ -109,9 +138,23 @@ files:
|
|
109
138
|
- README.md
|
110
139
|
- Rakefile
|
111
140
|
- lib/ra10ke.rb
|
141
|
+
- lib/ra10ke/dependencies.rb
|
142
|
+
- lib/ra10ke/install.rb
|
143
|
+
- lib/ra10ke/monkey_patches.rb
|
144
|
+
- lib/ra10ke/puppetfile_parser.rb
|
112
145
|
- lib/ra10ke/solve.rb
|
146
|
+
- lib/ra10ke/syntax.rb
|
147
|
+
- lib/ra10ke/validate.rb
|
113
148
|
- lib/ra10ke/version.rb
|
114
149
|
- ra10ke.gemspec
|
150
|
+
- spec/fixtures/Puppetfile
|
151
|
+
- spec/fixtures/Puppetfile_test
|
152
|
+
- spec/fixtures/Puppetfile_with_bad_refs
|
153
|
+
- spec/fixtures/reflist.txt
|
154
|
+
- spec/ra10ke/puppetfile_parser_spec.rb
|
155
|
+
- spec/ra10ke/validate_spec.rb
|
156
|
+
- spec/ra10ke_spec.rb
|
157
|
+
- spec/spec_helper.rb
|
115
158
|
homepage: https://github.com/voxpupuli/ra10ke
|
116
159
|
licenses:
|
117
160
|
- MIT
|