Skip to content

Commit

Permalink
[api] raise correct error when using same architecture multiple time …
Browse files Browse the repository at this point in the history
…for a repository (no crash)
  • Loading branch information
adrianschroeter committed Aug 9, 2013
1 parent bdd1633 commit 8ac2f98
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/api/app/models/project.rb
Expand Up @@ -576,6 +576,9 @@ def update_from_xml(xmlhash, force=nil)
unless Architecture.archcache.has_key? arch
raise SaveError, "unknown architecture: '#{arch}'"
end
if current_repo.repository_architectures.where( architecture: Architecture.archcache[arch] )
raise SaveError, "double use of architecture: '#{arch}'"
end
a = current_repo.repository_architectures.new :architecture => Architecture.archcache[arch]
a.position = position
position += 1
Expand Down
9 changes: 9 additions & 0 deletions src/api/test/functional/source_controller_test.rb
Expand Up @@ -1088,6 +1088,15 @@ def test_full_remove_repository_dependencies
assert_response :success
end

def test_fail_correctly_with_broken_repo_config
prepare_request_with_user "tom", "thunder"
# double definition of i586 architecture
put "/source/home:tom:projectA/_meta", "<project name='home:tom:projectA'> <title/> <description/> <repository name='repoA'> <arch>i586</arch> <arch>i586</arch> </repository> </project>"
assert_response 400
assert_xml_tag( :tag => "status", :attributes => { :code => "project_save_error"} )
assert_match /double use of architecture: 'i586'/, @response.body
end

def test_delete_project_with_repository_dependencies
prepare_request_with_user "tom", "thunder"
put "/source/home:tom:projectA/_meta", "<project name='home:tom:projectA'> <title/> <description/> <repository name='repoA'> <arch>i586</arch> </repository> </project>"
Expand Down

0 comments on commit 8ac2f98

Please sign in to comment.