revamp 1.0.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.
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+ require 'revamp/model/puppet-module'
3
+ require 'revamp/filter/puppetver2rpmreq'
4
+
5
+ describe Revamp::Filter::PuppetVerToRpmReq do
6
+ subject { described_class.new.filter(puppetver) }
7
+ let(:reqname) { 'puppetlabs/stdlib' }
8
+ let(:inputhash) do
9
+ {
10
+ 'name' => reqname,
11
+ 'version_requirement' => version_requirement
12
+ }
13
+ end
14
+ let(:puppetver) { Revamp::Model::PuppetDependency.new(inputhash) }
15
+ let (:version_requirement) { self.class.description }
16
+
17
+ describe '.filter()' do
18
+ subject { described_class.new.filter(puppetver) }
19
+
20
+ context 'for standard greater or equals cases, for ex.:' do
21
+ describe '>=3.0.0 <4.0.0' do
22
+ it do
23
+ expect(subject).to eq([
24
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0.0',
25
+ 'puppetmodule(puppetlabs-stdlib) < 4.0.0'
26
+ ])
27
+ end
28
+ end
29
+ describe '>= 3.0.0 < 4.0.0' do
30
+ it do
31
+ expect(subject).to eq([
32
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0.0',
33
+ 'puppetmodule(puppetlabs-stdlib) < 4.0.0'
34
+ ])
35
+ end
36
+ end
37
+ describe '>=3.0.0' do
38
+ it do
39
+ expect(subject).to eq([
40
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0.0'
41
+ ])
42
+ end
43
+ end
44
+ describe '>3.0' do
45
+ it do
46
+ expect(subject).to eq([
47
+ 'puppetmodule(puppetlabs-stdlib) > 3.0'
48
+ ])
49
+ end
50
+ end
51
+ describe '>3' do
52
+ it do
53
+ expect(subject).to eq([
54
+ 'puppetmodule(puppetlabs-stdlib) > 3'
55
+ ])
56
+ end
57
+ end
58
+ end
59
+ context 'for twiddle-wakka cases, for ex.:' do
60
+ describe '~>3.0.0' do
61
+ it do
62
+ expect(subject).to eq([
63
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0.0',
64
+ 'puppetmodule(puppetlabs-stdlib) < 3.1.0'
65
+ ])
66
+ end
67
+ end
68
+ describe '~>3.0' do
69
+ it do
70
+ expect(subject).to eq([
71
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0',
72
+ 'puppetmodule(puppetlabs-stdlib) < 4.0'
73
+ ])
74
+ end
75
+ end
76
+ end
77
+ context 'for semantic versioning cases, for ex.:' do
78
+ describe '3.x' do
79
+ it do
80
+ expect(subject).to eq([
81
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0',
82
+ 'puppetmodule(puppetlabs-stdlib) < 4.0'
83
+ ])
84
+ end
85
+ end
86
+ describe '3.0.x' do
87
+ it do
88
+ expect(subject).to eq([
89
+ 'puppetmodule(puppetlabs-stdlib) >= 3.0.0',
90
+ 'puppetmodule(puppetlabs-stdlib) < 3.1.0'
91
+ ])
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+ require 'file_matchers'
3
+ require 'rspec/its'
4
+ require 'revamp/parser/puppet-tarball'
5
+
6
+ describe Revamp::Parser::PuppetTarball do
7
+ let(:sample_file) { 'spec/fixtures/coi-sample-0.1.1.tar.gz' }
8
+ context 'for a sample puppet tarball file' do
9
+ it { expect(sample_file).to be_readable_file }
10
+ let(:parser) { described_class.new(sample_file) }
11
+
12
+ describe '.new' do
13
+ it { expect(parser).not_to be_nil }
14
+ end
15
+
16
+ describe '.parse' do
17
+ let(:model) { parser.parse }
18
+ it { expect(model).not_to be_nil }
19
+
20
+ context 'files' do
21
+ subject { model.files }
22
+ context 'size' do
23
+ let (:size) { subject.size }
24
+ it { expect(size).to eq(3) }
25
+ end
26
+ it { expect(subject.keys).to include 'checksums.json' }
27
+ it { expect(subject.keys).to include 'metadata.json' }
28
+ it { expect(subject.keys).to include 'manifests/init.pp' }
29
+ end
30
+
31
+ context 'model' do
32
+ subject { model }
33
+ it { is_expected.not_to be_nil }
34
+ its(:metadata) { is_expected.to be_a(Hash) }
35
+ its(:name) { is_expected.to eq('coi/sample') }
36
+ its(:summary) { is_expected.to eq 'An example Puppet module' }
37
+ its(:version) { is_expected.to eq '0.1.1' }
38
+ its(:license) { is_expected.to eq 'Apache-2.0' }
39
+ its(:author) { is_expected.to eq 'Krzysztof Suszynski' }
40
+ context 'dependencies' do
41
+ subject { model.dependencies }
42
+ its(:size) { is_expected.to eq(1) }
43
+ context 'pop' do
44
+ subject { model.dependencies.pop }
45
+ its(:name) { is_expected.to eq('puppetlabs/stdlib') }
46
+ its(:version) { is_expected.to eq(Gem::Requirement.new(["< 5.0.0", ">= 3.2.0"])) }
47
+ end
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ require 'revamp/persister/rpm'
3
+ require 'rbconfig'
4
+
5
+ describe Revamp::Persister::Rpm::CommandLine do
6
+ describe '#execute' do
7
+ before :each do
8
+ @level = Revamp.logger.level
9
+ Revamp.logger.level = 100
10
+ end
11
+ after :each do
12
+ Revamp.logger.level = @level
13
+ end
14
+ let(:is_windows) { RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ }
15
+ let(:command) do
16
+ is_windows ? 'dir > nul' : 'true'
17
+ end
18
+ let(:directory) { Dir.tmpdir }
19
+ let(:options) do
20
+ {
21
+ release: "1",
22
+ epoch: "6",
23
+ outdir: "/tmp",
24
+ filenames: ["spec/fixtures/coi-sample-0.1.1.tar.gz"],
25
+ verbose: false,
26
+ cleanup: true
27
+ }
28
+ end
29
+ subject { described_class.execute(command, directory, options) }
30
+ it { expect(subject).to be_success }
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+ require 'revamp'
3
+
4
+ describe Revamp, '.version_prep' do
5
+ context 'on stable version v1.2.3' do
6
+ subject { Revamp::version_prep '1.2.3' }
7
+ it { expect(subject).to eq '1.2.3' }
8
+ end
9
+ context 'on unstable version v1.2.3.pre' do
10
+ subject { Revamp::version_prep '1.2.3.pre' }
11
+ it { expect(subject).to match /^1\.2\.3\.pre\.?(?:v\d+\.\d+\.\d+(?:\.\d+\.g)?)?(?:[0-9a-f]{7})?(?:\.dirty)?$/ }
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'revamp'
3
+
4
+ describe Revamp do
5
+ describe '#bug' do
6
+ let(:ex) do
7
+ ex = nil
8
+ begin
9
+ raise ArgumentError, 'Sample error'
10
+ rescue => detail
11
+ ex = detail
12
+ end
13
+ ex
14
+ end
15
+ subject { described_class.bug(ex) }
16
+ after :each do
17
+ Dir.glob(Dir.tmpdir + '/revamp-bug*.log') { |file| Pathname.new(file).unlink }
18
+ end
19
+ it { is_expected.not_to be_nil }
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,133 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: revamp
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Centralny Ośrodek Informatyki
8
+ - Suszyński Krzysztof
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-11-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: micro-optparse
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 1.2.0
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 1.2.0
56
+ description: |2
57
+ This module can convert standard puppet module file in form of tarball to
58
+ valid RPM or DEB package with all dependencies as references to other
59
+ system packages. The dependencies can be packaged inside the final system
60
+ package or just referenced as dependencies.
61
+ email:
62
+ - krzysztof.suszynski@coi.gov.pl
63
+ executables:
64
+ - revamp
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - ".gitignore"
69
+ - ".rspec"
70
+ - ".rubocop.yml"
71
+ - ".rubocop_todo.yml"
72
+ - ".travis.yml"
73
+ - Gemfile
74
+ - Gemfile.ruby19
75
+ - LICENSE.txt
76
+ - README.md
77
+ - Rakefile
78
+ - bin/revamp
79
+ - lib/revamp.rb
80
+ - lib/revamp/application.rb
81
+ - lib/revamp/cli.rb
82
+ - lib/revamp/filter/puppetver2rpmreq.rb
83
+ - lib/revamp/mapper/puppet-name-slugger.rb
84
+ - lib/revamp/model/puppet-module.rb
85
+ - lib/revamp/parser/puppet-tarball.rb
86
+ - lib/revamp/persister/rpm-spec.erb
87
+ - lib/revamp/persister/rpm.rb
88
+ - lib/revamp/version.rb
89
+ - revamp.gemspec
90
+ - spec/file_matchers.rb
91
+ - spec/fixtures/coi-sample-0.1.1.tar.gz
92
+ - spec/spec_helper.rb
93
+ - spec/unit/revamp/cli_spec.rb
94
+ - spec/unit/revamp/filter/puppetver2rpmreq_spec.rb
95
+ - spec/unit/revamp/parser/puppet-tarball_spec.rb
96
+ - spec/unit/revamp/persister/rpm_spec.rb
97
+ - spec/unit/revamp/version_spec.rb
98
+ - spec/unit/revamp_spec.rb
99
+ homepage: https://github.com/coi-gov-pl/gem-revamp
100
+ licenses:
101
+ - Apache-2.0
102
+ metadata: {}
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '1.9'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ requirements: []
118
+ rubyforge_project:
119
+ rubygems_version: 2.4.8
120
+ signing_key:
121
+ specification_version: 4
122
+ summary: Converts puppet module file to valid RPM or DEB package
123
+ test_files:
124
+ - spec/file_matchers.rb
125
+ - spec/fixtures/coi-sample-0.1.1.tar.gz
126
+ - spec/spec_helper.rb
127
+ - spec/unit/revamp/cli_spec.rb
128
+ - spec/unit/revamp/filter/puppetver2rpmreq_spec.rb
129
+ - spec/unit/revamp/parser/puppet-tarball_spec.rb
130
+ - spec/unit/revamp/persister/rpm_spec.rb
131
+ - spec/unit/revamp/version_spec.rb
132
+ - spec/unit/revamp_spec.rb
133
+ has_rdoc: