Skip to content

Commit

Permalink
[api] make pretty XML in assert_tag for easier debugging
Browse files Browse the repository at this point in the history
  • Loading branch information
coolo committed Mar 22, 2012
1 parent 21ab0f3 commit 41068c5
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
24 changes: 12 additions & 12 deletions src/api/test/functional/maintenance_test.rb
Expand Up @@ -840,7 +840,7 @@ def test_create_maintenance_project_and_release_packages
pi.add_element "releasetarget", { :project => "home:tom" } # invalid target
put "/source/#{incidentProject}/patchinfo/_patchinfo", pi.dump_xml
assert_response 404
assert_tag :tag => "status", :attributes => { :code => "releasetarget_not_found" }
assert_xml_tag :tag => "status", :attributes => { :code => "releasetarget_not_found" }
get "/source/#{incidentProject}/patchinfo/_meta"
assert_xml_tag( :parent => {:tag => "build"}, :tag => "enable", :attributes => { :repository => nil, :arch => nil} )
assert_no_xml_tag( :parent => { :tag => "publish" }, :tag => "enable", :attributes => { :repository => nil, :arch => nil} ) # not published due to access disable
Expand Down Expand Up @@ -965,7 +965,7 @@ def test_create_maintenance_project_and_release_packages
wait_for_publisher()
get "/build/#{incidentProject}/_result"
assert_response :success
assert_tag :parent => { :tag => "result", :attributes => { :repository=>"BaseDistro2.0_LinkedUpdateProject", :arch=>"i586", :state=>"unpublished"} },
assert_xml_tag :parent => { :tag => "result", :attributes => { :repository=>"BaseDistro2.0_LinkedUpdateProject", :arch=>"i586", :state=>"unpublished"} },
:tag => "status", :attributes => { :package=>"patchinfo", :code=>"failed" }
# fix it again
pi.delete_element 'binary'
Expand Down Expand Up @@ -1054,12 +1054,12 @@ def test_create_maintenance_project_and_release_packages
# validate result
get "/source/#{incidentProject}/_meta"
assert_response :success
assert_tag( :parent => {:tag => "lock"}, :tag => "enable" ) # still locked
assert_tag( :parent => {:tag => "publish"}, :tag => "disable", :content => nil )
assert_no_tag( :parent => {:tag => "access"}, :tag => "disable", :content => nil ) # got published, so access got enabled
assert_xml_tag( :parent => {:tag => "lock"}, :tag => "enable" ) # still locked
assert_xml_tag( :parent => {:tag => "publish"}, :tag => "disable", :content => nil )
assert_no_xml_tag( :parent => {:tag => "access"}, :tag => "disable", :content => nil ) # got published, so access got enabled
get "/source/#{incidentProject}/patchinfo/_meta"
assert_response :success
assert_no_tag( :parent => {:tag => "publish"}, :tag => "enable", :content => nil ) # patchinfo stay unpublished, too late now anyway
assert_no_xml_tag( :parent => {:tag => "publish"}, :tag => "enable", :content => nil ) # patchinfo stay unpublished, too late now anyway
get "/source/BaseDistro2.0:LinkedUpdateProject/pack2/_link"
assert_response :success
assert_xml_tag :tag => "link", :attributes => { :project => nil, :package => "pack2.#{incidentID}" }
Expand Down Expand Up @@ -1155,10 +1155,10 @@ def test_create_maintenance_project_and_release_packages
assert_response :success
get "/source/home:king:branches:BaseDistro2.0:LinkedUpdateProject/pack2/_link"
assert_response :success
assert_tag :tag => 'link', :attributes => { :project => "BaseDistro2.0:LinkedUpdateProject", :package => nil }
assert_xml_tag :tag => 'link', :attributes => { :project => "BaseDistro2.0:LinkedUpdateProject", :package => nil }
get "/source/home:king:branches:BaseDistro2.0:LinkedUpdateProject/pack2_linked/_link"
assert_response :success
assert_tag :tag => 'link', :attributes => { :project => nil, :package => "pack2" }
assert_xml_tag :tag => 'link', :attributes => { :project => nil, :package => "pack2" }
delete "/source/home:king:branches:BaseDistro2.0:LinkedUpdateProject"
assert_response :success

