@@ -403,10 +403,16 class Repository < ActiveRecord::Base | |||
|
403 | 403 | |
|
404 | 404 | private |
|
405 | 405 | |
|
406 | # Deletes repository data | |
|
406 | 407 | def clear_changesets |
|
407 | cs, ch, ci = Changeset.table_name, Change.table_name, "#{table_name_prefix}changesets_issues#{table_name_suffix}" | |
|
408 | cs = Changeset.table_name | |
|
409 | ch = Change.table_name | |
|
410 | ci = "#{table_name_prefix}changesets_issues#{table_name_suffix}" | |
|
411 | cp = "#{table_name_prefix}changeset_parents#{table_name_suffix}" | |
|
412 | ||
|
408 | 413 | connection.delete("DELETE FROM #{ch} WHERE #{ch}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") |
|
409 | 414 | connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") |
|
415 | connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") | |
|
410 | 416 | connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}") |
|
411 | 417 | end |
|
412 | 418 | end |
@@ -74,6 +74,15 class RepositoryTest < ActiveSupport::TestCase | |||
|
74 | 74 | end |
|
75 | 75 | end |
|
76 | 76 | |
|
77 | def test_destroy_should_delete_parents_associations | |
|
78 | changeset = Changeset.find(102) | |
|
79 | changeset.parents = Changeset.find_all_by_id([100, 101]) | |
|
80 | ||
|
81 | assert_difference 'Changeset.connection.select_all("select * from changeset_parents").size', -2 do | |
|
82 | Repository.find(10).destroy | |
|
83 | end | |
|
84 | end | |
|
85 | ||
|
77 | 86 | def test_should_not_create_with_disabled_scm |
|
78 | 87 | # disable Subversion |
|
79 | 88 | with_settings :enabled_scm => ['Darcs', 'Git'] do |
General Comments 0
You need to be logged in to leave comments.
Login now