From 1b11321161420c53ec9d0daddd98ddfe2624802c Mon Sep 17 00:00:00 2001 From: nonamethanks Date: Fri, 21 Oct 2022 11:09:10 +0200 Subject: [PATCH] Pixiv Sketch: rewrite tests --- test/unit/sources/pixiv_sketch_test.rb | 228 ++++++++++++------------- 1 file changed, 112 insertions(+), 116 deletions(-) diff --git a/test/unit/sources/pixiv_sketch_test.rb b/test/unit/sources/pixiv_sketch_test.rb index 211a81bee..fcb0bcde2 100644 --- a/test/unit/sources/pixiv_sketch_test.rb +++ b/test/unit/sources/pixiv_sketch_test.rb @@ -2,68 +2,113 @@ require 'test_helper' module Sources class PixivSketchTest < ActiveSupport::TestCase - context "A Pixiv Sketch source" do - should "work for a post with a single image" do - source = Source::Extractor.find("https://sketch.pixiv.net/items/5835314698645024323") + context "A Pixiv Sketch post" do + strategy_should_work( + "https://sketch.pixiv.net/items/5835314698645024323", + image_urls: ["https://img-sketch.pixiv.net/uploads/medium/file/9986983/8431631593768139653.jpg"], + page_url: "https://sketch.pixiv.net/items/5835314698645024323", + profile_urls: ["https://sketch.pixiv.net/@user_ejkv8372", "https://www.pixiv.net/users/44772126"], + profile_url: "https://sketch.pixiv.net/@user_ejkv8372", + artist_name: "user_ejkv8372", + other_names: ["user_ejkv8372", "サコ"], + artist_commentary_desc: "🍻シャンクスずミホヌク誕生日おめでずう🍻過去絵 ", + tags: [] + ) + end - assert_equal("Pixiv Sketch", source.site_name) - assert_equal(["https://img-sketch.pixiv.net/uploads/medium/file/9986983/8431631593768139653.jpg"], source.image_urls) - assert_equal("https://sketch.pixiv.net/items/5835314698645024323", source.page_url) - assert_equal("https://sketch.pixiv.net/@user_ejkv8372", source.profile_url) - assert_equal(["https://sketch.pixiv.net/@user_ejkv8372", "https://www.pixiv.net/users/44772126"], source.profile_urls) - assert_equal("user_ejkv8372", source.artist_name) - assert_equal(["user_ejkv8372", "サコ"], source.other_names) - assert_equal("🍻シャンクスずミホヌク誕生日おめでずう🍻過去絵 ", source.artist_commentary_desc) - assert_equal([], source.tags.map(&:first)) - assert_nothing_raised { source.to_h } - end + context "A Pixiv Sketch image with referer" do + strategy_should_work( + "https://img-sketch.pixiv.net/uploads/medium/file/9986983/8431631593768139653.jpg", + referer: "https://sketch.pixiv.net/items/5835314698645024323", + image_urls: ["https://img-sketch.pixiv.net/uploads/medium/file/9986983/8431631593768139653.jpg"], + page_url: "https://sketch.pixiv.net/items/5835314698645024323", + profile_urls: ["https://sketch.pixiv.net/@user_ejkv8372", "https://www.pixiv.net/users/44772126"], + profile_url: "https://sketch.pixiv.net/@user_ejkv8372", + artist_name: "user_ejkv8372", + other_names: ["user_ejkv8372", "サコ"], + artist_commentary_desc: "🍻シャンクスずミホヌク誕生日おめでずう🍻過去絵 ", + tags: [] + ) + end - should "work for an image url without a referer" do - # page: https://sketch.pixiv.net/items/8052785510155853613 - source = Source::Extractor.find("https://img-sketch.pixiv.net/uploads/medium/file/9988973/7216948861306830496.jpg") + context "A Pixiv Sketch image without the referer" do + # page: https://sketch.pixiv.net/items/8052785510155853613 + strategy_should_work( + "https://img-sketch.pixiv.net/uploads/medium/file/9988973/7216948861306830496.jpg", + page_url: nil, + profile_url: nil, + artist_name: nil, + tags: [], + artist_commentary_desc: nil + ) + end - assert_equal(["https://img-sketch.pixiv.net/uploads/medium/file/9988973/7216948861306830496.jpg"], source.image_urls) - assert_nil(source.page_url) - assert_nil(source.profile_url) - assert_equal([], source.profile_urls) - assert_nil(source.artist_name) - assert_equal([], source.other_names) - assert_nil(source.artist_commentary_desc) - assert_equal([], source.tags.map(&:first)) - assert_nothing_raised { source.to_h } - end + context "A NSFW post" do + strategy_should_work( + "https://sketch.pixiv.net/items/193462611994864256", + image_urls: ["https://img-sketch.pixiv.net/uploads/medium/file/884876/4909517173982299587.jpg"], + page_url: "https://sketch.pixiv.net/items/193462611994864256", + profile_url: "https://sketch.pixiv.net/@lithla", + artist_name: "lithla", + other_names: ["lithla", "リリスラりダ"], + artist_commentary_desc: "チビッコ露出プレむ ピヌス", + tags: [] + ) + end - should "work for an image url with a referer" do - source = Source::Extractor.find("https://img-sketch.pixiv.net/uploads/medium/file/9988973/7216948861306830496.jpg", "https://sketch.pixiv.net/items/8052785510155853613") + context "A post with multiple images" do + desc = <<~EOS.normalize_whitespace + 3月3日は「うさぎの日」らしいので - assert_equal("https://sketch.pixiv.net/items/8052785510155853613", source.page_url) - assert_equal("https://sketch.pixiv.net/@op-one", source.profile_url) - assert_equal(["https://sketch.pixiv.net/@op-one", "https://www.pixiv.net/users/5903369"], source.profile_urls) - assert_equal("op-one", source.artist_name) - assert_equal(["op-one", "俺P号"], source.other_names) - assert_match(/\A3月3日は「うさぎの日」らしいので/, source.artist_commentary_desc) - assert_equal(%w[制䜜過皋 このすば この玠晎らしい䞖界に祝犏を セナ バニヌ 3月3日 å·šä¹³ 黒髪巚乳 タむツ], source.tags.map(&:first)) - assert_nothing_raised { source.to_h } - end - should "work for a NSFW post" do - source = Source::Extractor.find("https://sketch.pixiv.net/items/193462611994864256") + ▌制䜜過皋 + ◎制䜜過皋 + ①() + ②() + ③()+色 + ④1原(原) + â‘€1原(原)(線のみ) + ⑥色 + ⑊仕䞊げ⇒完成 + ⑚完成() + ⑧完成() - assert_equal(["https://img-sketch.pixiv.net/uploads/medium/file/884876/4909517173982299587.jpg"], source.image_urls) - assert_equal("https://sketch.pixiv.net/items/193462611994864256", source.page_url) - assert_equal("https://sketch.pixiv.net/@lithla", source.profile_url) - assert_equal(["https://sketch.pixiv.net/@lithla", "https://www.pixiv.net/users/4957"], source.profile_urls) - assert_equal("lithla", source.artist_name) - assert_equal(["lithla", "リリスラりダ"], source.other_names) - assert_equal("チビッコ露出プレむ ピヌス", source.artist_commentary_desc) - assert_equal([], source.tags.map(&:first)) - assert_nothing_raised { source.to_h } - end + 色たで぀ける時間ず心の䜙裕が無いのでモノクロでらくがき + それでも5時間ぐらいかかっおる(③④の間で30分ぐらい雑務) - should "work for a post with a multiple images" do - source = Source::Extractor.find("https://sketch.pixiv.net/items/8052785510155853613") + やっぱから原は時間かかる  + ・線画だけから立䜓が把握できない(頭の䞭で3D化できない) + ・描き続けおるず立䜓感がゲシュタルト厩壊する + ・目のピントが合わない + ので12回䌑憩しお目ず頭䌑たせないずいけないのがき぀い + 目ず頭のスタミナ䞍足は劂䜕ずもしがたい - assert_equal(%w[ + 線画のみから感芚的に立䜓把握できる「確かめ算」みたいな手法を緎りこむ必芁がある のはわかっおるけど + 「断面図」 + 「透明な板を蚭定しお奥行きパヌス確認」 + 「地面に正方圢を描いお瞊パヌス確認」 + 「関節郚や胎䜓䞭倮郚に栞(äžž)を描いお立䜓確認」 + 「線画」を淡く衚瀺し䞊から簡単な立䜓モデルを描いおみお「倧きさ比率の確認」 +  ぐらいかな思い぀くのは + + あず初期に足銖の関節玠䜓描いお立䜓把握しおる跡がある + いただに関節の軞を足銖のドコに蚭定すれば自然に芋えるか迷う + 倚分最倧に䌞ばしたり曲げたりしおるずきは関節浮いおたりするんだろうから簡単な軞蚭定だず違和感が出おくるんだずは思う + + #制䜜過皋 + #このすば + #この玠晎らしい䞖界に祝犏を + #セナ + #バニヌ + #3月3日 + #å·šä¹³ + #黒髪巚乳 + #タむツ + EOS + + strategy_should_work( + "https://sketch.pixiv.net/items/8052785510155853613", + image_urls: %w[ https://img-sketch.pixiv.net/uploads/medium/file/9988964/1564052114639195387.png https://img-sketch.pixiv.net/uploads/medium/file/9988965/3187185972065199018.png https://img-sketch.pixiv.net/uploads/medium/file/9988966/5281789458380074490.png @@ -74,70 +119,21 @@ module Sources https://img-sketch.pixiv.net/uploads/medium/file/9988971/9105451079763734305.jpg https://img-sketch.pixiv.net/uploads/medium/file/9988972/2641925439408057307.jpg https://img-sketch.pixiv.net/uploads/medium/file/9988973/7216948861306830496.jpg - ], source.image_urls) - assert_equal("https://sketch.pixiv.net/items/8052785510155853613", source.page_url) - assert_equal("https://sketch.pixiv.net/@op-one", source.profile_url) - assert_equal("op-one", source.artist_name) - assert_equal(<<~EOS.normalize_whitespace, source.artist_commentary_desc) - 3月3日は「うさぎの日」らしいので + ], + artist_commentary_desc: desc, + artist_name: "op-one", + page_url: "https://sketch.pixiv.net/items/8052785510155853613", + profile_url: "https://sketch.pixiv.net/@op-one", + tags: %w[制䜜過皋 このすば この玠晎らしい䞖界に祝犏を セナ バニヌ 3月3日 å·šä¹³ 黒髪巚乳 タむツ] + ) + end - - ▌制䜜過皋 - ◎制䜜過皋 - ①() - ②() - ③()+色 - ④1原(原) - â‘€1原(原)(線のみ) - ⑥色 - ⑊仕䞊げ⇒完成 - ⑚完成() - ⑧完成() - - 色たで぀ける時間ず心の䜙裕が無いのでモノクロでらくがき - それでも5時間ぐらいかかっおる(③④の間で30分ぐらい雑務) - - やっぱから原は時間かかる  - ・線画だけから立䜓が把握できない(頭の䞭で3D化できない) - ・描き続けおるず立䜓感がゲシュタルト厩壊する - ・目のピントが合わない - ので12回䌑憩しお目ず頭䌑たせないずいけないのがき぀い - 目ず頭のスタミナ䞍足は劂䜕ずもしがたい - - 線画のみから感芚的に立䜓把握できる「確かめ算」みたいな手法を緎りこむ必芁がある のはわかっおるけど - 「断面図」 - 「透明な板を蚭定しお奥行きパヌス確認」 - 「地面に正方圢を描いお瞊パヌス確認」 - 「関節郚や胎䜓䞭倮郚に栞(äžž)を描いお立䜓確認」 - 「線画」を淡く衚瀺し䞊から簡単な立䜓モデルを描いおみお「倧きさ比率の確認」 -  ぐらいかな思い぀くのは - - あず初期に足銖の関節玠䜓描いお立䜓把握しおる跡がある - いただに関節の軞を足銖のドコに蚭定すれば自然に芋えるか迷う - 倚分最倧に䌞ばしたり曲げたりしおるずきは関節浮いおたりするんだろうから簡単な軞蚭定だず違和感が出おくるんだずは思う - - #制䜜過皋 - #このすば - #この玠晎らしい䞖界に祝犏を - #セナ - #バニヌ - #3月3日 - #å·šä¹³ - #黒髪巚乳 - #タむツ - EOS - - assert_equal(%w[制䜜過皋 このすば この玠晎らしい䞖界に祝犏を セナ バニヌ 3月3日 å·šä¹³ 黒髪巚乳 タむツ], source.tags.map(&:first)) - assert_nothing_raised { source.to_h } - end - - should "Parse Pixiv Sketch URLs correctly" do - assert(Source::URL.image_url?("https://img-sketch.pixiv.net/uploads/medium/file/4463372/8906921629213362989.jpg ")) - assert(Source::URL.image_url?("https://img-sketch.pximg.net/c!/w=540,f=webp:jpeg/uploads/medium/file/4463372/8906921629213362989.jpg")) - assert(Source::URL.image_url?("https://img-sketch.pixiv.net/c/f_540/uploads/medium/file/9986983/8431631593768139653.jpg")) - assert(Source::URL.page_url?("https://sketch.pixiv.net/items/5835314698645024323")) - assert(Source::URL.profile_url?("https://sketch.pixiv.net/@user_ejkv8372")) - end + should "Parse Pixiv Sketch URLs correctly" do + assert(Source::URL.image_url?("https://img-sketch.pixiv.net/uploads/medium/file/4463372/8906921629213362989.jpg ")) + assert(Source::URL.image_url?("https://img-sketch.pximg.net/c!/w=540,f=webp:jpeg/uploads/medium/file/4463372/8906921629213362989.jpg")) + assert(Source::URL.image_url?("https://img-sketch.pixiv.net/c/f_540/uploads/medium/file/9986983/8431631593768139653.jpg")) + assert(Source::URL.page_url?("https://sketch.pixiv.net/items/5835314698645024323")) + assert(Source::URL.profile_url?("https://sketch.pixiv.net/@user_ejkv8372")) end end end