puppet-debugger 0.4.4 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module PuppetDebugger
3
- VERSION = '0.4.4'
3
+ VERSION = '0.5.1'
4
4
  end
@@ -1,5 +1,6 @@
1
1
 
2
2
  require './lib/version'
3
+ require 'date'
3
4
 
4
5
  Gem::Specification.new do |s|
5
6
  s.name = "puppet-debugger"
@@ -17,8 +18,8 @@ Gem::Specification.new do |s|
17
18
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
18
19
  s.require_paths = ["lib"]
19
20
  s.authors = ["Corey Osman"]
20
- s.date = "2016-07-03"
21
- s.description = "A interactive command line tool for evaluating the puppet language"
21
+ s.date = DateTime.now.strftime('%Y-%m-%d')
22
+ s.description = "A interactive command line tool for evaluating and debugging the puppet language"
22
23
  s.email = "corey@nwops.io"
23
24
  s.extra_rdoc_files = [
24
25
  "CHANGELOG.md",
@@ -28,9 +29,9 @@ Gem::Specification.new do |s|
28
29
  s.homepage = "http://github.com/nwops/puppet-debugger"
29
30
  s.licenses = ["MIT"]
30
31
  s.rubygems_version = "2.4.5.1"
31
- s.summary = "A repl for the puppet language"
32
+ s.summary = "A repl based debugger for the puppet language"
32
33
  s.add_runtime_dependency(%q<puppet>, [">= 3.8"])
33
34
  s.add_runtime_dependency(%q<facterdb>, [">= 0.3.8"])
34
35
  s.add_runtime_dependency(%q<awesome_print>, ["~> 1.6"])
35
36
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
36
- end
37
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+ require 'stringio'
4
+ describe 'environment' do
5
+ let(:output) do
6
+ StringIO.new('', 'w')
7
+ end
8
+
9
+ let(:debugger) do
10
+ PuppetDebugger::Cli.new(out_buffer: output)
11
+ end
12
+
13
+ it 'environment returns object with properties' do
14
+ expect(debugger.puppet_environment).to_not eq nil
15
+ expect(debugger.default_site_manifest).to eq(File.join(Puppet[:environmentpath],
16
+ Puppet[:environment], 'manifests', 'site.pp'))
17
+ end
18
+
19
+ it 'full module path' do
20
+ expect(debugger.modules_paths.count).to be >= 2
21
+ end
22
+ end
@@ -6,7 +6,15 @@ require 'puppet/application/debugger'
6
6
 
7
7
  describe Puppet::Application::Debugger do
8
8
  let(:debugger) do
9
- Puppet::Application[:debugger]
9
+ Puppet::Application::Debugger.new(command_line)
10
+ end
11
+
12
+ let(:args) do
13
+ []
14
+ end
15
+
16
+ let(:command_line) do
17
+ Puppet::Util::CommandLine.new('debugger', args)
10
18
  end
11
19
 
12
20
  let(:environment) do
@@ -46,21 +54,68 @@ describe Puppet::Application::Debugger do
46
54
  it 'shows describtion' do
47
55
  expect(debugger.help).to match(/^puppet-debugger\([^\)]+\) -- (.*)$/)
48
56
  end
