runcible 0.0.1
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.
- data/.gitignore +18 -0
- data/Gemfile +19 -0
- data/LICENSE +22 -0
- data/README.md +29 -0
- data/Rakefile +37 -0
- data/lib/runcible.rb +25 -0
- data/lib/runcible/base.rb +113 -0
- data/lib/runcible/extensions/repository.rb +67 -0
- data/lib/runcible/oauth_setup.rb +29 -0
- data/lib/runcible/resources/repository.rb +82 -0
- data/lib/runcible/resources/role.rb +46 -0
- data/lib/runcible/resources/task.rb +49 -0
- data/lib/runcible/resources/user.rb +50 -0
- data/lib/runcible/version.rb +3 -0
- data/rel-eng/packages/.readme +3 -0
- data/rel-eng/tito.props +5 -0
- data/runcible.gemspec +17 -0
- data/runcible.spec +48 -0
- data/test/.gitkeep +0 -0
- data/test/integration/extensions/repository_test.rb +117 -0
- data/test/integration/fixtures/repositories/zoo5/.treeinfo +12 -0
- data/test/integration/fixtures/repositories/zoo5/CHANGESET +11 -0
- data/test/integration/fixtures/repositories/zoo5/PULP_MANIFEST +1 -0
- data/test/integration/fixtures/repositories/zoo5/cheetah-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/create.sh +20 -0
- data/test/integration/fixtures/repositories/zoo5/elephant-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/empty.iso +0 -0
- data/test/integration/fixtures/repositories/zoo5/giraffe-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/images/test1.img +0 -0
- data/test/integration/fixtures/repositories/zoo5/images/test2.img +0 -0
- data/test/integration/fixtures/repositories/zoo5/lion-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/monkey-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/penguin-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/06661e2a9839cf0beebcf409410ca4f93c09081f4e772fd0d03e1faf62705a11-comps.xml +39 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/0c4d57a68f9a3b13dabc6f8b01ca8958aa796167cececee04717edfc26d02f2d-other.xml.gz +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/298ce23f48b3613e030d19f3d9c2ff2df31c2f08479bdf94cebb87c208e48c0e-filelists.xml.gz +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/32c0e38317aade0c057b173ff62344e912e1bd650409c6ac31aecee78e3413af-comps.xml.gz +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/34d954906c7ce7aa2254e24d7be0a9049e0a2f436add023ca056123a2d48e30e-updateinfo.xml.gz +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/63aedd074d9f0daf7c6be8c61f91d76a962bb6ceda86b9abd2140f154c320fa2-other.sqlite.bz2 +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/69d65cdebffc6199d3adb3e38b06ca9abaae6c1c7366805099987b28f182178d-filelists.sqlite.bz2 +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/799241a518a4a6b11a68f8e6fbdb719875f87832f60accc0851ced0d6a0497c6-updateinfo.xml.gz +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/a4ea9fcdce31dc8673c7a9ba66c086bd6a16e1eff717e3896dd1cac444a1423c-primary.xml.gz +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/fb9b9508e148368d0edf7e03dc905b343937fd958e6531cce6380933d18c3455-primary.sqlite.bz2 +0 -0
- data/test/integration/fixtures/repositories/zoo5/repodata/repomd.xml +75 -0
- data/test/integration/fixtures/repositories/zoo5/squirrel-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/repositories/zoo5/updateinfo.xml +26 -0
- data/test/integration/fixtures/repositories/zoo5/walrus-0.3-0.8.noarch.rpm +0 -0
- data/test/integration/fixtures/vcr_cassettes/extensions/pulp_repository_extensions.yml +137 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_consumer.yml +1529 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_consumer_group.yml +430 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_consumer_helper.yml +120 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_distribution.yml +77 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_errata.yml +77 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_filter.yml +233 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_filter_helper.yml +81 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_package.yml +155 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_package_group.yml +40 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_package_group_category.yml +40 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_ping.yml +40 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_repository.yml +1196 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_repository_helper.yml +8659 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_repository_sync.yml +215 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_role.yml +133 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_roles.yml +120 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_task.yml +943 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_user.yml +288 -0
- data/test/integration/fixtures/vcr_cassettes/pulp_user_helper.yml +195 -0
- data/test/integration/resources/helpers/consumer_helper.rb +49 -0
- data/test/integration/resources/helpers/filter_helper.rb +44 -0
- data/test/integration/resources/helpers/repository_helper.rb +127 -0
- data/test/integration/resources/pulp_consumer_group_test.rb +182 -0
- data/test/integration/resources/pulp_consumer_test.rb +200 -0
- data/test/integration/resources/pulp_distribution_test.rb +55 -0
- data/test/integration/resources/pulp_errata_test.rb +60 -0
- data/test/integration/resources/pulp_filter_test.rb +92 -0
- data/test/integration/resources/pulp_package_group_category_test.rb +55 -0
- data/test/integration/resources/pulp_package_group_test.rb +56 -0
- data/test/integration/resources/pulp_package_test.rb +79 -0
- data/test/integration/resources/pulp_ping_test.rb +31 -0
- data/test/integration/resources/pulp_repository_test.rb +307 -0
- data/test/integration/resources/pulp_role_test.rb +62 -0
- data/test/integration/resources/pulp_task_test.rb +79 -0
- data/test/integration/resources/pulp_user_test.rb +105 -0
- data/test/integration/test_runner.rb +113 -0
- data/test/integration/vcr_setup.rb +22 -0
- data/test/unit/test_base.rb +62 -0
- metadata +218 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
require 'test/integration/pulp/helpers/repository_helper'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
module TestPulpDistributionBase
|
|
19
|
+
include RepositoryHelper
|
|
20
|
+
|
|
21
|
+
def setup
|
|
22
|
+
@resource = Resources::Pulp::Distribution
|
|
23
|
+
VCR.insert_cassette('pulp_distribution')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def teardown
|
|
27
|
+
VCR.eject_cassette
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class TestPulpDistribution < MiniTest::Unit::TestCase
|
|
34
|
+
include TestPulpDistributionBase
|
|
35
|
+
|
|
36
|
+
def self.before_suite
|
|
37
|
+
RepositoryHelper.create_and_sync_repo
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.after_suite
|
|
41
|
+
RepositoryHelper.destroy_repo
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_dist_path
|
|
45
|
+
path = @resource.dist_path
|
|
46
|
+
assert_match("/api/distributions/", path)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_find
|
|
50
|
+
repo = RepositoryHelper.repo_resource.find(RepositoryHelper.repo_id)
|
|
51
|
+
response = @resource.find(repo['distributionid'].first)
|
|
52
|
+
assert response.length > 0
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
require 'test/integration/pulp/helpers/repository_helper'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
module TestPulpErrataBase
|
|
19
|
+
|
|
20
|
+
def setup
|
|
21
|
+
@resource = Resources::Pulp::Errata
|
|
22
|
+
VCR.insert_cassette('pulp_errata')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def teardown
|
|
26
|
+
VCR.eject_cassette
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class TestPulpErrata < MiniTest::Unit::TestCase
|
|
33
|
+
include TestPulpErrataBase
|
|
34
|
+
|
|
35
|
+
def self.before_suite
|
|
36
|
+
RepositoryHelper.create_and_sync_repo
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def self.after_suite
|
|
40
|
+
RepositoryHelper.destroy_repo
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_errata_path
|
|
44
|
+
path = @resource.errata_path
|
|
45
|
+
assert_match("/api/errata/", path)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_find
|
|
49
|
+
response = @resource.find("RHEA-2010:0002")
|
|
50
|
+
assert response.length > 0
|
|
51
|
+
assert response['id'] == 'RHEA-2010:0002'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_filter
|
|
55
|
+
response = @resource.filter({ :type => "security" })
|
|
56
|
+
assert response.length > 0
|
|
57
|
+
assert response.select { |errata| errata['id'] == "RHEA-2010:0002" }.length > 0
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
module TestPulpFilterBase
|
|
18
|
+
def setup
|
|
19
|
+
@resource = Resources::Pulp::Filter
|
|
20
|
+
@filter_id = "integration_test_filter"
|
|
21
|
+
VCR.insert_cassette('pulp_filter')
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def teardown
|
|
25
|
+
destroy_filter
|
|
26
|
+
VCR.eject_cassette
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def create_filter
|
|
30
|
+
@resource.create(:id => @filter_id, :type => "blacklist", :package_list => ['cheetah'])
|
|
31
|
+
rescue Exception => e
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def destroy_filter
|
|
35
|
+
@resource.destroy(@filter_id)
|
|
36
|
+
rescue Exception => e
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class TestPulpFilterCreate < MiniTest::Unit::TestCase
|
|
42
|
+
include TestPulpFilterBase
|
|
43
|
+
|
|
44
|
+
def test_create
|
|
45
|
+
response = create_filter
|
|
46
|
+
assert response.length > 0
|
|
47
|
+
assert response['id'] == @filter_id
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class TestPulpFilter < MiniTest::Unit::TestCase
|
|
53
|
+
include TestPulpFilterBase
|
|
54
|
+
|
|
55
|
+
def setup
|
|
56
|
+
super
|
|
57
|
+
create_filter
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_path
|
|
61
|
+
path = @resource.path
|
|
62
|
+
assert_match("/api/filters/", path)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_path_with_id
|
|
66
|
+
path = @resource.path(@filter_id)
|
|
67
|
+
assert_match("/api/filters/" + @filter_id, path)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_find
|
|
71
|
+
response = @resource.find(@filter_id)
|
|
72
|
+
assert response.length > 0
|
|
73
|
+
assert response['id'] == @filter_id
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_destroy
|
|
77
|
+
response = @resource.destroy(@filter_id)
|
|
78
|
+
assert response == 200
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def test_add_packages
|
|
82
|
+
response = @resource.add_packages(@filter_id, ['cheetah', 'lion'])
|
|
83
|
+
assert response == "true"
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_remove_packages
|
|
87
|
+
response = @resource.add_packages(@filter_id, ['cheetah', 'lion'])
|
|
88
|
+
response = @resource.remove_packages(@filter_id, ['cheetah', 'lion'])
|
|
89
|
+
assert response == "true"
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
require 'test/integration/pulp/helpers/repository_helper'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
module TestPulpPackageGroupCategoryBase
|
|
19
|
+
include RepositoryHelper
|
|
20
|
+
|
|
21
|
+
def setup
|
|
22
|
+
@resource = Resources::Pulp::PackageGroupCategory
|
|
23
|
+
VCR.insert_cassette('pulp_package_group_category')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def teardown
|
|
27
|
+
VCR.eject_cassette
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class TestPulpPackageGroupCategory < MiniTest::Unit::TestCase
|
|
34
|
+
include TestPulpPackageGroupCategoryBase
|
|
35
|
+
|
|
36
|
+
def self.before_suite
|
|
37
|
+
RepositoryHelper.create_and_sync_repo
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.after_suite
|
|
41
|
+
RepositoryHelper.destroy_repo
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_path
|
|
45
|
+
path = @resource.path(RepositoryHelper.repo_id)
|
|
46
|
+
assert_match("/api/repositories/" + RepositoryHelper.repo_id + "/packagegroupcategories/", path)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_all
|
|
50
|
+
response = @resource.all(RepositoryHelper.repo_id)
|
|
51
|
+
assert response.length > 0
|
|
52
|
+
assert response.key?('all')
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
require 'test/integration/pulp/helpers/repository_helper'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
module TestPulpPackageGroupBase
|
|
19
|
+
include RepositoryHelper
|
|
20
|
+
|
|
21
|
+
def setup
|
|
22
|
+
@resource = Resources::Pulp::PackageGroup
|
|
23
|
+
VCR.insert_cassette('pulp_package_group')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def teardown
|
|
27
|
+
VCR.eject_cassette
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class TestPulpPackageGroup < MiniTest::Unit::TestCase
|
|
34
|
+
include TestPulpPackageGroupBase
|
|
35
|
+
|
|
36
|
+
def self.before_suite
|
|
37
|
+
RepositoryHelper.create_and_sync_repo
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.after_suite
|
|
41
|
+
RepositoryHelper.destroy_repo
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_path
|
|
45
|
+
path = @resource.path(RepositoryHelper.repo_id)
|
|
46
|
+
assert_match("/api/repositories/" + RepositoryHelper.repo_id + "/packagegroups/", path)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_all
|
|
50
|
+
response = @resource.all(RepositoryHelper.repo_id)
|
|
51
|
+
assert response.length > 0
|
|
52
|
+
assert response.key?('bird')
|
|
53
|
+
assert response.key?('mammal')
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
require 'test/integration/pulp/helpers/repository_helper'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
module TestPulpPackageBase
|
|
19
|
+
include RepositoryHelper
|
|
20
|
+
|
|
21
|
+
def setup
|
|
22
|
+
@resource = Resources::Pulp::Package
|
|
23
|
+
VCR.insert_cassette('pulp_package')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def teardown
|
|
27
|
+
VCR.eject_cassette
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class TestPulpPackage < MiniTest::Unit::TestCase
|
|
34
|
+
include TestPulpPackageBase
|
|
35
|
+
|
|
36
|
+
def self.before_suite
|
|
37
|
+
RepositoryHelper.create_and_sync_repo
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.after_suite
|
|
41
|
+
RepositoryHelper.destroy_repo
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_package_path
|
|
45
|
+
path = @resource.package_path
|
|
46
|
+
assert_match("/api/packages/", path)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_all
|
|
50
|
+
response = @resource.all
|
|
51
|
+
assert response.length > 0
|
|
52
|
+
assert response.select { |pack| pack['name'] == 'cheetah' }.length > 0
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_find
|
|
56
|
+
response = @resource.search('cheetah')
|
|
57
|
+
response = @resource.find(response.first['id'])
|
|
58
|
+
assert response.length > 0
|
|
59
|
+
assert response['name'] == 'cheetah'
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_search
|
|
63
|
+
response = @resource.search('cheetah')
|
|
64
|
+
assert response.length > 0
|
|
65
|
+
assert response.first['name'] == 'cheetah'
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_name_search
|
|
69
|
+
response = @resource.name_search('cheetah')
|
|
70
|
+
assert response.length > 0
|
|
71
|
+
assert response.include?('cheetah')
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_dep_solve
|
|
75
|
+
response = @resource.dep_solve(['cheetah', 'lion'], [RepositoryHelper.repo_id])
|
|
76
|
+
assert response.length > 0
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
require 'test/integration/pulp/vcr_pulp_setup'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class TestPulpPing < MiniTest::Unit::TestCase
|
|
18
|
+
def setup
|
|
19
|
+
@resource = Resources::Pulp::PulpPing
|
|
20
|
+
VCR.insert_cassette('pulp_ping')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def teardown
|
|
24
|
+
VCR.eject_cassette
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_ping
|
|
28
|
+
response = @resource.ping()
|
|
29
|
+
assert response.length > 0
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
# Copyright 2012 Red Hat, Inc.
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed to you under the GNU General Public
|
|
4
|
+
# License as published by the Free Software Foundation; either version
|
|
5
|
+
# 2 of the License (GPLv2) or (at your option) any later version.
|
|
6
|
+
# There is NO WARRANTY for this software, express or implied,
|
|
7
|
+
# including the implied warranties of MERCHANTABILITY,
|
|
8
|
+
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
|
|
9
|
+
# have received a copy of GPLv2 along with this software; if not, see
|
|
10
|
+
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'minitest/autorun'
|
|
14
|
+
|
|
15
|
+
require './test/integration/resources/helpers/repository_helper'
|
|
16
|
+
require './lib/runcible/resources/repository'
|
|
17
|
+
require './lib/runcible/extensions/repository'
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
module TestPulpRepositoryBase
|
|
21
|
+
include RepositoryHelper
|
|
22
|
+
|
|
23
|
+
def setup
|
|
24
|
+
@resource = Runcible::Pulp::Repository
|
|
25
|
+
@extension = Runcible::Pulp::RepositoryExtension
|
|
26
|
+
VCR.insert_cassette('pulp_repository')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def teardown
|
|
30
|
+
VCR.eject_cassette
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
=begin
|
|
36
|
+
class TestPulpRepositoryCreate < MiniTest::Unit::TestCase
|
|
37
|
+
include TestPulpRepositoryBase
|
|
38
|
+
|
|
39
|
+
def teardown
|
|
40
|
+
RepositoryHelper.destroy_repo
|
|
41
|
+
super
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_create
|
|
45
|
+
response = RepositoryHelper.create_repo
|
|
46
|
+
assert response.code == 201
|
|
47
|
+
assert response['id'] == RepositoryHelper.repo_id
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class TestPulpRepositoryDelete < MiniTest::Unit::TestCase
|
|
53
|
+
include TestPulpRepositoryBase
|
|
54
|
+
|
|
55
|
+
def setup
|
|
56
|
+
super
|
|
57
|
+
RepositoryHelper.create_repo
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_delete
|
|
61
|
+
response = @resource.delete(RepositoryHelper.repo_id)
|
|
62
|
+
assert response.code == 200
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class TestPulpRepository < MiniTest::Unit::TestCase
|
|
69
|
+
include TestPulpRepositoryBase
|
|
70
|
+
|
|
71
|
+
def self.before_suite
|
|
72
|
+
RepositoryHelper.create_repo(:importer => true)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def self.after_suite
|
|
76
|
+
RepositoryHelper.destroy_repo
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def test_repository_path
|
|
80
|
+
path = @resource.path
|
|
81
|
+
assert_match("repositories/", path)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_repository_path_with_id
|
|
85
|
+
path = @resource.path(RepositoryHelper.repo_id)
|
|
86
|
+
assert_match("repositories/#{RepositoryHelper.repo_id}", path)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def test_update
|
|
90
|
+
response = @resource.update(RepositoryHelper.repo_id, { :description => "updated_description_" + RepositoryHelper.repo_id })
|
|
91
|
+
assert response.code == 200
|
|
92
|
+
assert response["description"] == "updated_description_" + RepositoryHelper.repo_id
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_retrieve
|
|
96
|
+
response = @resource.retrieve(RepositoryHelper.repo_id)
|
|
97
|
+
assert response.code == 200
|
|
98
|
+
assert response["display_name"] == RepositoryHelper.repo_id
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def test_retrieve_with_details
|
|
102
|
+
response = @resource.retrieve(RepositoryHelper.repo_id, {:details => true})
|
|
103
|
+
assert response.code == 200
|
|
104
|
+
assert response.has_key?("distributors")
|
|
105
|
+
assert response.has_key?("importers")
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_retrieve_all
|
|
109
|
+
response = @resource.retrieve_all()
|
|
110
|
+
assert response.code == 200
|
|
111
|
+
assert response.collect{ |repo| repo["display_name"] == RepositoryHelper.repo_id }.length > 0
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_search
|
|
115
|
+
response = @resource.search({})
|
|
116
|
+
assert response.code == 200
|
|
117
|
+
assert response.collect{ |repo| repo["display_name"] == RepositoryHelper.repo_id }.length > 0
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def test_associate_importer
|
|
121
|
+
response = @resource.associate_importer(RepositoryHelper.repo_id, "yum_importer", {})
|
|
122
|
+
assert response.code == 201
|
|
123
|
+
assert response['importer_type_id'] == "yum_importer"
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def test_associate_distributor
|
|
127
|
+
distributor_config = {"relative_url" => "/", "http" => true, "https" => true}
|
|
128
|
+
|
|
129
|
+
response = @resource.associate_distributor(RepositoryHelper.repo_id, "yum_distributor", distributor_config)
|
|
130
|
+
assert response.code == 201
|
|
131
|
+
assert response['distributor_type_id'] == "yum_distributor"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class TestPulpRepositorySync < MiniTest::Unit::TestCase
|
|
138
|
+
include TestPulpRepositoryBase
|
|
139
|
+
|
|
140
|
+
def setup
|
|
141
|
+
super
|
|
142
|
+
VCR.eject_cassette
|
|
143
|
+
VCR.insert_cassette('pulp_repository_sync')
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def teardown
|
|
147
|
+
RepositoryHelper.destroy_repo
|
|
148
|
+
super
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def test_sync_repo
|
|
152
|
+
RepositoryHelper.create_repo
|
|
153
|
+
response = @resource.sync(RepositoryHelper.repo_id)
|
|
154
|
+
RepositoryHelper.task = response[0]
|
|
155
|
+
|
|
156
|
+
assert response.code == 202
|
|
157
|
+
assert response.length == 1
|
|
158
|
+
assert response[0]["tags"].include?('pulp:action:sync')
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def test_sync_repo_with_yum_importer
|
|
162
|
+
RepositoryHelper.create_repo(:importer => true)
|
|
163
|
+
response = @resource.sync(RepositoryHelper.repo_id)
|
|
164
|
+
RepositoryHelper.task = response.first
|
|
165
|
+
|
|
166
|
+
assert response.code == 202
|
|
167
|
+
assert response.length == 1
|
|
168
|
+
assert response.first["tags"].include?('pulp:action:sync')
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
=end
|
|
172
|
+
|
|
173
|
+
class TestPulpRepositoryClone < MiniTest::Unit::TestCase
|
|
174
|
+
include TestPulpRepositoryBase
|
|
175
|
+
|
|
176
|
+
def setup
|
|
177
|
+
super
|
|
178
|
+
@clone_name = RepositoryHelper.repo_id + "_clone"
|
|
179
|
+
RepositoryHelper.destroy_repo(@clone_name)
|
|
180
|
+
RepositoryHelper.destroy_repo
|
|
181
|
+
RepositoryHelper.create_and_sync_repo(:importer => true)
|
|
182
|
+
@extension.create_with_importer(@clone_name, "yum_importer", {})
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def teardown
|
|
186
|
+
RepositoryHelper.destroy_repo(@clone_name)
|
|
187
|
+
RepositoryHelper.destroy_repo
|
|
188
|
+
super
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def test_unit_copy
|
|
192
|
+
response = @resource.unit_copy(@clone_name, RepositoryHelper.repo_id)
|
|
193
|
+
RepositoryHelper.task = response
|
|
194
|
+
assert response.code == 202
|
|
195
|
+
assert response['tags'].include?('pulp:action:associate')
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
=begin
|
|
202
|
+
|
|
203
|
+
def test_discovery
|
|
204
|
+
response = @resource.start_discovery(RepositoryHelper.repo_url, 'yum')
|
|
205
|
+
assert response.length > 0
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
def test_all
|
|
209
|
+
response = @resource.all()
|
|
210
|
+
assert response.length > 0
|
|
211
|
+
assert response.select { |r| r["name"] == RepositoryHelper.repo_id }.length > 0
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
def test_update_schedule
|
|
215
|
+
response = @resource.update_schedule(RepositoryHelper.repo_id, "R1/" << Time.now.advance(:years => 1).iso8601 << "/P1D")
|
|
216
|
+
assert JSON.parse(response)["id"] == RepositoryHelper.repo_id
|
|
217
|
+
@resource.delete_schedule(RepositoryHelper.repo_id)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def test_delete_schedule
|
|
221
|
+
@resource.update_schedule(RepositoryHelper.repo_id, "R1/" << Time.now.advance(:years => 1).iso8601 << "/P1D")
|
|
222
|
+
response = @resource.delete_schedule(RepositoryHelper.repo_id)
|
|
223
|
+
assert JSON.parse(response)["id"] == RepositoryHelper.repo_id
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
def test_add_filters
|
|
227
|
+
response = @resource.add_filters(RepositoryHelper.repo_id, [FilterHelper.filter_id])
|
|
228
|
+
assert response == "true"
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
def test_remove_filters
|
|
232
|
+
response = @resource.remove_filters(RepositoryHelper.repo_id, [FilterHelper.filter_id])
|
|
233
|
+
assert response == "true"
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def test_destroy
|
|
237
|
+
response = @resource.destroy(RepositoryHelper.repo_id)
|
|
238
|
+
assert response == 202
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
class TestPulpRepositoryRequiresSync < MiniTest::Unit::TestCase
|
|
244
|
+
include TestPulpRepositoryBase
|
|
245
|
+
|
|
246
|
+
def self.before_suite
|
|
247
|
+
RepositoryHelper.create_and_sync_repo
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
def self.after_suite
|
|
251
|
+
RepositoryHelper.destroy_repo
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def test_packages
|
|
255
|
+
response = @resource.packages(RepositoryHelper.repo_id)
|
|
256
|
+
assert response.length > 0
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
def test_packages_by_name
|
|
260
|
+
response = @resource.packages_by_name(RepositoryHelper.repo_id, "cheetah")
|
|
261
|
+
assert response.length > 0
|
|
262
|
+
assert response.select { |r| r["name"] == "cheetah" }.length > 0
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def test_packages_by_nvre
|
|
266
|
+
response = @resource.packages_by_nvre(RepositoryHelper.repo_id, "cheetah", "0.3", "0.8", "")
|
|
267
|
+
assert response.length > 0
|
|
268
|
+
assert response.select { |r| r["name"] == "cheetah" }.length > 0
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
def test_errata
|
|
272
|
+
response = @resource.errata(RepositoryHelper.repo_id)
|
|
273
|
+
assert response.length > 0
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
def test_errata_with_filter
|
|
277
|
+
response = @resource.errata(RepositoryHelper.repo_id, { :type => 'security' })
|
|
278
|
+
assert response.length > 0
|
|
279
|
+
assert response.select { |errata| errata['id'] == "RHEA-2010:0002" }.length > 0
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
def test_distributions
|
|
283
|
+
response = @resource.distributions(RepositoryHelper.repo_id)
|
|
284
|
+
assert response.kind_of?(Array)
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
def test_sync_history
|
|
288
|
+
response = @resource.sync_history(RepositoryHelper.repo_id)
|
|
289
|
+
assert response.length > 0
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
def test_add_packages
|
|
293
|
+
response = @resource.add_packages(RepositoryHelper.repo_id, [])
|
|
294
|
+
assert response == "[[], 0]"
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
def test_add_errata
|
|
298
|
+
response = @resource.add_errata(RepositoryHelper.repo_id, ["RHEA-2010:0002"])
|
|
299
|
+
assert response == "[]"
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
def test_add_distribution
|
|
303
|
+
response = @resource.add_distribution(RepositoryHelper.repo_id, "ks-Test Family-TestVariant-16-x86_64")
|
|
304
|
+
assert response == "true"
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
=end
|