Skip to content

Commit

Permalink
[api] add test case for adding, editing and removing DoD definitions …
Browse files Browse the repository at this point in the history
…and complete last fix
  • Loading branch information
adrianschroeter committed Jun 5, 2013
1 parent fd338ba commit 1d70063
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/api/app/models/project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -528,10 +528,11 @@ def update_from_xml(xmlhash, force=nil)
cur.save!
dlcache.delete dl['arch']
end

dlcache.each do |arch, object|
logger.debug "remove download entry #{arch}"
object.destroy
self.downloads.destroy object
self.updated_at = Time.now
end

#--- update repositories ---#
Expand Down
51 changes: 51 additions & 0 deletions src/api/test/functional/source_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,57 @@ def test_put_project_meta_sourceaccess_protected_project
do_change_project_meta_test(prj, resp1, resp2, aresp, match)
end

def test_create_and_remove_download_on_demand_definitions
build_meta="<project name='TEMPORARY:build'><title></title><description/>
<download arch='x86_64' baseurl='http://somewhere' mtype='rpm-md' metafile='somefile'/>
<repository name='repo1'>
<path project='BaseDistro' repository='BaseDistro_repo'/>
<arch>x86_64</arch>
</repository>
</project>"

# create them
prepare_request_with_user "king", "sunflower"
put url_for(:controller => :source, :action => :project_meta, :project => "TEMPORARY:build"), build_meta
assert_response :success
get "/source/TEMPORARY:build/_meta"
assert_response :success
assert_xml_tag :parent => {:tag => "project"},
:tag => 'download', :attributes => {:arch => 'x86_64', :baseurl => 'http://somewhere', :mtype => "rpm-md", :metafile => "somefile"}

# change download definition
build_meta="<project name='TEMPORARY:build'><title></title><description/>
<download arch='x86_64' baseurl='http://somewhereelse' mtype='yast' metafile='someotherfile'/>
<repository name='repo1'>
<path project='BaseDistro' repository='BaseDistro_repo'/>
<arch>x86_64</arch>
</repository>
</project>"
put url_for(:controller => :source, :action => :project_meta, :project => "TEMPORARY:build"), build_meta
assert_response :success
get "/source/TEMPORARY:build/_meta"
assert_response :success
assert_xml_tag :parent => {:tag => "project"},
:tag => 'download', :attributes => {:arch => 'x86_64', :baseurl => 'http://somewhereelse', :mtype => "yast", :metafile => "someotherfile"}

# delete download definition
build_meta="<project name='TEMPORARY:build'><title></title><description/>
<repository name='repo1'>
<path project='BaseDistro' repository='BaseDistro_repo'/>
<arch>x86_64</arch>
</repository>
</project>"
put url_for(:controller => :source, :action => :project_meta, :project => "TEMPORARY:build"), build_meta
assert_response :success
get "/source/TEMPORARY:build/_meta"
assert_response :success
assert_no_xml_tag :tag => "download"

# cleanup
delete "/source/TEMPORARY:build"
assert_response :success
end

def test_create_and_remove_release_targets
rel_target_meta="<project name='TEMPORARY:rel_target'><title></title><description/>
<repository name='rel_target1'>
Expand Down

0 comments on commit 1d70063

Please sign in to comment.