57
+ describe 'with facterdb' do
58
+ before(:each) do
59
+ end
60
+ it 'run md5 function' do
61
+ allow(debugger).to receive(:options).and_return(code: "md5('sdafsd')", quiet: true, run_once: true, use_facterdb: true)
62
+ expect { debugger.run_command }.to output(/569ebc3d91672e7d3dce25de1684d0c9/).to_stdout
63
+ end
64
+
65
+ it 'assign variable' do
66
+ allow(debugger).to receive(:options).and_return(code: "$var1 = 'blah'", quiet: true, run_once: true, use_facterdb: true)
67
+ expect { debugger.run_command }.to output(/"blah"/).to_stdout
68
+ end
69
+
70
+ describe 'can reset correctly' do
71
+ let(:input) do
72
+ <<-EOF
73
+ $var1 = 'dsfasd'
74
+ $var1
75
+ reset
76
+ $var1 = '111111'
77
+ $var1
78
+ EOF
79
+ end
80
+
81
+
82
+ it 'assign variable' do
83
+ allow(debugger).to receive(:options).and_return(code: input, quiet: true, run_once: true, use_facterdb: true)
84
+ expect { debugger.run_command }.to output(/\"111111\"/).to_stdout
85
+ end
86
+ end
87
+ end
88
+
89
+ describe 'without facterdb' do
90
+ before(:each) do
91
+ end
92
+ it 'run md5 function' do
93
+ allow(debugger).to receive(:options).and_return(code: "md5('sdafsd')", quiet: true, run_once: true, use_facterdb: false)
94
+ expect { debugger.run_command }.to output(/569ebc3d91672e7d3dce25de1684d0c9/).to_stdout
95
+ end
96
+ it 'assign variable' do
97
+ allow(debugger).to receive(:options).and_return(code: "$var1 = 'blah'", quiet: true, run_once: true, use_facterdb: false)
98
+ expect { debugger.run_command }.to output(/"blah"/).to_stdout
99
+ end
100
+
101
+ describe 'can reset correctly' do
102
+ let(:input) do
103
+ <<-EOF
104
+ $var1 = 'dsfasd'
105
+ $var1
106
+ reset
107
+ $var1 = '111111'
108
+ $var1
109
+ EOF
110
+ end
111
+
112
+
113
+ it 'assign variable' do
114
+ allow(debugger).to receive(:options).and_return(code: input, quiet: true, run_once: true, use_facterdb: false)
115
+ expect { debugger.run_command }.to output(/\"111111\"/).to_stdout
116
+ end
117
+ end
118
+ end
119
+
49
120
 
50
- # use --stdin
51
- # use facterdb
52
- # not use facterdb
53
- # use execute
54
- # play
55
- # runonce
56
- # test
57
-
58
- # it 'create a node' do
59
- # require 'pry'; binding.pry
60
- # expect(node).to be_a(Puppet::Node::Environment)
61
- # end
62
- #
63
- # it 'create a scope' do
64
- # expect(scope).to be_a(Puppet::Node::Environment)
65
- # end
66
121
  end
@@ -59,21 +59,21 @@ describe 'PuppetDebugger' do
59
59
  describe 'native definitions' do
60
60
  describe 'create' do
61
61
  let(:input) do
62
- 'define testfoo {}'
62
+ 'define testfoodefine {}'
63
63
  end
64
64
  let(:debugger_output) do
65
65
  "\n => Puppet::Type::Component {\n loglevel\e[0;37m => \e[0m\e[0;36mnotice\e[0m,\n name\e[0;37m => \e[0m\e[0;33m\"some_name\"\e[0m,\n title\e[0;37m => \e[0m\e[0;33m\"Testfoo[some_name]\"\e[0m\n}\n"
66
66
  end
67
67
  it do
68
68
  debugger.handle_input(input)
69
- expect(debugger.scope.environment.known_resource_types.definitions.keys).to include('testfoo')
69
+ expect(debugger.scope.environment.known_resource_types.definitions.keys).to include('testfoodefine')
70
70
  expect(output.string).to eq("\n")
71
71
  end
72
72
  it do
73
73
  debugger.handle_input(input)
74
- debugger.handle_input("testfoo{'some_name':}")
74
+ debugger.handle_input("testfoodefine{'some_name':}")
75
75
  expect(debugger.scope.compiler.resources.collect(&:name)).to include('some_name')
76
- expect(debugger.scope.compiler.resources.collect(&:type)).to include('Testfoo')
76
+ expect(debugger.scope.compiler.resources.collect(&:type)).to include('Testfoodefine')
77
77
  expect(output.string).to include("\n => Puppet::Type::Component")
78
78
  end
79
79
  end
@@ -122,13 +122,13 @@ describe 'PuppetDebugger' do
122
122
  expect(output.string).to eq("\n => String\n")
123
123
  end
124
124
  end
125
- describe 'Array' do
125
+ describe 'Array', type_function: true do
126
126
  let(:input) do
127
- 'type_of([1,2,3,4])'
127
+ 'type([1,2,3,4])'
128
128
  end
129
129
  it 'shows type' do
130
130
  debugger.handle_input(input)
131
- expect(output.string).to eq("\n => Tuple[Integer[1, 1], Integer[2, 2], Integer[3, 3], Integer[4, 4]]\n")
131
+ expect(output.string).to eq("\n => Tuple[Integer[1, 1], Integer[2, 2], Integer[3, 3], Integer[4, 4]]\n") if supports_type_function?
132
132
  end
133
133
  end
134
134
  end
data/spec/spec_helper.rb CHANGED
@@ -53,6 +53,10 @@ def supports_native_functions?
53
53
  Gem::Version.new(Puppet.version) >= Gem::Version.new('4.3')
54
54
  end
55
55
 
56
+ def supports_type_function?
57
+ Gem::Version.new(Puppet.version) >= Gem::Version.new('4.0')
58
+ end
59
+
56
60
  RSpec.configure do |config|
57
61
  config.filter_run_excluding native_functions: !supports_native_functions?
58
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-debugger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Osman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-03 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puppet
@@ -66,7 +66,8 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.12'
69
- description: A interactive command line tool for evaluating the puppet language
69
+ description: A interactive command line tool for evaluating and debugging the puppet
70
+ language
70
71
  email: corey@nwops.io
71
72
  executables:
72
73
  - pdb
@@ -107,6 +108,7 @@ files:
107
108
  - lib/puppet-debugger/support/facts.rb
108
109
  - lib/puppet-debugger/support/functions.rb
109
110
  - lib/puppet-debugger/support/input_responders.rb
111
+ - lib/puppet-debugger/support/loader.rb
110
112
  - lib/puppet-debugger/support/node.rb
111
113
  - lib/puppet-debugger/support/play.rb
112
114
  - lib/puppet-debugger/support/scope.rb
@@ -115,6 +117,7 @@ files:
115
117
  - lib/version.rb
116
118
  - puppet-debugger.gemspec
117
119
  - run_container_test.sh
120
+ - spec/environment_spec.rb
118
121
  - spec/facts_spec.rb
119
122
  - spec/fixtures/environments/production/manifests/site.pp
120
123
  - spec/fixtures/invalid_node_obj.yaml
@@ -149,8 +152,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
152
  version: '0'
150
153
  requirements: []
151
154
  rubyforge_project:
152
- rubygems_version: 2.6.10
155
+ rubygems_version: 2.6.11
153
156
  signing_key:
154
157
  specification_version: 4
155
- summary: A repl for the puppet language
158
+ summary: A repl based debugger for the puppet language
156
159
  test_files: []