foreman_scc_manager 1.8.2 → 1.8.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -0
- data/app/controllers/api/v2/scc_accounts_controller.rb +9 -7
- data/app/controllers/scc_accounts_controller.rb +30 -4
- data/app/lib/actions/scc_manager/subscribe_product.rb +26 -13
- data/app/lib/actions/scc_manager/sync.rb +5 -5
- data/app/lib/actions/scc_manager/sync_products.rb +10 -11
- data/app/lib/actions/scc_manager/sync_repositories.rb +9 -11
- data/app/lib/scc_manager.rb +2 -2
- data/app/models/scc_account.rb +70 -11
- data/app/models/scc_product.rb +20 -2
- data/app/models/scc_repository.rb +11 -9
- data/app/views/scc_accounts/_form.html.erb +6 -0
- data/app/views/scc_accounts/index.html.erb +4 -3
- data/app/views/scc_accounts/show.html.erb +13 -4
- data/db/migrate/20200520281300_fix_scc_permissions.rb +22 -0
- data/db/migrate/20201119084201_add_gpg_key_to_scc_account.rb +6 -0
- data/db/migrate/20210205082733_add_subscription_valid_to_scc_products_and_repos.rb +6 -0
- data/db/migrate/20210210104407_add_root_repository_id_to_scc_repository.rb +6 -0
- data/db/migrate/20210224095050_connect_katello_root_repository_to_scc_repository.rb +17 -0
- data/lib/foreman_scc_manager/engine.rb +36 -25
- data/lib/foreman_scc_manager/version.rb +1 -1
- data/lib/tasks/test.rake +1 -1
- data/locale/de/LC_MESSAGES/foreman_scc_manager.mo +0 -0
- data/locale/de/foreman_scc_manager.edit.po +574 -0
- data/locale/de/foreman_scc_manager.po +40 -21
- data/locale/de/foreman_scc_manager.po.time_stamp +0 -0
- data/locale/en/foreman_scc_manager.edit.po +566 -0
- data/locale/en/foreman_scc_manager.po +21 -3
- data/locale/en/foreman_scc_manager.po.time_stamp +0 -0
- data/locale/foreman_scc_manager.pot +65 -38
- data/test/controllers/api/v2/scc_accounts_test.rb +9 -3
- data/test/controllers/scc_accounts_controller_test.rb +104 -0
- data/test/controllers/scc_accounts_controller_test2.rb +51 -0
- data/test/fixtures/models/scc_extendings.yml +6 -0
- data/test/fixtures/models/scc_products.yml +30 -2
- data/test/fixtures/models/scc_repositories.yml +29 -0
- data/test/models/scc_account_test.rb +70 -0
- data/test/models/scc_product_test.rb +69 -1
- data/test/support/fixtures_support.rb +3 -2
- data/test/test_controller_helper.rb +15 -0
- data/test/test_plugin_helper.rb +9 -0
- metadata +33 -14
@@ -7,8 +7,9 @@ one:
|
|
7
7
|
version: 1
|
8
8
|
arch: x86_128
|
9
9
|
friendly_name: number one
|
10
|
-
description: lorem ipsum dolor sit amet
|
10
|
+
description: "<p> lorem ipsum dolor sit amet </p>"
|
11
11
|
product_type: base
|
12
|
+
subscription_valid: nil
|
12
13
|
|
13
14
|
two:
|
14
15
|
scc_account_id: test_account1
|
@@ -17,5 +18,32 @@ two:
|
|
17
18
|
version: 2
|
18
19
|
arch: x86_128
|
19
20
|
friendly_name: number two
|
20
|
-
description: lorem ipsum dolor sit amet
|
21
|
+
description: "<p> lorem ipsum dolor sit amet </p><p> lorem lorem lorem </p>"
|
21
22
|
product_type: extras
|
23
|
+
subscription_valid: true
|
24
|
+
|
25
|
+
three:
|
26
|
+
scc_account_id: test_account1
|
27
|
+
scc_id: 333
|
28
|
+
name: three
|
29
|
+
version: 3
|
30
|
+
arch: x86_128
|
31
|
+
friendly_name: number three
|
32
|
+
description: lorem ipsum dolor sit amet
|
33
|
+
product_type: base
|
34
|
+
subscription_valid: nil
|
35
|
+
|
36
|
+
# create a couple of products as scc_extensions
|
37
|
+
<% 1.upto(10) do |i| %>
|
38
|
+
p_extension_<%= i %>:
|
39
|
+
scc_account_id: test_account1
|
40
|
+
scc_id: <%= i %>
|
41
|
+
name: p_ext_<%= i%>
|
42
|
+
version: 3
|
43
|
+
arch: x86_128
|
44
|
+
friendly_name: number <%= i%>
|
45
|
+
description: lorem ipsum dolor sit amet
|
46
|
+
product_type: extension
|
47
|
+
subscription_valid: nil
|
48
|
+
<% end %>
|
49
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# repositories for testing the empty repository filtering
|
2
|
+
<% 1.upto(8) do |i| %>
|
3
|
+
repo_<%= i %>:
|
4
|
+
id: <%= i %>
|
5
|
+
scc_account_id: 1
|
6
|
+
scc_id: <%= 63 + i %>
|
7
|
+
name: SLE10-Debuginfo-Updates_<%= i %>
|
8
|
+
distro_target: sles_<%= i %>
|
9
|
+
description: SLE10-Debuginfo-Updates for sles-10-ppc_<%= i %>
|
10
|
+
url: https://updates.suse.com/repo/example_<%= i %>
|
11
|
+
token: token_<%= i %>
|
12
|
+
autorefresh: true
|
13
|
+
installer_updates: false
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
repo_9:
|
17
|
+
id: 9
|
18
|
+
scc_account_id: 1
|
19
|
+
scc_id: 63
|
20
|
+
name: SLE10-Debuginfo-Updates_9
|
21
|
+
distro_target: sles_9
|
22
|
+
description: SLE10-Debuginfo-Updates for sles-10-ppc_9
|
23
|
+
url: https://updates.suse.com/repo/example_9
|
24
|
+
token: token_9
|
25
|
+
autorefresh: true
|
26
|
+
installer_updates: false
|
27
|
+
|
28
|
+
|
29
|
+
|
@@ -71,4 +71,74 @@ class SccAccountSearchTest < ActiveSupport::TestCase
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
class SccAccountUpdateProductsTest < ActiveSupport::TestCase
|
75
|
+
def setup
|
76
|
+
@account = scc_accounts(:one)
|
77
|
+
one = scc_products(:one)
|
78
|
+
@account.scc_products = SccProduct.where(name: 'one')
|
79
|
+
# generate test data, beware that hash names are not equal to SccProduct instance names
|
80
|
+
@product_data = { 'name' => one.name,
|
81
|
+
'id' => one.scc_id,
|
82
|
+
'version' => one.version,
|
83
|
+
'arch' => one.arch,
|
84
|
+
'repositories' => one.scc_repositories,
|
85
|
+
'extensions' => one.scc_extensions,
|
86
|
+
'product_type' => one.product_type,
|
87
|
+
'description' => '<p> new unpretty description </p>',
|
88
|
+
'friendly_name' => 'updated name' }
|
89
|
+
@product_array = []
|
90
|
+
@product_array.push @product_data
|
91
|
+
|
92
|
+
@test_product = SccProduct.new
|
93
|
+
@test_product.scc_id = @product_data['id']
|
94
|
+
@test_product.friendly_name = @product_data['friendly_name']
|
95
|
+
@test_product.description = @product_data['description']
|
96
|
+
end
|
97
|
+
|
98
|
+
test 'update scc product' do
|
99
|
+
@account.update_scc_products(@product_array)
|
100
|
+
@updated_product = @account.scc_products.where(friendly_name: 'updated name').first
|
101
|
+
assert_equal @test_product.pretty_name, @updated_product.name
|
102
|
+
assert_equal @test_product.pretty_name, @updated_product.pretty_name
|
103
|
+
assert_equal @test_product.pretty_description, @updated_product.description
|
104
|
+
assert_equal @test_product.pretty_description, @updated_product.pretty_description
|
105
|
+
|
106
|
+
assert @updated_product.subscription_valid
|
107
|
+
@invalid_products = @account.scc_products.where.not(scc_id: scc_products(:one).scc_id)
|
108
|
+
@invalid_products.each do |ip|
|
109
|
+
assert_not ip.subscription_valid
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
class SccAccountUpdateReposTest < ActiveSupport::TestCase
|
115
|
+
def setup
|
116
|
+
@account = scc_accounts(:one)
|
117
|
+
test_repo = scc_repositories(:repo_9)
|
118
|
+
@account.scc_repositories = SccProduct.where(name: 'repo_9')
|
119
|
+
# generate test data
|
120
|
+
@repo_data = { 'name' => test_repo.name,
|
121
|
+
'id' => test_repo.scc_id,
|
122
|
+
'distro_target' => test_repo.distro_target,
|
123
|
+
'url' => test_repo.url,
|
124
|
+
'enabled' => test_repo.enabled,
|
125
|
+
'autorefresh' => test_repo.autorefresh,
|
126
|
+
'installer_updates' => test_repo.installer_updates,
|
127
|
+
'description' => '<p> new unpretty repo description </p>' }
|
128
|
+
@repo_array = []
|
129
|
+
@repo_array.push @repo_data
|
130
|
+
|
131
|
+
@test_repo = SccRepository.new
|
132
|
+
@test_repo.description = @repo_data['description']
|
133
|
+
@test_repo.name = @repo_data['name']
|
134
|
+
end
|
135
|
+
|
136
|
+
test 'update scc repository' do
|
137
|
+
@account.update_scc_repositories(@repo_array)
|
138
|
+
@updated_repo = @account.scc_repositories.where(name: @test_repo.pretty_name).first
|
139
|
+
assert_equal @test_repo.pretty_name, @updated_repo.name
|
140
|
+
assert_equal @test_repo.pretty_name, @updated_repo.pretty_name
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
74
144
|
# FIXME: test cascaded delete
|
@@ -3,6 +3,8 @@ require 'test_plugin_helper'
|
|
3
3
|
class SccProductCreateTest < ActiveSupport::TestCase
|
4
4
|
def setup
|
5
5
|
@product = scc_products(:one)
|
6
|
+
@product_with_ugly_description = scc_products(:two)
|
7
|
+
@product_with_normal_description = scc_products(:three)
|
6
8
|
end
|
7
9
|
|
8
10
|
test 'create' do
|
@@ -13,11 +15,26 @@ class SccProductCreateTest < ActiveSupport::TestCase
|
|
13
15
|
test 'uniq_name' do
|
14
16
|
assert_equal @product.uniq_name, '111 number one'
|
15
17
|
end
|
18
|
+
|
19
|
+
test 'pretty_name' do
|
20
|
+
assert_equal @product.pretty_name, 'number one (id: 111)'
|
21
|
+
end
|
22
|
+
|
23
|
+
test 'pretty_description' do
|
24
|
+
assert_equal @product_with_normal_description.description,
|
25
|
+
@product_with_normal_description.pretty_description
|
26
|
+
assert_equal @product.pretty_description, 'lorem ipsum dolor sit amet'
|
27
|
+
assert_equal @product_with_ugly_description.pretty_description, 'lorem ipsum dolor sit amet'
|
28
|
+
end
|
16
29
|
end
|
17
30
|
|
18
31
|
class SccProductSearchTest < ActiveSupport::TestCase
|
19
32
|
test 'default ordered by name' do
|
20
|
-
|
33
|
+
product_names = ['one', 'two', 'three',
|
34
|
+
'p_ext_1', 'p_ext_10', 'p_ext_2', 'p_ext_3',
|
35
|
+
'p_ext_4', 'p_ext_5', 'p_ext_6', 'p_ext_7',
|
36
|
+
'p_ext_8', 'p_ext_9']
|
37
|
+
assert_equal SccProduct.all.pluck(:name), product_names.sort
|
21
38
|
end
|
22
39
|
|
23
40
|
test 'search name' do
|
@@ -30,3 +47,54 @@ class SccProductSearchTest < ActiveSupport::TestCase
|
|
30
47
|
assert_empty empty
|
31
48
|
end
|
32
49
|
end
|
50
|
+
|
51
|
+
# These produt extension tests are pre-tests for the class ProductEmptyRepoAvailableTests.
|
52
|
+
# They do not test any direct functionality of the plugin.
|
53
|
+
class SccProductExtensionsTest < ActiveSupport::TestCase
|
54
|
+
def setup
|
55
|
+
@product_with_extensions = scc_products(:one)
|
56
|
+
@product_with_extensions.scc_extensions = scc_products.select { |p| p.product_type == 'extension' }
|
57
|
+
@product_with_wrong_extensions = scc_products(:two)
|
58
|
+
@product_with_wrong_extensions.scc_extensions = [scc_products(:three)]
|
59
|
+
@product_without_extensions = scc_products(:three)
|
60
|
+
end
|
61
|
+
|
62
|
+
test 'check product extensions available' do
|
63
|
+
assert_equal @product_with_extensions.scc_extensions.count, 10
|
64
|
+
assert_not_empty @product_with_extensions.scc_extensions
|
65
|
+
assert_empty @product_without_extensions.scc_extensions
|
66
|
+
end
|
67
|
+
|
68
|
+
test 'product extension of correct type' do
|
69
|
+
assert_empty(@product_with_extensions.scc_extensions.reject { |p| p.product_type == 'extension' })
|
70
|
+
assert_not_empty(@product_with_wrong_extensions.scc_extensions.reject { |p| p.product_type == 'extension' })
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class SccProductEmptyRepoAvailableTest < ActiveSupport::TestCase
|
75
|
+
def setup
|
76
|
+
@product_with_repos = scc_products(:one)
|
77
|
+
@product_with_repos.scc_extensions = scc_products.select { |p| p.product_type == 'extension' }
|
78
|
+
@product_with_repos.scc_repositories = scc_repositories[0..2]
|
79
|
+
@product_with_repos.scc_extensions[1].scc_repositories = scc_repositories[3..4]
|
80
|
+
@product_with_repos.scc_extensions[2].scc_repositories = scc_repositories[5..7]
|
81
|
+
end
|
82
|
+
|
83
|
+
test 'products with empty repositories' do
|
84
|
+
products_with_repos = SccProduct.only_products_with_repos
|
85
|
+
assert_equal SccProduct.all.count { |prod| !prod.scc_repositories.empty? }, 3
|
86
|
+
assert_equal products_with_repos.count, 3
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
class SccProductNoRepoTest < ActiveSupport::TestCase
|
91
|
+
def setup
|
92
|
+
@product_with_repos = scc_products(:one)
|
93
|
+
@product_with_repos.scc_extensions = scc_products.select { |p| p.product_type == 'extension' }
|
94
|
+
end
|
95
|
+
|
96
|
+
test 'products without any repositories' do
|
97
|
+
products_with_repos = SccProduct.only_products_with_repos
|
98
|
+
assert_empty products_with_repos
|
99
|
+
end
|
100
|
+
end
|
@@ -1,8 +1,9 @@
|
|
1
1
|
module ForemanSccManager
|
2
2
|
module FixturesSupport
|
3
3
|
FIXTURE_CLASSES = {
|
4
|
-
scc_accounts:
|
5
|
-
scc_products:
|
4
|
+
scc_accounts: ::SccAccount,
|
5
|
+
scc_products: ::SccProduct,
|
6
|
+
scc_repositories: ::SccRepository
|
6
7
|
}.freeze
|
7
8
|
|
8
9
|
def self.set_fixture_classes(test_class)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# This calls the main test_helper in Foreman-core
|
2
|
+
require 'test_helper'
|
3
|
+
# require "#{Katello::Engine.root}/test/katello_test_helper"
|
4
|
+
|
5
|
+
require 'foreman_tasks/test_helpers'
|
6
|
+
|
7
|
+
module SignInHelper
|
8
|
+
def sign_in_as(user)
|
9
|
+
post sign_in_url(username: user.login, password: user.password)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class ActionDispatch::IntegrationTest
|
14
|
+
include SignInHelper
|
15
|
+
end
|
data/test/test_plugin_helper.rb
CHANGED
@@ -22,6 +22,7 @@ module FixtureTestCase
|
|
22
22
|
Dir.mkdir(self.fixture_path)
|
23
23
|
FileUtils.cp(Dir.glob("#{ForemanSccManager::Engine.root}/test/fixtures/models/*"), self.fixture_path)
|
24
24
|
FileUtils.cp(Dir.glob("#{ForemanSccManager::Engine.root}/test/fixtures/files/*"), self.fixture_path)
|
25
|
+
FileUtils.cp(Dir.glob("#{ForemanSccManager::Engine.root}/test/fixtures/controllers/*"), self.fixture_path)
|
25
26
|
FileUtils.cp(Dir.glob("#{Rails.root}/test/fixtures/*"), self.fixture_path)
|
26
27
|
fixtures(:all)
|
27
28
|
FIXTURES = load_fixtures(ActiveRecord::Base)
|
@@ -56,3 +57,11 @@ class ActiveSupport::TestCase
|
|
56
57
|
organization
|
57
58
|
end
|
58
59
|
end
|
60
|
+
|
61
|
+
class ActionController::TestCase
|
62
|
+
def set_session_user(user = :admin, org = :empty_organization)
|
63
|
+
user = user.is_a?(User) ? user : users(user)
|
64
|
+
org = org.is_a?(Organization) ? org : taxonomies(org)
|
65
|
+
{ :user => user.id, :expires_at => 5.minutes.from_now, :organization_id => org.id }
|
66
|
+
end
|
67
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_scc_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ATIX AG
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
name: rails
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '5.1'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '5.1'
|
97
97
|
description: Foreman plugin to sync SUSE Customer Center products and repositories
|
@@ -153,6 +153,11 @@ files:
|
|
153
153
|
- db/migrate/20170505063726_add_sync_status_to_scc_account.rb
|
154
154
|
- db/migrate/20180321000000_change_sync_status_to_sync_task.rb
|
155
155
|
- db/migrate/20190417202427_add_recurring_sync.foreman_scc_manager.rb
|
156
|
+
- db/migrate/20200520281300_fix_scc_permissions.rb
|
157
|
+
- db/migrate/20201119084201_add_gpg_key_to_scc_account.rb
|
158
|
+
- db/migrate/20210205082733_add_subscription_valid_to_scc_products_and_repos.rb
|
159
|
+
- db/migrate/20210210104407_add_root_repository_id_to_scc_repository.rb
|
160
|
+
- db/migrate/20210224095050_connect_katello_root_repository_to_scc_repository.rb
|
156
161
|
- lib/foreman_scc_manager.rb
|
157
162
|
- lib/foreman_scc_manager/engine.rb
|
158
163
|
- lib/foreman_scc_manager/version.rb
|
@@ -161,13 +166,19 @@ files:
|
|
161
166
|
- locale/Makefile
|
162
167
|
- locale/action_names.rb
|
163
168
|
- locale/de/LC_MESSAGES/foreman_scc_manager.mo
|
169
|
+
- locale/de/foreman_scc_manager.edit.po
|
164
170
|
- locale/de/foreman_scc_manager.po
|
171
|
+
- locale/de/foreman_scc_manager.po.time_stamp
|
165
172
|
- locale/en/LC_MESSAGES/foreman_scc_manager.mo
|
173
|
+
- locale/en/foreman_scc_manager.edit.po
|
166
174
|
- locale/en/foreman_scc_manager.po
|
175
|
+
- locale/en/foreman_scc_manager.po.time_stamp
|
167
176
|
- locale/foreman_scc_manager.pot
|
168
177
|
- locale/gemspec.rb
|
169
178
|
- test/controllers/api/v2/scc_accounts_test.rb
|
170
179
|
- test/controllers/api/v2/scc_products_test.rb
|
180
|
+
- test/controllers/scc_accounts_controller_test.rb
|
181
|
+
- test/controllers/scc_accounts_controller_test2.rb
|
171
182
|
- test/factories/foreman_scc_manager_factories.rb
|
172
183
|
- test/features/sync_test.rb
|
173
184
|
- test/fixtures/files/data_products_page1.json
|
@@ -175,10 +186,13 @@ files:
|
|
175
186
|
- test/fixtures/files/data_repositories.json
|
176
187
|
- test/fixtures/files/data_subscriptions.json
|
177
188
|
- test/fixtures/models/scc_accounts.yml
|
189
|
+
- test/fixtures/models/scc_extendings.yml
|
178
190
|
- test/fixtures/models/scc_products.yml
|
191
|
+
- test/fixtures/models/scc_repositories.yml
|
179
192
|
- test/models/scc_account_test.rb
|
180
193
|
- test/models/scc_product_test.rb
|
181
194
|
- test/support/fixtures_support.rb
|
195
|
+
- test/test_controller_helper.rb
|
182
196
|
- test/test_plugin_helper.rb
|
183
197
|
- test/unit/foreman_scc_manager_test.rb
|
184
198
|
homepage: https://www.orcharhino.com/
|
@@ -200,23 +214,28 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
214
|
- !ruby/object:Gem::Version
|
201
215
|
version: '0'
|
202
216
|
requirements: []
|
203
|
-
rubygems_version: 3.
|
217
|
+
rubygems_version: 3.1.2
|
204
218
|
signing_key:
|
205
219
|
specification_version: 4
|
206
220
|
summary: Suse Customer Center plugin for Foreman
|
207
221
|
test_files:
|
222
|
+
- test/unit/foreman_scc_manager_test.rb
|
223
|
+
- test/test_controller_helper.rb
|
224
|
+
- test/features/sync_test.rb
|
225
|
+
- test/models/scc_product_test.rb
|
226
|
+
- test/models/scc_account_test.rb
|
227
|
+
- test/factories/foreman_scc_manager_factories.rb
|
208
228
|
- test/controllers/api/v2/scc_accounts_test.rb
|
209
229
|
- test/controllers/api/v2/scc_products_test.rb
|
210
|
-
- test/
|
211
|
-
- test/
|
230
|
+
- test/controllers/scc_accounts_controller_test2.rb
|
231
|
+
- test/controllers/scc_accounts_controller_test.rb
|
212
232
|
- test/support/fixtures_support.rb
|
213
|
-
- test/fixtures/models/scc_products.yml
|
214
233
|
- test/fixtures/models/scc_accounts.yml
|
215
|
-
- test/fixtures/
|
234
|
+
- test/fixtures/models/scc_repositories.yml
|
235
|
+
- test/fixtures/models/scc_products.yml
|
236
|
+
- test/fixtures/models/scc_extendings.yml
|
237
|
+
- test/fixtures/files/data_products_page2.json
|
216
238
|
- test/fixtures/files/data_products_page1.json
|
239
|
+
- test/fixtures/files/data_subscriptions.json
|
217
240
|
- test/fixtures/files/data_repositories.json
|
218
|
-
- test/
|
219
|
-
- test/models/scc_product_test.rb
|
220
|
-
- test/models/scc_account_test.rb
|
221
|
-
- test/unit/foreman_scc_manager_test.rb
|
222
|
-
- test/factories/foreman_scc_manager_factories.rb
|
241
|
+
- test/test_plugin_helper.rb
|