fix tests

This commit is contained in:
r888888888
2017-03-15 16:08:47 -07:00
parent da06bee0ab
commit d9a26975ba
9 changed files with 25 additions and 33 deletions

View File

@@ -21,11 +21,11 @@ module Moderator
end end
tags = Tag.scan_tags(antecedent, :strip_metatags => true) tags = Tag.scan_tags(antecedent, :strip_metatags => true)
conds = tags.map {|x| "tag_query like ?"}.join(" AND ") conds = tags.map {|x| "query like ?"}.join(" AND ")
conds = [conds, *tags.map {|x| "%#{x.to_escaped_for_sql_like}%"}] conds = [conds, *tags.map {|x| "%#{x.to_escaped_for_sql_like}%"}]
if SavedSearch.enabled? if SavedSearch.enabled?
SavedSearch.where(*conds).find_each do |ss| SavedSearch.where(*conds).find_each do |ss|
ss.tag_query = (ss.tag_query_array - tags + [consequent]).uniq.join(" ") ss.query = (ss.query_array - tags + [consequent]).uniq.join(" ")
ss.save ss.save
end end
end end

View File

@@ -182,8 +182,8 @@ class TagAlias < ActiveRecord::Base
escaped = Regexp.escape(antecedent_name) escaped = Regexp.escape(antecedent_name)
if SavedSearch.enabled? if SavedSearch.enabled?
SavedSearch.where("tag_query like ?", "%#{antecedent_name}%").find_each do |ss| SavedSearch.where("query like ?", "%#{antecedent_name}%").find_each do |ss|
ss.tag_query = ss.tag_query.sub(/(?:^| )#{escaped}(?:$| )/, " #{consequent_name} ").strip.gsub(/ /, " ") ss.query = ss.query.sub(/(?:^| )#{escaped}(?:$| )/, " #{consequent_name} ").strip.gsub(/ /, " ")
ss.save ss.save
end end
end end

View File

@@ -1,7 +1,7 @@
FactoryGirl.define do FactoryGirl.define do
factory(:saved_search) do factory(:saved_search) do
tag_query { FFaker::Lorem.words } query { FFaker::Lorem.words }
category { FFaker::Lorem.word } labels { [FFaker::Lorem.word] }
user user
end end
end end

View File

@@ -21,7 +21,7 @@ class SavedSearchesControllerTest < ActionController::TestCase
context "create action" do context "create action" do
should "render" do should "render" do
params = { saved_search_tags: "bkub", saved_search_category: "artist" } params = { saved_search_tags: "bkub", saved_search_labels: "artist" }
post :create, params, { user_id: @user.id } post :create, params, { user_id: @user.id }
assert_response :redirect assert_response :redirect
@@ -40,11 +40,11 @@ class SavedSearchesControllerTest < ActionController::TestCase
context "update action" do context "update action" do
should "render" do should "render" do
saved_search = FactoryGirl.create(:saved_search, user: @user) saved_search = FactoryGirl.create(:saved_search, user: @user)
params = { id: saved_search.id, saved_search: { category: "foo" } } params = { id: saved_search.id, saved_search: { label_string: "foo" } }
put :update, params, { user_id: @user.id } put :update, params, { user_id: @user.id }
assert_redirected_to saved_searches_path assert_redirected_to saved_searches_path
assert_equal("foo", saved_search.reload.category) assert_equal(["foo"], saved_search.reload.labels)
end end
end end

View File

@@ -16,7 +16,6 @@ module SavedSearchTestHelper
service = mock_sqs_service.new service = mock_sqs_service.new
SavedSearch.stubs(:sqs_service).returns(service) SavedSearch.stubs(:sqs_service).returns(service)
SavedSearch.stubs(:update_listbooru_on_create)
Danbooru.config.stubs(:aws_sqs_saved_search_url).returns("http://localhost:3002") Danbooru.config.stubs(:aws_sqs_saved_search_url).returns("http://localhost:3002")
Danbooru.config.stubs(:listbooru_auth_key).returns("blahblahblah") Danbooru.config.stubs(:listbooru_auth_key).returns("blahblahblah")
Danbooru.config.stubs(:listbooru_server).returns("http://localhost:3001") Danbooru.config.stubs(:listbooru_server).returns("http://localhost:3001")

View File

@@ -31,12 +31,11 @@ module Moderator
end end
should "move saved searches" do should "move saved searches" do
ss = FactoryGirl.create(:saved_search, :user => @user, :tag_query => "123 ... 456") ss = FactoryGirl.create(:saved_search, :user => @user, :query => "123 ... 456")
tag_batch_change = TagBatchChange.new("...", "bbb", @user.id, "127.0.0.1") tag_batch_change = TagBatchChange.new("...", "bbb", @user.id, "127.0.0.1")
tag_batch_change.perform tag_batch_change.perform
ss.reload ss.reload
assert_equal("123 456 bbb", ss.tag_query) assert_equal(%w(123 456 bbb), ss.query.scan(/\S+/).sort)
assert_equal(%w(create update), SavedSearch.sqs_service.commands)
end end
should "raise an error if there is no predicate" do should "raise an error if there is no predicate" do

View File

@@ -1951,8 +1951,8 @@ class PostTest < ActiveSupport::TestCase
should "return posts for a search:<category> metatag" do should "return posts for a search:<category> metatag" do
post1 = FactoryGirl.create(:post, tag_string: "aaa") post1 = FactoryGirl.create(:post, tag_string: "aaa")
post2 = FactoryGirl.create(:post, tag_string: "bbb") post2 = FactoryGirl.create(:post, tag_string: "bbb")
FactoryGirl.create(:saved_search, tag_query: "aaa", category: "zzz", user: CurrentUser.user) FactoryGirl.create(:saved_search, query: "aaa", labels: ["zzz"], user: CurrentUser.user)
FactoryGirl.create(:saved_search, tag_query: "bbb", category: nil, user: CurrentUser.user) FactoryGirl.create(:saved_search, query: "bbb", user: CurrentUser.user)
SavedSearch.expects(:post_ids).with(CurrentUser.id, "zzz").returns([post1.id]) SavedSearch.expects(:post_ids).with(CurrentUser.id, "zzz").returns([post1.id])
SavedSearch.expects(:post_ids).with(CurrentUser.id, "uncategorized").returns([post2.id]) SavedSearch.expects(:post_ids).with(CurrentUser.id, "uncategorized").returns([post2.id])

View File

@@ -19,9 +19,10 @@ class SavedSearchTest < ActiveSupport::TestCase
FakeWeb.clean_registry FakeWeb.clean_registry
end end
context "with a name" do context "with a label" do
setup do setup do
FakeWeb.register_uri(:get, "http://localhost:3001/users?key=blahblahblah&user_id=1&name=blah", :body => [1,2,3,4].to_json) SavedSearch.expects(:queries_for).with(1, "blah").returns(%w(a b c))
FakeWeb.register_uri(:post, "http://localhost:3001/v2/search", :body => "1 2 3 4")
end end
should "return a list of ids" do should "return a list of ids" do
@@ -30,9 +31,10 @@ class SavedSearchTest < ActiveSupport::TestCase
end end
end end
context "without a name" do context "without a label" do
setup do setup do
FakeWeb.register_uri(:get, "http://localhost:3001/users?key=blahblahblah&user_id=1", :body => [1,2,3,4].to_json) SavedSearch.expects(:queries_for).with(1, nil).returns(%w(a b c))
FakeWeb.register_uri(:post, "http://localhost:3001/v2/search", :body => "1 2 3 4")
end end
should "return a list of ids" do should "return a list of ids" do
@@ -45,7 +47,7 @@ class SavedSearchTest < ActiveSupport::TestCase
context "Creating a saved search" do context "Creating a saved search" do
setup do setup do
@user = FactoryGirl.create(:gold_user) @user = FactoryGirl.create(:gold_user)
@saved_search = @user.saved_searches.create(:tag_query => " xxx ") @saved_search = @user.saved_searches.create(:query => " xxx ")
end end
should "update the bitpref on the user" do should "update the bitpref on the user" do
@@ -54,11 +56,7 @@ class SavedSearchTest < ActiveSupport::TestCase
end end
should "normalize whitespace" do should "normalize whitespace" do
assert_equal("xxx", @saved_search.tag_query) assert_equal("xxx", @saved_search.query)
end
should "send messages" do
assert_equal(%w(create), SavedSearch.sqs_service.commands)
end end
end end
@@ -73,17 +71,13 @@ class SavedSearchTest < ActiveSupport::TestCase
@user.reload @user.reload
assert(!@user.has_saved_searches?, "should not have the saved_searches bitpref set") assert(!@user.has_saved_searches?, "should not have the saved_searches bitpref set")
end end
should "send messages" do
assert_equal(%w(create delete), SavedSearch.sqs_service.commands)
end
end end
context "A user with max saved searches" do context "A user with max saved searches" do
setup do setup do
@user = FactoryGirl.create(:gold_user) @user = FactoryGirl.create(:gold_user)
User.any_instance.stubs(:max_saved_searches).returns(0) User.any_instance.stubs(:max_saved_searches).returns(0)
@saved_search = @user.saved_searches.create(:tag_query => "xxx") @saved_search = @user.saved_searches.create(:query => "xxx")
end end
should "not be able to create another saved search" do should "not be able to create another saved search" do

View File

@@ -74,13 +74,13 @@ class TagAliasTest < ActiveSupport::TestCase
assert_nil(Cache.get("ta:aaa")) assert_nil(Cache.get("ta:aaa"))
end end
should "move saved searches" do should "zzz move saved searches" do
tag1 = FactoryGirl.create(:tag, :name => "...") tag1 = FactoryGirl.create(:tag, :name => "...")
tag2 = FactoryGirl.create(:tag, :name => "bbb") tag2 = FactoryGirl.create(:tag, :name => "bbb")
ss = FactoryGirl.create(:saved_search, :tag_query => "123 ... 456", :user => CurrentUser.user) ss = FactoryGirl.create(:saved_search, :query => "123 ... 456", :user => CurrentUser.user)
ta = FactoryGirl.create(:tag_alias, :antecedent_name => "...", :consequent_name => "bbb") ta = FactoryGirl.create(:tag_alias, :antecedent_name => "...", :consequent_name => "bbb")
ss.reload ss.reload
assert_equal("123 bbb 456", ss.tag_query) assert_equal(%w(123 456 bbb), ss.query.scan(/\S+/).sort)
end end
should "update any affected posts when saved" do should "update any affected posts when saved" do