Commit 35984ff4f0f9a50db37262dcd9c0f8b809610f2b
1 parent
4e597889
Exists in
master
and in
23 other branches
Speeding up some more tests
Showing
3 changed files
with
39 additions
and
88 deletions
Show diff stats
app/models/category.rb
| ... | ... | @@ -42,11 +42,6 @@ class Category < ActiveRecord::Base |
| 42 | 42 | self.articles.most_commented(limit) |
| 43 | 43 | end |
| 44 | 44 | |
| 45 | - def total_items | |
| 46 | - # FIXME this can be SLOW (??) | |
| 47 | - articles.count + comments.count + enterprises.count + people.count + communities.count + products.count | |
| 48 | - end | |
| 49 | - | |
| 50 | 45 | def display_in_menu? |
| 51 | 46 | display_in_menu |
| 52 | 47 | end | ... | ... |
test/unit/category_test.rb
| ... | ... | @@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/../test_helper' |
| 4 | 4 | class CategoryTest < Test::Unit::TestCase |
| 5 | 5 | |
| 6 | 6 | def setup |
| 7 | - @env = Environment.create!(:name => 'Enviroment for testing') | |
| 7 | + @env = fast_create(Environment) | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | def test_mandatory_field_name |
| ... | ... | @@ -22,13 +22,13 @@ class CategoryTest < Test::Unit::TestCase |
| 22 | 22 | end |
| 23 | 23 | |
| 24 | 24 | def test_relationship_with_environment |
| 25 | - c = Category.create!(:name => 'product category for testing', :environment_id => @env.id) | |
| 25 | + c = build(Category, :environment_id => @env.id) | |
| 26 | 26 | assert_equal @env, c.environment |
| 27 | 27 | end |
| 28 | 28 | |
| 29 | 29 | def test_relation_with_parent |
| 30 | - parent_category = Category.create!(:name => 'parent category for testing', :environment_id => @env.id) | |
| 31 | - c = Category.create!(:name => 'product category for testing', :environment_id => @env.id, :parent_id => parent_category.id) | |
| 30 | + parent_category = fast_create(Category) | |
| 31 | + c = build(Category, :parent_id => parent_category.id) | |
| 32 | 32 | assert_equal parent_category, c.parent |
| 33 | 33 | end |
| 34 | 34 | |
| ... | ... | @@ -98,8 +98,8 @@ class CategoryTest < Test::Unit::TestCase |
| 98 | 98 | end |
| 99 | 99 | |
| 100 | 100 | def test_top_level_for |
| 101 | - cat = Category.create(:name => 'Category for testing', :environment_id => @env.id) | |
| 102 | - sub_cat = Category.create(:name => 'SubCategory for testing', :environment_id => @env.id, :parent_id => cat.id) | |
| 101 | + cat = fast_create(Category, :environment_id => @env.id) | |
| 102 | + sub_cat = fast_create(Category, :environment_id => @env.id, :parent_id => cat.id) | |
| 103 | 103 | |
| 104 | 104 | roots = Category.top_level_for(@env) |
| 105 | 105 | |
| ... | ... | @@ -107,7 +107,7 @@ class CategoryTest < Test::Unit::TestCase |
| 107 | 107 | end |
| 108 | 108 | |
| 109 | 109 | def test_slug |
| 110 | - c = Category.create(:name => 'Category name') | |
| 110 | + c = Category.new(:name => 'Category name') | |
| 111 | 111 | assert_equal 'category-name', c.slug |
| 112 | 112 | end |
| 113 | 113 | |
| ... | ... | @@ -137,41 +137,29 @@ class CategoryTest < Test::Unit::TestCase |
| 137 | 137 | end |
| 138 | 138 | |
| 139 | 139 | def test_should_refuse_to_duplicate_slug_under_the_same_parent |
| 140 | - c1 = Category.create!(:name => 'test category', :environment_id => @env.id) | |
| 140 | + c1 = create(Category, :name => 'test category', :environment_id => @env.id) | |
| 141 | 141 | c2 = Category.new(:name => 'Test: Category', :environment_id => @env.id) |
| 142 | 142 | |
| 143 | 143 | assert !c2.valid? |
| 144 | 144 | assert c2.errors.invalid?(:slug) |
| 145 | - | |
| 146 | 145 | end |
| 147 | 146 | |
| 148 | 147 | should 'be able to duplicated slug in different scope' do |
| 149 | - @env.categories.destroy_all | |
| 148 | + root1 = fast_create(Category, :name => 'root category 1', :environment_id => @env.id) | |
| 149 | + root2 = fast_create(Category, :name => 'root category 2', :environment_id => @env.id) | |
| 150 | + child1 = fast_create(Category, :name => 'test category', :environment_id => @env.id, :parent_id => root1.id) | |
| 150 | 151 | |
| 151 | - root1 = Category.create!(:name => 'root category 1', :environment_id => @env.id) | |
| 152 | - root2 = Category.create!(:name => 'root category 2', :environment_id => @env.id) | |
| 152 | + child2 = Category.new(:name => 'test category', :environment_id => @env.id, :parent => root2) | |
| 153 | + assert child2.valid? | |
| 153 | 154 | |
| 154 | - assert_nothing_raised ActiveRecord::RecordInvalid do | |
| 155 | - Category.create!(:name => 'test category', :environment_id => @env.id, :parent => root1) | |
| 156 | - Category.create!(:name => 'test category', :environment_id => @env.id, :parent => root2) | |
| 157 | - end | |
| 158 | - end | |
| 159 | - | |
| 160 | - should 'be able to duplicated slug in different scope without parent' do | |
| 161 | - @env.categories.destroy_all | |
| 162 | - | |
| 163 | - root1 = Category.create!(:name => 'root category 1', :environment_id => @env.id) | |
| 164 | - | |
| 165 | - assert_nothing_raised ActiveRecord::RecordInvalid do | |
| 166 | - Category.create!(:name => 'test category', :environment_id => @env.id, :parent => root1) | |
| 167 | - Category.create!(:name => 'test category', :environment_id => @env.id, :parent => nil) | |
| 168 | - end | |
| 155 | + newroot = Category.new(:name => 'test category', :environment_id => @env.id, :parent => nil) | |
| 156 | + assert newroot.valid? | |
| 169 | 157 | end |
| 170 | 158 | |
| 171 | 159 | def test_renaming_a_category_should_change_path_of_children |
| 172 | - c1 = Category.create!(:name => 'parent', :environment_id => @env.id) | |
| 173 | - c2 = Category.create!(:name => 'child', :environment_id => @env.id, :parent_id => c1.id) | |
| 174 | - c3 = Category.create!(:name => 'grandchild', :environment_id => @env.id, :parent_id => c2.id) | |
| 160 | + c1 = create(Category, :name => 'parent', :environment_id => @env.id) | |
| 161 | + c2 = create(Category, :name => 'child', :environment_id => @env.id, :parent_id => c1.id) | |
| 162 | + c3 = create(Category, :name => 'grandchild', :environment_id => @env.id, :parent_id => c2.id) | |
| 175 | 163 | |
| 176 | 164 | c1.name = 'parent new name' |
| 177 | 165 | c1.save! |
| ... | ... | @@ -185,7 +173,6 @@ class CategoryTest < Test::Unit::TestCase |
| 185 | 173 | should "limit the possibile display colors" do |
| 186 | 174 | c = Category.new(:name => 'test category', :environment_id => @env.id) |
| 187 | 175 | |
| 188 | - | |
| 189 | 176 | c.display_color = 10 |
| 190 | 177 | c.valid? |
| 191 | 178 | assert c.errors.invalid?(:display_color) |
| ... | ... | @@ -200,10 +187,7 @@ class CategoryTest < Test::Unit::TestCase |
| 200 | 187 | end |
| 201 | 188 | |
| 202 | 189 | should 'avoid duplicated display colors' do |
| 203 | - | |
| 204 | - @env.categories.destroy_all | |
| 205 | - | |
| 206 | - c1 = Category.create!(:name => 'test category', :environment_id => @env.id, :display_color => 1) | |
| 190 | + c1 = fast_create(Category, :name => 'test category', :environment_id => @env.id, :display_color => 1) | |
| 207 | 191 | |
| 208 | 192 | c = Category.new(:name => 'lalala', :environment_id => @env.id) |
| 209 | 193 | c.display_color = 1 |
| ... | ... | @@ -217,9 +201,9 @@ class CategoryTest < Test::Unit::TestCase |
| 217 | 201 | end |
| 218 | 202 | |
| 219 | 203 | should 'be able to get top ancestor' do |
| 220 | - c1 = Category.create!(:name => 'test category', :environment_id => @env.id) | |
| 221 | - c2 = Category.create!(:name => 'test category', :environment_id => @env.id, :parent_id => c1.id) | |
| 222 | - c3 = Category.create!(:name => 'test category', :environment_id => @env.id, :parent_id => c2.id) | |
| 204 | + c1 = fast_create(Category, :name => 'test category', :environment_id => @env.id) | |
| 205 | + c2 = fast_create(Category, :name => 'test category', :environment_id => @env.id, :parent_id => c1.id) | |
| 206 | + c3 = fast_create(Category, :name => 'test category', :environment_id => @env.id, :parent_id => c2.id) | |
| 223 | 207 | |
| 224 | 208 | assert_equal c1, c1.top_ancestor |
| 225 | 209 | assert_equal c1, c2.top_ancestor |
| ... | ... | @@ -227,10 +211,9 @@ class CategoryTest < Test::Unit::TestCase |
| 227 | 211 | end |
| 228 | 212 | |
| 229 | 213 | should 'explode path' do |
| 230 | - c1 = Category.create!(:name => 'parent', :environment_id => @env.id) | |
| 231 | - c2 = Category.create!(:name => 'child', :environment_id => @env.id, :parent_id => c1.id) | |
| 232 | - | |
| 233 | - assert_equal [ 'parent', 'child'], c2.explode_path | |
| 214 | + c1 = Category.new | |
| 215 | + c1.expects(:path).returns("path/to/myself") | |
| 216 | + assert_equal [ 'path', 'to', 'myself'], c1.explode_path | |
| 234 | 217 | end |
| 235 | 218 | |
| 236 | 219 | ################################################################ |
| ... | ... | @@ -301,9 +284,9 @@ class CategoryTest < Test::Unit::TestCase |
| 301 | 284 | |
| 302 | 285 | should 'have enterprises' do |
| 303 | 286 | c = @env.categories.build(:name => 'my category'); c.save! |
| 304 | - ent1 = Enterprise.create!(:identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 287 | + ent1 = fast_create(Enterprise, :identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 305 | 288 | ent1.add_category c |
| 306 | - ent2 = Enterprise.create!(:identifier => 'enterprise_2', :name => 'Enterprise one') | |
| 289 | + ent2 = fast_create(Enterprise, :identifier => 'enterprise_2', :name => 'Enterprise one') | |
| 307 | 290 | ent2.add_category c |
| 308 | 291 | assert_includes c.enterprises, ent1 |
| 309 | 292 | assert_includes c.enterprises, ent2 |
| ... | ... | @@ -320,18 +303,18 @@ class CategoryTest < Test::Unit::TestCase |
| 320 | 303 | |
| 321 | 304 | should 'have communities' do |
| 322 | 305 | c = @env.categories.build(:name => 'my category'); c.save! |
| 323 | - c1 = Environment.default.communities.create!(:name => 'testcommunity_1') | |
| 306 | + c1 = fast_create(Community, :name => 'testcommunity_1') | |
| 324 | 307 | c1.add_category c |
| 325 | - c2 = Environment.default.communities.create!(:name => 'testcommunity_2') | |
| 308 | + c2 = fast_create(Community, :name => 'testcommunity_2') | |
| 326 | 309 | c2.add_category c |
| 327 | 310 | assert_equal [c1, c2], c.communities |
| 328 | 311 | end |
| 329 | 312 | |
| 330 | 313 | should 'have products through enteprises' do |
| 331 | 314 | c = @env.categories.build(:name => 'my category'); c.save! |
| 332 | - ent1 = Enterprise.create!(:identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 315 | + ent1 = fast_create(Enterprise, :identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 333 | 316 | ent1.add_category c |
| 334 | - ent2 = Enterprise.create!(:identifier => 'enterprise_2', :name => 'Enterprise one') | |
| 317 | + ent2 = fast_create(Enterprise, :identifier => 'enterprise_2', :name => 'Enterprise one') | |
| 335 | 318 | ent2.add_category c |
| 336 | 319 | prod1 = ent1.products.create!(:name => 'test_prod1') |
| 337 | 320 | prod2 = ent2.products.create!(:name => 'test_prod2') |
| ... | ... | @@ -341,7 +324,7 @@ class CategoryTest < Test::Unit::TestCase |
| 341 | 324 | |
| 342 | 325 | should 'not have person through communities' do |
| 343 | 326 | c = @env.categories.build(:name => 'my category'); c.save! |
| 344 | - com = Community.create!(:identifier => 'community_1', :name => 'Community one') | |
| 327 | + com = fast_create(Community, :identifier => 'community_1', :name => 'Community one') | |
| 345 | 328 | com.add_category c |
| 346 | 329 | person = create_user('test_user').person |
| 347 | 330 | person.add_category c |
| ... | ... | @@ -351,7 +334,7 @@ class CategoryTest < Test::Unit::TestCase |
| 351 | 334 | |
| 352 | 335 | should 'not have person through enterprises' do |
| 353 | 336 | c = @env.categories.build(:name => 'my category'); c.save! |
| 354 | - ent = Enterprise.create!(:identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 337 | + ent = fast_create(Enterprise, :identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 355 | 338 | ent.add_category c |
| 356 | 339 | person = create_user('test_user').person |
| 357 | 340 | person.add_category c |
| ... | ... | @@ -363,33 +346,12 @@ class CategoryTest < Test::Unit::TestCase |
| 363 | 346 | c = @env.categories.build(:name => 'my category'); c.save! |
| 364 | 347 | person = create_user('test_user').person |
| 365 | 348 | person.add_category c |
| 366 | - ent = Enterprise.create!(:identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 349 | + ent = fast_create(Enterprise, :identifier => 'enterprise_1', :name => 'Enterprise one') | |
| 367 | 350 | ent.add_category c |
| 368 | 351 | assert_includes c.people, person |
| 369 | 352 | assert_not_includes c.people, ent |
| 370 | 353 | end |
| 371 | 354 | |
| 372 | - should 'report the total items in this category' do | |
| 373 | - @category = Category.create!(:name => 'my category', :environment => @env) | |
| 374 | - # in category | |
| 375 | - person1 = create_user('test1').person; person1.add_category @category; person1.save! | |
| 376 | - art1 = person1.articles.build(:name => 'an article to be counted'); art1.add_category @category; art1.save! | |
| 377 | - comment1 = art1.comments.build(:title => 'comment to be counted', :body => 'hfyfyh', :author => person1); comment1.save! | |
| 378 | - ent1 = Enterprise.create!(:name => 'test2', :identifier => 'test2', :category_ids => [@category.id]) | |
| 379 | - com1 = Community.create!(:name => 'test3', :identifier => 'test3', :category_ids => [@category.id]) | |
| 380 | - prod1 = Product.create!(:name => 'test4', :enterprise => ent1) | |
| 381 | - | |
| 382 | - # not in category | |
| 383 | - person2 = create_user('test5').person | |
| 384 | - art2 = person2.articles.build(:name => 'an article not to be counted'); art2.save! | |
| 385 | - comment2 = art2.comments.build(:title => 'comment not to be counted', :body => 'hfh', :author => person2); comment2.save! | |
| 386 | - ent2 = Enterprise.create!(:name => 'test6', :identifier => 'test6') | |
| 387 | - com2 = Community.create!(:name => 'test7', :identifier => 'test7') | |
| 388 | - prod2 = Product.create!(:name => 'test8', :enterprise => ent2) | |
| 389 | - | |
| 390 | - assert_equal 6, @category.total_items | |
| 391 | - end | |
| 392 | - | |
| 393 | 355 | should 'have image' do |
| 394 | 356 | assert_difference Category, :count do |
| 395 | 357 | c = Category.create!(:name => 'test category1', :environment => Environment.default, :image_builder => { |
| ... | ... | @@ -400,11 +362,11 @@ class CategoryTest < Test::Unit::TestCase |
| 400 | 362 | end |
| 401 | 363 | |
| 402 | 364 | should 'display in menu only if have display_menu setted to true' do |
| 403 | - c = Category.create!(:name => 'test category top', :environment => Environment.default, :display_in_menu => true) | |
| 404 | - c1 = Category.create!(:name => 'test category 1', :environment => Environment.default, :display_in_menu => true, :parent => c) | |
| 405 | - c11 = Category.create!(:name => 'test category 11', :environment => Environment.default, :display_in_menu => true, :parent => c1) | |
| 406 | - c2 = Category.create!(:name => 'test category 2', :environment => Environment.default, :display_in_menu => true, :parent => c) | |
| 407 | - c3 = Category.create!(:name => 'test category 3', :environment => Environment.default, :parent => c) | |
| 365 | + c = fast_create(Category, :display_in_menu => true) | |
| 366 | + c1 = fast_create(Category, :display_in_menu => true, :parent_id => c.id) | |
| 367 | + c11 = fast_create(Category, :display_in_menu => true, :parent_id => c1.id) | |
| 368 | + c2 = fast_create(Category, :display_in_menu => true, :parent_id => c.id) | |
| 369 | + c3 = fast_create(Category, :parent_id => c.id) | |
| 408 | 370 | |
| 409 | 371 | assert_equivalent [c1, c11, c2], c.children_for_menu |
| 410 | 372 | end | ... | ... |
test/unit/environment_finder_test.rb
| ... | ... | @@ -2,12 +2,6 @@ require File.dirname(__FILE__) + '/../test_helper' |
| 2 | 2 | |
| 3 | 3 | class EnvironmentFinderTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | -# all_fixtures | |
| 6 | - | |
| 7 | - def setup | |
| 8 | - Profile.rebuild_index | |
| 9 | - end | |
| 10 | - | |
| 11 | 5 | should 'find articles' do |
| 12 | 6 | person = create_user('teste').person |
| 13 | 7 | art = person.articles.build(:name => 'an article to be found'); art.save! | ... | ... |