diff --git a/app/logical/moderator/tag_batch_change.rb b/app/logical/moderator/tag_batch_change.rb index 6c8d2ac2b..81bb10df6 100644 --- a/app/logical/moderator/tag_batch_change.rb +++ b/app/logical/moderator/tag_batch_change.rb @@ -21,11 +21,11 @@ module Moderator end 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}%"}] if SavedSearch.enabled? 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 end end diff --git a/app/models/tag_alias.rb b/app/models/tag_alias.rb index ab224685f..b18e192a0 100644 --- a/app/models/tag_alias.rb +++ b/app/models/tag_alias.rb @@ -182,8 +182,8 @@ class TagAlias < ActiveRecord::Base escaped = Regexp.escape(antecedent_name) if SavedSearch.enabled? - SavedSearch.where("tag_query like ?", "%#{antecedent_name}%").find_each do |ss| - ss.tag_query = ss.tag_query.sub(/(?:^| )#{escaped}(?:$| )/, " #{consequent_name} ").strip.gsub(/ /, " ") + SavedSearch.where("query like ?", "%#{antecedent_name}%").find_each do |ss| + ss.query = ss.query.sub(/(?:^| )#{escaped}(?:$| )/, " #{consequent_name} ").strip.gsub(/ /, " ") ss.save end end diff --git a/test/factories/saved_search.rb b/test/factories/saved_search.rb index 44d81152e..ce4921c4d 100644 --- a/test/factories/saved_search.rb +++ b/test/factories/saved_search.rb @@ -1,7 +1,7 @@ FactoryGirl.define do factory(:saved_search) do - tag_query { FFaker::Lorem.words } - category { FFaker::Lorem.word } + query { FFaker::Lorem.words } + labels { [FFaker::Lorem.word] } user end end diff --git a/test/functional/saved_searches_controller_test.rb b/test/functional/saved_searches_controller_test.rb index 89263ad66..c80d4c34f 100644 --- a/test/functional/saved_searches_controller_test.rb +++ b/test/functional/saved_searches_controller_test.rb @@ -21,7 +21,7 @@ class SavedSearchesControllerTest < ActionController::TestCase context "create action" 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 } assert_response :redirect @@ -40,11 +40,11 @@ class SavedSearchesControllerTest < ActionController::TestCase context "update action" do should "render" do 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 } assert_redirected_to saved_searches_path - assert_equal("foo", saved_search.reload.category) + assert_equal(["foo"], saved_search.reload.labels) end end diff --git a/test/helpers/saved_search_test_helper.rb b/test/helpers/saved_search_test_helper.rb index 26c9e1226..2b2a9071b 100644 --- a/test/helpers/saved_search_test_helper.rb +++ b/test/helpers/saved_search_test_helper.rb @@ -16,7 +16,6 @@ module SavedSearchTestHelper service = mock_sqs_service.new 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(:listbooru_auth_key).returns("blahblahblah") Danbooru.config.stubs(:listbooru_server).returns("http://localhost:3001") diff --git a/test/unit/moderator/tag_batch_change_test.rb b/test/unit/moderator/tag_batch_change_test.rb index 436c5602e..9a4b88a0a 100644 --- a/test/unit/moderator/tag_batch_change_test.rb +++ b/test/unit/moderator/tag_batch_change_test.rb @@ -31,12 +31,11 @@ module Moderator end 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.perform ss.reload - assert_equal("123 456 bbb", ss.tag_query) - assert_equal(%w(create update), SavedSearch.sqs_service.commands) + assert_equal(%w(123 456 bbb), ss.query.scan(/\S+/).sort) end should "raise an error if there is no predicate" do diff --git a/test/unit/post_test.rb b/test/unit/post_test.rb index 96b0ab8a4..63a5fa1c5 100644 --- a/test/unit/post_test.rb +++ b/test/unit/post_test.rb @@ -1951,8 +1951,8 @@ class PostTest < ActiveSupport::TestCase should "return posts for a search: metatag" do post1 = FactoryGirl.create(:post, tag_string: "aaa") post2 = FactoryGirl.create(:post, tag_string: "bbb") - FactoryGirl.create(:saved_search, tag_query: "aaa", category: "zzz", user: CurrentUser.user) - FactoryGirl.create(:saved_search, tag_query: "bbb", category: nil, user: CurrentUser.user) + FactoryGirl.create(:saved_search, query: "aaa", labels: ["zzz"], 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, "uncategorized").returns([post2.id]) diff --git a/test/unit/saved_search_test.rb b/test/unit/saved_search_test.rb index 826466d86..05a75b191 100644 --- a/test/unit/saved_search_test.rb +++ b/test/unit/saved_search_test.rb @@ -19,9 +19,10 @@ class SavedSearchTest < ActiveSupport::TestCase FakeWeb.clean_registry end - context "with a name" do + context "with a label" 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 should "return a list of ids" do @@ -30,9 +31,10 @@ class SavedSearchTest < ActiveSupport::TestCase end end - context "without a name" do + context "without a label" 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 should "return a list of ids" do @@ -45,7 +47,7 @@ class SavedSearchTest < ActiveSupport::TestCase context "Creating a saved search" do setup do @user = FactoryGirl.create(:gold_user) - @saved_search = @user.saved_searches.create(:tag_query => " xxx ") + @saved_search = @user.saved_searches.create(:query => " xxx ") end should "update the bitpref on the user" do @@ -54,11 +56,7 @@ class SavedSearchTest < ActiveSupport::TestCase end should "normalize whitespace" do - assert_equal("xxx", @saved_search.tag_query) - end - - should "send messages" do - assert_equal(%w(create), SavedSearch.sqs_service.commands) + assert_equal("xxx", @saved_search.query) end end @@ -73,17 +71,13 @@ class SavedSearchTest < ActiveSupport::TestCase @user.reload assert(!@user.has_saved_searches?, "should not have the saved_searches bitpref set") end - - should "send messages" do - assert_equal(%w(create delete), SavedSearch.sqs_service.commands) - end end context "A user with max saved searches" do setup do @user = FactoryGirl.create(:gold_user) 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 should "not be able to create another saved search" do diff --git a/test/unit/tag_alias_test.rb b/test/unit/tag_alias_test.rb index 3681d0ee5..91fa9dd94 100644 --- a/test/unit/tag_alias_test.rb +++ b/test/unit/tag_alias_test.rb @@ -74,13 +74,13 @@ class TagAliasTest < ActiveSupport::TestCase assert_nil(Cache.get("ta:aaa")) end - should "move saved searches" do + should "zzz move saved searches" do tag1 = FactoryGirl.create(:tag, :name => "...") 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") ss.reload - assert_equal("123 bbb 456", ss.tag_query) + assert_equal(%w(123 456 bbb), ss.query.scan(/\S+/).sort) end should "update any affected posts when saved" do