def test_LSNicoSeiga(self): """静画ページ取得クラス初期状態チェック """ with ExitStack() as stack: mocknslogin = stack.enter_context(patch("PictureGathering.LSNicoSeiga.LSNicoSeiga.Login")) mocknslogin = self.__MakeLoginMock(mocknslogin) # 正常系 lsns_cont = LSNicoSeiga.LSNicoSeiga(self.email, self.password, self.TEST_BASE_PATH) self.assertEqual(self.headers, lsns_cont.headers) self.assertIsNotNone(lsns_cont.session) self.assertTrue(lsns_cont.auth_success) self.assertEqual(self.TEST_BASE_PATH, lsns_cont.base_path) # 異常系 with self.assertRaises(SystemExit): lsns_cont = LSNicoSeiga.LSNicoSeiga("invalid email", "invalid password", self.TEST_BASE_PATH)
def test_Login(self): """セッション開始とログイン機能をチェック """ with ExitStack() as stack: # モック置き換え mocksession = stack.enter_context(patch("PictureGathering.LSNicoSeiga.requests.session")) mocksession.side_effect = self.__MakeSessionMock lsns_cont = LSNicoSeiga.LSNicoSeiga(self.email, self.password, self.TEST_BASE_PATH) self.assertEqual(self.headers, lsns_cont.headers) self.assertIsNotNone(lsns_cont.session) self.assertTrue(lsns_cont.auth_success) self.assertEqual(self.TEST_BASE_PATH, lsns_cont.base_path)
def test_IsTargetUrl(self): """URLがニコニコ静画のURLかどうか判定する機能をチェック """ with ExitStack() as stack: mocknslogin = stack.enter_context(patch("PictureGathering.LSNicoSeiga.LSNicoSeiga.Login")) mocknslogin = self.__MakeLoginMock(mocknslogin) lsns_cont = LSNicoSeiga.LSNicoSeiga(self.email, self.password, self.TEST_BASE_PATH) # 正常系 # 作品ページURL url_s = "https://seiga.nicovideo.jp/seiga/im5360137" self.assertEqual(True, lsns_cont.IsTargetUrl(url_s)) # 作品ページURL(クエリつき) url_s = "https://seiga.nicovideo.jp/seiga/im5360137?track=ranking" self.assertEqual(True, lsns_cont.IsTargetUrl(url_s)) # 異常系 # 全く関係ないアドレス(Google) url_s = "https://www.google.co.jp/" self.assertEqual(False, lsns_cont.IsTargetUrl(url_s)) # 全く関係ないアドレス(pixiv) url_s = "https://www.pixiv.net/artworks/24010650" self.assertEqual(False, lsns_cont.IsTargetUrl(url_s)) # 漫画ページ url_s = "https://seiga.nicovideo.jp/watch/mg558273" self.assertEqual(False, lsns_cont.IsTargetUrl(url_s)) # httpsでなくhttp url_s = "http://seiga.nicovideo.jp/seiga/im5360137" self.assertEqual(False, lsns_cont.IsTargetUrl(url_s)) # 静画の別ページ url_s = "https://seiga.nicovideo.jp/illust/ranking/point/hourly?save=1" self.assertEqual(False, lsns_cont.IsTargetUrl(url_s)) # プリフィックスエラー url_s = "ftp://seiga.nicovideo.jp/seiga/im5360137" self.assertEqual(False, lsns_cont.IsTargetUrl(url_s))
def test_GetIllustId(self): """ニコニコ静画作品ページURLからイラストIDを取得する機能をチェック """ with ExitStack() as stack: mocknslogin = stack.enter_context(patch("PictureGathering.LSNicoSeiga.LSNicoSeiga.Login")) mocknslogin = self.__MakeLoginMock(mocknslogin) lsns_cont = LSNicoSeiga.LSNicoSeiga(self.email, self.password, self.TEST_BASE_PATH) # 正常系 r = "{:0>7}".format(random.randint(0, 9999999)) # 作品ページURL url_s = "https://seiga.nicovideo.jp/seiga/im{}".format(r) expect = int(r) actual = lsns_cont.GetIllustId(url_s) self.assertEqual(expect, actual) # 異常系 # 漫画ページ url_s = "https://seiga.nicovideo.jp/watch/mg{}".format(r) expect = -1 actual = lsns_cont.GetIllustId(url_s) self.assertEqual(expect, actual)