Commit 35984ff4f0f9a50db37262dcd9c0f8b809610f2b
1 parent
4e597889
Exists in
master
and in
29 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! | ... | ... |