studio_api 3.1.0 → 3.1.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 +6 -0
- data/Gemfile +8 -0
- data/Rakefile +3 -43
- data/VERSION +1 -1
- data/lib/studio_api/generic_request.rb +4 -4
- data/lib/studio_api/running_build.rb +19 -0
- data/rubygem-studio_api.changes +98 -0
- data/rubygem-studio_api.spec.template +89 -0
- data/test/appliance_test.rb +198 -204
- data/test/build_test.rb +25 -28
- data/test/connection_test.rb +10 -10
- data/test/file_test.rb +28 -31
- data/test/gallery_test.rb +16 -26
- data/test/generic_request_test.rb +28 -32
- data/test/repository_test.rb +23 -27
- data/test/resource_test.rb +1 -9
- data/test/responses/api_version.xml +1 -0
- data/test/responses/running_build_image_already_exists.xml +4 -0
- data/test/responses/software_fake_response.xml +9 -0
- data/test/rpm_test.rb +30 -36
- data/test/running_build_test.rb +38 -30
- data/test/template_set_test.rb +9 -20
- data/test/test_helper.rb +25 -0
- data/test/testdrive_test.rb +12 -25
- metadata +49 -21
data/test/build_test.rb
CHANGED
@@ -1,45 +1,42 @@
|
|
1
|
-
require '
|
2
|
-
require 'active_support'
|
3
|
-
require 'active_resource/http_mock'
|
4
|
-
require 'mocha'
|
5
|
-
require 'test/unit'
|
6
|
-
$:.unshift File.join( File.dirname(__FILE__), '..', 'lib')
|
7
|
-
require 'studio_api/build'
|
8
|
-
require 'studio_api/connection'
|
1
|
+
require 'test_helper'
|
9
2
|
|
10
3
|
class BuildTest < Test::Unit::TestCase
|
11
|
-
BUILD_ID = 509559
|
12
|
-
APPLIANCE_ID = 269186
|
13
|
-
|
14
|
-
def respond_load name
|
15
|
-
IO.read(File.join(File.dirname(__FILE__), "responses", name))
|
16
|
-
end
|
17
4
|
|
18
5
|
def setup
|
19
|
-
@
|
20
|
-
|
21
|
-
|
22
|
-
builds_out = respond_load "builds.xml"
|
23
|
-
build_out = respond_load "build.xml"
|
6
|
+
@build_id = 509559
|
7
|
+
@appliance_id = 269186
|
24
8
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
9
|
+
FakeWeb.clean_registry
|
10
|
+
FakeWeb.allow_net_connect = false
|
11
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
12
|
+
StudioApi::Build.studio_connection = @connection
|
13
|
+
end
|
14
|
+
|
15
|
+
def teardown
|
16
|
+
FakeWeb.allow_net_connect = false
|
30
17
|
end
|
31
18
|
|
32
19
|
def test_find
|
33
|
-
|
20
|
+
register_fake_response_from_file :get, "/api/builds?appliance_id=#{@appliance_id}",
|
21
|
+
'builds.xml'
|
22
|
+
res = StudioApi::Build.find :all, :params => {:appliance_id => @appliance_id}
|
34
23
|
assert_equal 1, res.size
|
35
|
-
|
24
|
+
|
25
|
+
register_fake_response_from_file :get, "/api/builds/#{@build_id}",
|
26
|
+
'build.xml'
|
27
|
+
res = StudioApi::Build.find @build_id
|
36
28
|
assert_equal "true", res.expired
|
37
29
|
end
|
38
30
|
|
39
31
|
def test_delete
|
40
|
-
|
32
|
+
register_fake_response_from_file :get, "/api/builds/#{@build_id}",
|
33
|
+
'build.xml'
|
34
|
+
register_fake_response_from_file :delete, "/api/builds/#{@build_id}",
|
35
|
+
'build.xml'
|
36
|
+
|
37
|
+
build = StudioApi::Build.find @build_id
|
41
38
|
assert build.destroy
|
42
|
-
assert StudioApi::Build.delete
|
39
|
+
assert StudioApi::Build.delete @build_id
|
43
40
|
end
|
44
41
|
|
45
42
|
end
|
data/test/connection_test.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
require
|
2
|
-
$:.unshift File.join( File.dirname(__FILE__),'..','lib')
|
3
|
-
require 'studio_api/connection'
|
4
|
-
require 'studio_api/generic_request'
|
5
|
-
|
6
|
-
require 'mocha'
|
7
|
-
require 'test/unit'
|
1
|
+
require 'test_helper'
|
8
2
|
|
9
3
|
class ConnectionTest < Test::Unit::TestCase
|
10
4
|
def setup
|
11
|
-
|
5
|
+
FakeWeb.clean_registry
|
6
|
+
FakeWeb.allow_net_connect = false
|
7
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
FakeWeb.allow_net_connect = false
|
12
12
|
end
|
13
13
|
|
14
|
-
FAKE_API_VERSION_RESPONSE = "<version>1.0</version>"
|
15
14
|
def test_api_version
|
16
|
-
|
15
|
+
register_fake_response_from_file :get, "/api/api_version",
|
16
|
+
'api_version.xml'
|
17
17
|
assert_equal "1.0",@connection.api_version
|
18
18
|
@connection.api_version #test caching, if it again call, then mocha raise exception
|
19
19
|
end
|
data/test/file_test.rb
CHANGED
@@ -1,52 +1,49 @@
|
|
1
|
-
require '
|
2
|
-
require 'active_support'
|
3
|
-
$:.unshift File.join( File.dirname(__FILE__),'..','lib')
|
4
|
-
require 'studio_api/file'
|
5
|
-
require 'studio_api/connection'
|
6
|
-
|
7
|
-
require 'active_resource/http_mock'
|
8
|
-
require 'mocha'
|
9
|
-
require 'test/unit'
|
1
|
+
require 'test_helper'
|
10
2
|
|
11
3
|
#FileTest cause collistion of names
|
12
4
|
class File1Test < Test::Unit::TestCase
|
13
|
-
APPLIANCE_ID=488
|
14
|
-
FILE_ID = 1234765
|
15
|
-
|
16
|
-
def respond_load name
|
17
|
-
IO.read(File.join(File.dirname(__FILE__),"responses",name))
|
18
|
-
end
|
19
5
|
|
20
6
|
def setup
|
21
|
-
@
|
7
|
+
@appliance_id=488
|
8
|
+
@file_id = 1234765
|
9
|
+
|
10
|
+
FakeWeb.clean_registry
|
11
|
+
FakeWeb.allow_net_connect = false
|
12
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
22
13
|
StudioApi::File.studio_connection = @connection
|
23
|
-
files_out = respond_load "files.xml"
|
24
|
-
file_out = respond_load "file.xml"
|
25
|
-
ActiveResource::HttpMock.respond_to do |mock|
|
26
|
-
mock.get "/files?appliance_id=#{APPLIANCE_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"},files_out,200
|
27
|
-
mock.get "/files/#{FILE_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"},file_out,200
|
28
|
-
mock.delete "/files/#{FILE_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"},file_out,200
|
29
|
-
mock.put "/files/#{FILE_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"},file_out,200
|
30
|
-
end
|
31
14
|
end
|
32
15
|
|
33
16
|
def test_find
|
34
|
-
|
17
|
+
register_fake_response_from_file :get, "/api/files?appliance_id=#{@appliance_id}",
|
18
|
+
'files.xml'
|
19
|
+
res = StudioApi::File.find :all, :params => { :appliance_id => @appliance_id }
|
35
20
|
assert_equal 1, res.size
|
36
21
|
assert_equal "http://susestudio.com/file/download/214486/1234765", res[0].download_url
|
37
|
-
|
22
|
+
|
23
|
+
register_fake_response_from_file :get, "/api/files/#{@file_id}",
|
24
|
+
'file.xml'
|
25
|
+
res = StudioApi::File.find @file_id
|
38
26
|
assert_equal "http://susestudio.com/file/download/214486/1234765", res.download_url
|
39
27
|
end
|
40
28
|
|
41
29
|
def test_delete
|
42
|
-
|
43
|
-
|
30
|
+
register_fake_response_from_file :get, "/api/files/#{@file_id}",
|
31
|
+
'file.xml'
|
32
|
+
register_fake_response_from_file :delete, "/api/files/#{@file_id}",
|
33
|
+
'file.xml'
|
34
|
+
assert StudioApi::File.find(@file_id).destroy
|
35
|
+
assert StudioApi::File.delete @file_id #different way
|
44
36
|
end
|
45
37
|
|
46
38
|
def test_update
|
47
|
-
|
48
|
-
|
49
|
-
|
39
|
+
register_fake_response_from_file :get, "/api/files/#{@file_id}",
|
40
|
+
'file.xml'
|
41
|
+
register_fake_response_from_file :put, "/api/files/#{@file_id}",
|
42
|
+
'file.xml'
|
43
|
+
|
44
|
+
f = StudioApi::File.find(@file_id)
|
45
|
+
f.path = "/tmp"
|
46
|
+
assert f.save
|
50
47
|
end
|
51
48
|
end
|
52
49
|
|
data/test/gallery_test.rb
CHANGED
@@ -1,48 +1,38 @@
|
|
1
|
-
require '
|
2
|
-
require 'active_support'
|
3
|
-
$:.unshift File.join( File.dirname(__FILE__),'..','lib')
|
4
|
-
require 'studio_api/gallery'
|
5
|
-
require 'studio_api/connection'
|
6
|
-
require 'studio_api/generic_request'
|
7
|
-
require 'studio_api/util'
|
8
|
-
require 'active_resource/http_mock'
|
9
|
-
require 'mocha'
|
10
|
-
require 'test/unit'
|
1
|
+
require 'test_helper'
|
11
2
|
|
12
3
|
class GalleryTest < Test::Unit::TestCase
|
13
|
-
APPLIANCE_ID = 130166
|
14
|
-
APPL_VERSION = "0.1.1"
|
15
|
-
def respond_load name
|
16
|
-
IO.read(File.join(File.dirname(__FILE__),"responses",name))
|
17
|
-
end
|
18
|
-
|
19
4
|
def setup
|
20
|
-
@
|
5
|
+
@appliance_id = 130166
|
6
|
+
@appliance_version = "0.1.1"
|
7
|
+
|
8
|
+
FakeWeb.clean_registry
|
9
|
+
FakeWeb.allow_net_connect = false
|
10
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
21
11
|
StudioApi::Util.configure_studio_connection @connection
|
22
12
|
end
|
23
13
|
|
24
14
|
def teardown
|
25
|
-
|
15
|
+
FakeWeb.allow_net_connect = false
|
26
16
|
end
|
27
17
|
|
28
18
|
def test_find
|
29
|
-
|
30
|
-
|
19
|
+
register_fake_response_from_file :get, "/api/gallery/appliances?popular&per_page=10",
|
20
|
+
'gallery.xml'
|
31
21
|
out = StudioApi::Gallery.find_appliance :popular, :per_page => 10
|
32
22
|
assert_equal 10, out[:appliances].size
|
33
23
|
end
|
34
24
|
|
35
25
|
def test_appliance
|
36
|
-
|
37
|
-
|
38
|
-
out = StudioApi::Gallery.appliance
|
26
|
+
register_fake_response_from_file :get, "/api/gallery/appliances/#{@appliance_id}/version/#{@appliance_version}",
|
27
|
+
'gallery_appliance.xml'
|
28
|
+
out = StudioApi::Gallery.appliance @appliance_id, @appliance_version
|
39
29
|
assert out
|
40
30
|
end
|
41
31
|
|
42
32
|
def test_gallery_appliance_versions
|
43
|
-
|
44
|
-
|
45
|
-
out = StudioApi::Gallery::Appliance.new(:id =>
|
33
|
+
register_fake_response_from_file :get, "/api/gallery/appliances/#{@appliance_id}/versions",
|
34
|
+
'versions.xml'
|
35
|
+
out = StudioApi::Gallery::Appliance.new(:id => @appliance_id).versions
|
46
36
|
assert_equal 6,out.size
|
47
37
|
end
|
48
38
|
|
@@ -1,50 +1,44 @@
|
|
1
|
-
require '
|
2
|
-
require 'mocha'
|
3
|
-
require 'test/unit'
|
4
|
-
$:.unshift File.join( File.dirname(__FILE__),'..','lib')
|
5
|
-
require 'studio_api/generic_request'
|
6
|
-
require 'studio_api/connection'
|
7
|
-
require 'net/http'
|
1
|
+
require 'test_helper'
|
8
2
|
|
9
3
|
class GenericRequestTest < Test::Unit::TestCase
|
10
4
|
def setup
|
11
|
-
|
12
|
-
|
5
|
+
FakeWeb.clean_registry
|
6
|
+
FakeWeb.allow_net_connect = false
|
7
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
8
|
+
StudioApi::Build.studio_connection = @connection
|
9
|
+
|
10
|
+
@test_response = "Test response"
|
13
11
|
end
|
14
12
|
|
15
13
|
def teardown
|
16
|
-
|
14
|
+
FakeWeb.allow_net_connect = false
|
17
15
|
end
|
18
16
|
|
19
|
-
ERROR_RESPONSE = <<EOF
|
20
|
-
<error>
|
21
|
-
<code>invalid_base_system</code>
|
22
|
-
<message>Invalid base system.</message>
|
23
|
-
</error>
|
24
|
-
EOF
|
25
17
|
def test_get
|
26
|
-
|
27
|
-
StudioApi::GenericRequest.
|
28
|
-
assert_equal test_response, StudioApi::GenericRequest.new(@connection).get("test")
|
18
|
+
register_fake_response :get, "/api/test", @test_response
|
19
|
+
assert_equal @test_response, StudioApi::GenericRequest.new(@connection).get("test")
|
29
20
|
end
|
30
21
|
|
31
22
|
def test_post
|
32
|
-
|
33
|
-
|
34
|
-
|
23
|
+
register_fake_response :post, "/api/test", @test_response
|
24
|
+
assert_equal @test_response,
|
25
|
+
StudioApi::GenericRequest.new(@connection).post("test",:file => "/dev/zero")
|
35
26
|
end
|
36
27
|
|
37
28
|
def test_error_response
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
29
|
+
error_response = <<-EOF
|
30
|
+
<error>
|
31
|
+
<code>invalid_base_system</code>
|
32
|
+
<message>Invalid base system.</message>
|
33
|
+
</error>
|
34
|
+
EOF
|
35
|
+
url = "http://#{@@username}:#{@@password}@localhost/api/test"
|
36
|
+
FakeWeb.register_uri(:get, url, :body => error_response,
|
37
|
+
:status => ["503", "Unavailable"])
|
38
|
+
|
39
|
+
assert_raises(ActiveResource::ServerError) do
|
40
|
+
StudioApi::GenericRequest.new(@connection).get("test")
|
46
41
|
end
|
47
|
-
assert_raises(ActiveResource::ServerError) { rq.get("test") }
|
48
42
|
end
|
49
43
|
|
50
44
|
def test_mime_type
|
@@ -56,7 +50,9 @@ EOF
|
|
56
50
|
end
|
57
51
|
|
58
52
|
def test_ssl_settings
|
59
|
-
@connection = StudioApi::Connection.new("test","test","https://localhost"
|
53
|
+
@connection = StudioApi::Connection.new("test","test","https://localhost",
|
54
|
+
:ssl => { :verify_mode => OpenSSL::SSL::VERIFY_PEER,
|
55
|
+
:ca_path => "/dev/null" })
|
60
56
|
rq = StudioApi::GenericRequest.new @connection
|
61
57
|
http_var = rq.instance_variable_get("@http")
|
62
58
|
assert http_var.use_ssl?
|
data/test/repository_test.rb
CHANGED
@@ -1,42 +1,38 @@
|
|
1
|
-
require '
|
2
|
-
require 'active_support'
|
3
|
-
$:.unshift File.join( File.dirname(__FILE__),'..','lib')
|
4
|
-
require 'studio_api/repository'
|
5
|
-
require 'studio_api/appliance'
|
6
|
-
require 'studio_api/connection'
|
7
|
-
|
8
|
-
require 'active_resource/http_mock'
|
9
|
-
require 'mocha'
|
10
|
-
require 'test/unit'
|
1
|
+
require 'test_helper'
|
11
2
|
|
12
3
|
class RepositoryTest < Test::Unit::TestCase
|
13
|
-
REPOSITORY_ID = 6343
|
14
|
-
def respond_load name
|
15
|
-
IO.read(File.join(File.dirname(__FILE__),"responses",name))
|
16
|
-
end
|
17
4
|
def setup
|
18
|
-
@
|
5
|
+
@repository_id = 6343
|
6
|
+
|
7
|
+
FakeWeb.clean_registry
|
8
|
+
FakeWeb.allow_net_connect = false
|
9
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
19
10
|
StudioApi::Repository.studio_connection = @connection
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
mock.post "/repositories?name=test&url=http%3A%2F%2Ftest", {"Authorization"=>"Basic dGVzdDp0ZXN0"},repository_out,200
|
25
|
-
mock.get "/repositories/#{REPOSITORY_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"},repository_out,200
|
26
|
-
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def teardown
|
14
|
+
FakeWeb.allow_net_connect = false
|
27
15
|
end
|
28
16
|
|
29
17
|
def test_find
|
18
|
+
register_fake_response_from_file :get, "/api/repositories?base_system=sle11sp1",
|
19
|
+
'repositories.xml'
|
20
|
+
|
30
21
|
res = StudioApi::Repository.find :all, :params => {:base_system => "sle11sp1"}
|
31
22
|
assert_equal 5,res.size
|
32
|
-
|
33
|
-
|
23
|
+
|
24
|
+
register_fake_response_from_file :get, "/api/repositories/#{@repository_id}",
|
25
|
+
'repository.xml'
|
26
|
+
res = StudioApi::Repository.find @repository_id
|
27
|
+
assert_equal @repository_id, res.id.to_i
|
34
28
|
end
|
35
29
|
|
36
30
|
def test_import
|
37
|
-
|
38
|
-
|
39
|
-
|
31
|
+
register_fake_response_from_file :post, "/api/repositories?name=test&url=http%3A%2F%2Ftest",
|
32
|
+
'repository.xml'
|
33
|
+
res = StudioApi::Repository.import "http://test","test"
|
34
|
+
assert res
|
35
|
+
assert_equal @repository_id, res.id.to_i
|
40
36
|
end
|
41
37
|
end
|
42
38
|
|
data/test/resource_test.rb
CHANGED
@@ -1,12 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'active_support'
|
3
|
-
$:.unshift File.join( File.dirname(__FILE__),'..','lib')
|
4
|
-
require 'studio_api/studio_resource'
|
5
|
-
require 'studio_api/connection'
|
6
|
-
|
7
|
-
require 'active_resource/http_mock'
|
8
|
-
require 'mocha'
|
9
|
-
require 'test/unit'
|
1
|
+
require 'test_helper'
|
10
2
|
|
11
3
|
class MyTest < ActiveResource::Base
|
12
4
|
extend StudioApi::StudioResource
|
@@ -0,0 +1 @@
|
|
1
|
+
<version>1.0</version>
|
data/test/rpm_test.rb
CHANGED
@@ -1,59 +1,53 @@
|
|
1
|
-
require '
|
2
|
-
require 'active_support'
|
3
|
-
require 'active_resource/http_mock'
|
4
|
-
require 'mocha'
|
5
|
-
require 'test/unit'
|
6
|
-
require 'tempfile'
|
7
|
-
$:.unshift File.join( File.dirname(__FILE__), '..', 'lib')
|
8
|
-
require 'studio_api/rpm'
|
9
|
-
require 'studio_api/connection'
|
10
|
-
require 'studio_api/generic_request'
|
1
|
+
require 'test_helper'
|
11
2
|
|
12
3
|
class RpmTest < Test::Unit::TestCase
|
13
|
-
APPLIANCE_ID = 269186
|
14
|
-
RPM_ID = 27653
|
15
|
-
|
16
|
-
def respond_load name
|
17
|
-
IO.read(File.join(File.dirname(__FILE__), "responses", name))
|
18
|
-
end
|
19
4
|
|
20
5
|
def setup
|
21
|
-
@
|
22
|
-
|
6
|
+
@appliance_id = 269186
|
7
|
+
@rpm_id = 27653
|
8
|
+
@rpm_data = "My lovely testing string\n Doodla da da da nicht"
|
23
9
|
|
24
|
-
|
25
|
-
|
10
|
+
FakeWeb.clean_registry
|
11
|
+
FakeWeb.allow_net_connect = false
|
12
|
+
@connection = StudioApi::Connection.new(@@username, @@password,"http://localhost/api/")
|
13
|
+
StudioApi::Rpm.studio_connection = @connection
|
14
|
+
end
|
26
15
|
|
27
|
-
|
28
|
-
|
29
|
-
mock.get "/rpms/#{RPM_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"}, rpm_out, 200
|
30
|
-
mock.delete "/rpms/#{RPM_ID}", {"Authorization"=>"Basic dGVzdDp0ZXN0"}, rpm_out, 200
|
31
|
-
end
|
16
|
+
def teardown
|
17
|
+
FakeWeb.allow_net_connect = false
|
32
18
|
end
|
33
19
|
|
34
20
|
def test_find
|
21
|
+
register_fake_response_from_file :get, "/api/rpms?base_system=sle11_sp1",
|
22
|
+
'rpms.xml'
|
35
23
|
res = StudioApi::Rpm.find :all, :params => {:base_system => "sle11_sp1"}
|
36
24
|
assert_equal 48, res.size
|
37
|
-
|
25
|
+
|
26
|
+
register_fake_response_from_file :get, "/api/rpms/#{@rpm_id}",
|
27
|
+
'rpm.xml'
|
28
|
+
res = StudioApi::Rpm.find @rpm_id
|
38
29
|
assert "false", res.archive
|
39
30
|
end
|
40
31
|
|
41
32
|
def test_delete
|
42
|
-
|
33
|
+
register_fake_response_from_file :get, "/api/rpms/#{@rpm_id}",
|
34
|
+
'rpm.xml'
|
35
|
+
register_fake_response_from_file :delete, "/api/rpms/#{@rpm_id}",
|
36
|
+
'rpm.xml'
|
37
|
+
rpm = StudioApi::Rpm.find @rpm_id
|
43
38
|
assert rpm.destroy
|
44
|
-
assert StudioApi::Rpm.delete
|
39
|
+
assert StudioApi::Rpm.delete @rpm_id
|
45
40
|
end
|
46
41
|
|
47
|
-
TEST_STRING = "My lovely testing string\n Doodla da da da nicht"
|
48
42
|
def test_download
|
49
|
-
|
50
|
-
assert_equal
|
43
|
+
register_fake_response :get, "/api/rpms/#{@rpm_id}/data", @rpm_data
|
44
|
+
assert_equal @rpm_data, StudioApi::Rpm.new(:id=> @rpm_id).content
|
51
45
|
end
|
52
46
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
47
|
+
def test_upload
|
48
|
+
register_fake_response_from_file :post, "/api/rpms?base_system=SLE11",
|
49
|
+
'rpm.xml'
|
50
|
+
assert StudioApi::Rpm.upload(@rpm_data, "SLE11")
|
51
|
+
end
|
58
52
|
|
59
53
|
end
|