Expand Down Expand Up @@ -1201,7 +1201,7 @@ def test_create_maintenance_project_and_release_packages
assert_response :success
get "/source/#{incidentProject}/_meta"
assert_response :success
assert_tag :tag => 'releasetarget', :attributes => { :trigger => "maintenance" }
assert_xml_tag :tag => 'releasetarget', :attributes => { :trigger => "maintenance" }

# cleanup
delete "/source/#{incidentProject}"
Expand Down Expand Up @@ -1469,8 +1469,8 @@ def test_try_to_release_without_permissions_source_permissions
# got locked
get "/source/home:tom:test/_meta"
assert_response :success
assert_tag( :parent => { :tag => "lock" }, :tag => "enable" )
assert_no_tag( :parent => { :tag => "lock" }, :tag => "disable" ) # disable got removed
assert_xml_tag( :parent => { :tag => "lock" }, :tag => "enable" )
assert_no_xml_tag( :parent => { :tag => "lock" }, :tag => "disable" ) # disable got removed

# fail ...
post "/request/#{reqid}?cmd=changestate&newstate=accepted"
Expand All @@ -1484,7 +1484,7 @@ def test_try_to_release_without_permissions_source_permissions
# disable lock and cleanup
get "/source/home:tom:test/_meta"
assert_response :success
assert_no_tag( :parent => { :tag => "lock" }, :tag => "enable" )
assert_no_xml_tag( :parent => { :tag => "lock" }, :tag => "enable" )

# cleanup
delete "/source/home:tom:test"
Expand Down
4 changes: 2 additions & 2 deletions src/api/test/functional/source_controller_test.rb
Expand Up @@ -553,7 +553,7 @@ def test_lock_project
# try to unlock without comment
post "/source/home:Iggy", { :cmd => "unlock" }
assert_response 400
assert_tag :tag => "status", :attributes => { :code => "no_comment" }
assert_xml_tag :tag => "status", :attributes => { :code => "no_comment" }

# unlock does not work via meta data anymore
doc.elements["/project/lock"].delete_element "enable"
Expand Down Expand Up @@ -612,7 +612,7 @@ def test_lock_package
# try to unlock without comment
post "/source/home:Iggy/TestLinkPack", { :cmd => "unlock" }
assert_response 400
assert_tag :tag => "status", :attributes => { :code => "no_comment" }
assert_xml_tag :tag => "status", :attributes => { :code => "no_comment" }
# without permissions
prepare_request_with_user "adrian", "so_alone"
post "/source/home:Iggy/TestLinkPack", { :cmd => "unlock", :comment => "BlahFasel" }
Expand Down
8 changes: 4 additions & 4 deletions src/api/test/test_helper.rb
Expand Up @@ -60,13 +60,13 @@ def load_backend_file(path)
def assert_xml_tag(conds)
node = ActiveXML::Base.new(@response.body)
ret = node.find_matching(NodeMatcher::Conditions.new(conds))
assert ret, "expected tag, but no tag found matching #{conds.inspect} in:\n#{@response.body}" unless ret
assert ret, "expected tag, but no tag found matching #{conds.inspect} in:\n#{node.dump_xml}" unless ret
end

def assert_no_xml_tag(conds)
node = ActiveXML::Base.new(@response.body)
ret = node.find_matching(NodeMatcher::Conditions.new(conds))
assert !ret, "expected no tag, but found tag matching #{conds.inspect} in:\n#{@response.body}" if ret
assert !ret, "expected no tag, but found tag matching #{conds.inspect} in:\n#{node.dump_xml}" if ret
end
end
end
Expand All @@ -76,13 +76,13 @@ class TestCase
def assert_xml_tag(data, conds)
node = ActiveXML::Base.new(data)
ret = node.find_matching(NodeMatcher::Conditions.new(conds))
assert ret, "expected tag, but no tag found matching #{conds.inspect} in:\n#{data.inspect}" unless ret
assert ret, "expected tag, but no tag found matching #{conds.inspect} in:\n#{node.dump_xml}" unless ret
end

def assert_no_xml_tag(data, conds)
node = ActiveXML::Base.new(data)
ret = node.find_matching(NodeMatcher::Conditions.new(conds))
assert !ret, "expected no tag, but found tag matching #{conds.inspect} in:\n#{data.inspect}" if ret
assert !ret, "expected no tag, but found tag matching #{conds.inspect} in:\n#{node.dump_xml}" if ret
end

end
Expand Down

0 comments on commit 41068c5

Please sign in to comment.