def testCreateMangaFilename(self): p = open('./test/test-image-manga.htm', 'r') page = BeautifulSoup(p.read()) imageInfo = PixivImage(28820443, page) imageInfo.imageCount = 100 page.decompose() del page # cross check with json value for artist info js_file = open('./test/detail-554800.json', 'r') js = json.load(js_file) self.assertEqual(imageInfo.artist.artistId, str(js["user"]["id"])) self.assertEqual(imageInfo.artist.artistToken, js["user"]["account"]) self.assertEqual(imageInfo.artist.artistAvatar, js["user"]["profile_image_urls"]["medium"].replace("_170", "")) nameFormat = '%member_token% (%member_id%)\\%urlFilename% %page_number% %works_date_only% %works_res% %works_tools% %title%' expected = unicode(u'maidoll (554800)\\28865189_p0 001 07/22/12 Multiple images: 2P C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p0.jpg') # print(result) self.assertEqual(result, expected) expected = unicode(u'maidoll (554800)\\28865189_p14 015 07/22/12 Multiple images: 2P C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p14.jpg') # print(result) self.assertEqual(result, expected) expected = unicode(u'maidoll (554800)\\28865189_p921 922 07/22/12 Multiple images: 2P C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p921.jpg') # print(result) self.assertEqual(result, expected)
def testCreateMangaFilename(self): p = open('./test/test-image-manga.htm', 'r') page = BeautifulSoup(p.read()) imageInfo = PixivImage(28820443, page) imageInfo.imageCount = 100 page.decompose() del page # cross check with json value for artist info js_file = open('./test/detail-554800.json', 'r') js = json.load(js_file) self.assertEqual(imageInfo.artist.artistId, str(js["user"]["id"])) self.assertEqual(imageInfo.artist.artistToken, js["user"]["account"]) self.assertEqual(imageInfo.artist.artistAvatar, js["user"]["profile_image_urls"]["medium"].replace("_170", "")) nameFormat = '%member_token% (%member_id%)\\%urlFilename% %page_number% %works_date_only% %works_res% %works_tools% %title%' expected = unicode(u'maidoll (554800)\\28865189_p0 001 07/22/12 Multiple images: 2P C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p0.jpg') # print(result) self.assertEqual(result, expected) expected = unicode(u'maidoll (554800)\\28865189_p14 015 07/22/12 Multiple images: 2P C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p14.jpg') # print(result) self.assertEqual(result, expected) expected = unicode(u'maidoll (554800)\\28865189_p921 922 07/22/12 Multiple images: 2P C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p921.jpg') # print(result) self.assertEqual(result, expected)
def testPixivImageUgoira(self): # print('\nTesting image page') p = open('./test/test-image-ugoira.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(46281014, page) urls = image.ParseImages(page) # print(image.imageUrls) self.assertTrue(image.imageUrls[0].find(".zip") > -1) page.decompose() del page
def testPixivImageParseBig(self): # print('\nTesting parse Big Image') p = open('./test.new/test-image-unicode.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage() urls = image.ParseImages(page, mode='big') self.assertEqual(len(urls), 1) # print(urls[0]) imageId = urls[0].split('/')[-1].split('_')[0] # print('imageId:',imageId) self.assertEqual(int(imageId), 2493913)
def testPixivImageParseMangaTwoPage(self): # print('\nTesting parse Manga Images') p = open('./test.new/test-image-manga-2page.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage() urls = image.ParseImages(page, mode='manga') # print(urls) self.assertEqual(len(urls), 11) self.assertEqual(len(urls), image.imageCount) imageId = urls[0].split('/')[-1].split('.')[0] # print('imageId:',imageId) self.assertEqual(imageId, '46322053_p0')
def testPixivImageParseManga(self): # print('\nTesting parse Manga Images') p = open('./test.new/test-image-parsemanga.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage() urls = image.ParseImages(page, mode='manga', _br=MockPixivBrowser(None)) # print(urls) self.assertEqual(len(urls), 3) self.assertEqual(len(urls), image.imageCount) imageId = urls[0].split('/')[-1].split('.')[0] # print('imageId:',imageId) self.assertEqual(imageId, '46279245_p0')
def testCreateFilenameUnicode(self): p = open('./test/test-image-unicode.htm', 'r') page = as_soup(p.read()) imageInfo = PixivImage(2493913, page) page.decompose() del page # cross check with json value for artist info js_file = open('./test/detail-267014.json', 'r') js = json.load(js_file) self.assertEqual(imageInfo.artist.artistId, str(js["user"]["id"])) self.assertEqual(imageInfo.artist.artistToken, js["user"]["account"]) self.assertEqual( imageInfo.artist.artistAvatar, js["user"]["profile_image_urls"]["medium"].replace("_170", "")) nameFormat = '%member_token% (%member_id%)\\%urlFilename% %works_date_only% %works_res% %works_tools% %title%' expected = str( 'balzehn (267014)\\2493913 12/23/08 852x1200 アラクネのいる日常2.jpg') result = PixivHelper.makeFilename( nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img16/img/balzehn/2493913.jpg') # print(result) self.assertEqual(result, expected)
def testPixivImageParseMangaBig(self): # print('\nTesting parse Manga Images') # Issue #224 p = open('./test.new/test-image-big-manga.html', 'r') page = BeautifulSoup(p.read()) image = PixivImage(iid=62670665) image.ParseInfo(page) urls = image.ParseImages(page, mode=image.imageMode, _br=MockPixivBrowser(1)) self.assertEqual(len(urls), 1) # print(urls[0]) self.assertGreater(len(urls[0]), 0) imageId = urls[0].split('/')[-1].split('_')[0] # print('imageId:',imageId) self.assertEqual(int(imageId), 62670665)
def testPixivImageParseInfoPixivPremiumOffer(self): p = open( './test.new/test-image-parse-image-38826533-pixiv-premium.html', 'r') page = BeautifulSoup(p.read()) image2 = PixivImage(38826533, page) page.decompose() del page self.assertEqual(image2.imageId, 38826533) self.assertEqual(image2.imageTitle, u"てやり") self.assertEqual(image2.imageCaption, u'一応シーダ様です。') self.assertTrue(u'R-18' in image2.imageTags) self.assertTrue(u'FE' in image2.imageTags) self.assertTrue(u'ファイアーエムブレム' in image2.imageTags) self.assertTrue(u'シーダ' in image2.imageTags) self.assertEqual(image2.imageMode, "big") self.assertEqual(image2.worksDate, '9/30/2013 01:43') self.assertEqual(image2.worksResolution, '1000x2317') self.assertEqual(image2.worksTools, 'CLIP STUDIO PAINT') # self.assertEqual(image2.jd_rtv, 88190) # self.assertEqual(image2.jd_rtc, 6711) # self.assertEqual(image2.jd_rtt, 66470) self.assertEqual(image2.artist.artistToken, 'hvcv')
def testPixivImageParseInfo(self): p = open('./test/test-image-info.html', 'r') page = BeautifulSoup(p.read()) image2 = PixivImage(32039274, page) page.decompose() del page self.assertEqual(image2.imageId, 32039274) self.assertEqual(image2.imageTitle, u"新しいお姫様") self.assertTrue(len(image2.imageCaption) > 0) # print(u"\r\nCaption = {0}".format(image2.imageCaption)) self.assertTrue(u'MAYU' in image2.imageTags) self.assertTrue(u'VOCALOID' in image2.imageTags) self.assertTrue(u'VOCALOID3' in image2.imageTags) self.assertTrue(u'なにこれかわいい' in image2.imageTags) self.assertTrue(u'やはり存在する斧' in image2.imageTags) self.assertEqual(image2.imageMode, "big") self.assertEqual(image2.worksDate, '12/10/12 15:23') self.assertEqual(image2.worksResolution, '642x900') # self.assertEqual(image2.worksTools, 'Photoshop SAI') # self.assertEqual(image2.jd_rtv, 88190) # self.assertEqual(image2.jd_rtc, 6711) # self.assertEqual(image2.jd_rtt, 66470) self.assertEqual(image2.artist.artistToken, 'nardack')
def testPixivImageNoImageEng(self): # print('\nTesting image page - no image') p = open('./test/test-image-noimage-eng.htm', 'r') page = BeautifulSoup(p.read()) with self.assertRaises(PixivException): PixivImage(123, page) page.decompose() del page
def testPixivImageDeleted(self): # print('\nTesting image page - deleted image') p = open('./test/test-image-deleted.htm', 'r') page = as_soup(p.read()) with self.assertRaises(PixivException): PixivImage(123, page) page.decompose() del page
def testPixivImageServerError2(self): # print('\nTesting image page') p = open('./test/test-image-generic-error.html', 'r') page = as_soup(p.read()) with self.assertRaises(PixivException) as ex: image = PixivImage(37882549, page) self.assertEqual(ex.exception.errorCode, PixivException.UNKNOWN_IMAGE_ERROR) page.decompose() del page
def testPixivImageNoLogin(self): # print('\nTesting not logged in') p = open('./test/test-image-nologin.htm', 'r') page = BeautifulSoup(p.read()) try: image = PixivImage(9138317, page) self.assertRaises(PixivException) except PixivException as ex: self.assertEqual(ex.errorCode, PixivException.NOT_LOGGED_IN)
def testPixivImageServerError(self): # print('\nTesting image page') p = open('./test/test-server-error.html', 'r') page = BeautifulSoup(p.read()) with self.assertRaises(PixivException) as ex: image = PixivImage(9138317, page) self.assertEqual(ex.exception.errorCode, PixivException.SERVER_ERROR) page.decompose() del page
def testGuroPageEng(self): try: path = './test/test-image-guro-e.html' p = open(path, 'r') page = as_soup(p.read()) image = PixivImage(31111130, page) self.assertRaises(PixivException) except PixivException as ex: self.assertEqual(ex.errorCode, 2005)
def testEroPageEng(self): try: path = './test/test-image-ero-e.html' p = open(path, 'r') page = BeautifulSoup(p.read()) image = PixivImage(31115956, page) self.assertRaises(PixivException) except PixivException as ex: self.assertEqual(ex.errorCode, 2005)
def testMyPickPage(self): try: path = './test/test-image-my_pick.html' p = open(path, 'r') page = BeautifulSoup(p.read()) image = PixivImage(12467674, page) self.assertRaises(PixivException) except PixivException as ex: self.assertEqual(ex.errorCode, 2004)
def testPixivImageModeManga(self): # print('\nTesting image page - manga') p = open('./test/test-image-manga.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(28820443, page) page.decompose() del page self.assertNotEqual(image, None) self.assertEqual(image.imageId, 28820443) self.assertEqual(image.imageMode, 'manga')
def testPixivImageRateCount(self): p = open('./test/test-image-rate_count.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(28865189, page) page.decompose() del page self.assertNotEqual(image, None) self.assertEqual(image.imageId, 28865189) self.assertEqual(image.imageMode, 'manga') self.assertTrue(image.jd_rtv > 0) self.assertTrue(image.jd_rtc > 0)
def testCreateFilenameUnicode(self): p = open('./test/test-image-unicode.htm', 'r') page = BeautifulSoup(p.read()) imageInfo = PixivImage(2493913, page) page.decompose() del page nameFormat = '%member_token% (%member_id%)\%urlFilename% %works_date_only% %works_res% %works_tools% %title%' expected = unicode(u'balzehn (267014)\\2493913 12-23-2008 852x1200 Photoshop SAI つけペン アラクネのいる日常2.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img16/img/balzehn/2493913.jpg') # print(result) self.assertEqual(result, expected)
def testPixivImageUnicode(self): # print('\nTesting image page - big') p = open('./test/test-image-unicode.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(2493913, page) page.decompose() del page self.assertNotEqual(image, None) self.assertEqual(image.imageId, 2493913) self.assertEqual(image.imageMode, 'big') self.assertEqual(image.worksDate, '12/23/08 12:01') self.assertEqual(image.worksResolution, '852x1200')
def testPixivImageParseNoTags(self): p = open('./test/test-image-no_tags.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(9175987, page) page.decompose() del page self.assertNotEqual(image, None) self.assertEqual(image.imageId, 9175987) self.assertEqual(image.worksDate, '03/05/10 18:04') self.assertEqual(image.worksResolution, '1155x768') # self.assertEqual(image.worksTools, u'SAI') self.assertEqual(image.imageTags, [])
def testPixivImageNoAvatar(self): # print('\nTesting artist page without avatar image') p = open('./test/test-image-noavatar.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(20496355, page) page.decompose() del page # self.assertNotEqual(image, None) self.assertEqual(image.artist.artistToken, 'iymt') self.assertEqual(image.imageId, 20496355) # 07/22/2011 03:09|512×600|RETAS STUDIO # print(image.worksDate, image.worksResolution, image.worksTools) self.assertEqual(image.worksDate, '07/21/11 18:09') self.assertEqual(image.worksResolution, '512x600')
def testCreateMangaFilename(self): p = open('./test/test-image-manga.htm', 'r') page = BeautifulSoup(p.read()) imageInfo = PixivImage(28820443, page) imageInfo.imageCount = 100 page.decompose() del page # print(imageInfo.PrintInfo()) nameFormat = '%member_token% (%member_id%)\%urlFilename% %page_number% %works_date_only% %works_res% %works_tools% %title%' expected = unicode(u'ffei (554800)\\28865189_p0 001 7-23-2012 複数枚投稿 2P Photoshop C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p0.jpg') # print(result) self.assertEqual(result, expected) expected = unicode(u'ffei (554800)\\28865189_p14 015 7-23-2012 複数枚投稿 2P Photoshop C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p14.jpg') # print(result) self.assertEqual(result, expected) expected = unicode(u'ffei (554800)\\28865189_p921 922 7-23-2012 複数枚投稿 2P Photoshop C82おまけ本 「沙耶は俺の嫁」サンプル.jpg') result = PixivHelper.makeFilename(nameFormat, imageInfo, artistInfo=None, tagsSeparator=' ', fileUrl='http://i2.pixiv.net/img26/img/ffei/28865189_p921.jpg') # print(result) self.assertEqual(result, expected)
def testPixivImageRateCount(self): p = open('./test.new/test-image-rate_count.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(28865189, page) page.decompose() del page self.assertNotEqual(image, None) self.assertEqual(image.imageId, 28865189) self.assertEqual(image.imageMode, 'manga') self.assertTrue(image.jd_rtv > 0) self.assertTrue(image.jd_rtc > 0) # deprecated since 11-April-2017 # self.assertTrue(image.jd_rtt > 0) self.assertEqual(image.worksTools, "Photoshop")
def testPixivImageParseTags(self): p = open('./test/test-image-parse-tags.htm', 'r') page = BeautifulSoup(p.read()) image = PixivImage(11164869, page) page.decompose() del page self.assertNotEqual(image, None) self.assertEqual(image.imageId, 11164869) self.assertEqual(image.worksDate, '06/08/10 17:33') self.assertEqual(image.worksResolution, '1009x683') # self.assertEqual(image.worksTools, u'SAI') # print(image.imageTags) joinedResult = " ".join(image.imageTags) self.assertEqual(joinedResult.find("VOCALOID") > -1, True)
def testPixivImageParseInfo2(self): p = open('./test/test-image-manga-69287623.htm', 'r') page = as_soup(p.read()) image2 = PixivImage(69287623, page) page.decompose() del page self.assertEqual(image2.imageId, 69287623) self.assertEqual(image2.imageTitle, "「ふふっ」漫画 その9") self.assertTrue('漫画' in image2.imageTags) self.assertEqual(image2.imageMode, "manga") self.assertEqual(image2.worksDate, '06/17/18 23:16') self.assertEqual(image2.worksResolution, 'Multiple images: 2P') self.assertEqual(image2.artist.artistToken, 'komesama')
def testPixivImageParseInfoSelf(self): # assuming being accessed via manage page for your own artwork. p = open('./test/test-image-selfimage.htm', 'r') page = BeautifulSoup(p.read()) image2 = PixivImage(65079382, page) page.decompose() del page self.assertEqual(image2.imageId, 65079382) self.assertEqual(image2.imageTitle, u"Test") self.assertTrue(len(image2.imageCaption) > 0) # print(u"\r\nCaption = {0}".format(image2.imageCaption)) self.assertTrue(u'None' in image2.imageTags) self.assertEqual(image2.imageMode, "big") self.assertEqual(image2.worksDate, '09/22/17 02:29') self.assertEqual(image2.worksResolution, '946x305')
def testPixivImageParseMangaInfoMixed(self): # print('\nTesting parse Manga Images') # Issue #224 p = open('./test/test-image-big-manga-mixed.html', 'r') page = as_soup(p.read()) image = PixivImage(iid=67487303, page=page) # image.PrintInfo() self.assertTrue('R-18' in image.imageTags) self.assertTrue('Fate/EXTRA' in image.imageTags) self.assertTrue('ネロ・クラウディウス' in image.imageTags) self.assertTrue('腋' in image.imageTags) self.assertTrue('クリチラ' in image.imageTags) self.assertTrue('おっぱい' in image.imageTags) self.assertTrue('Fate/EXTRA_Last_Encore' in image.imageTags) self.assertEqual(image.imageMode, "manga") self.assertEqual(image.worksDate, '02/27/18 03:31') self.assertEqual(image.worksResolution, 'Multiple images: 2P') # self.assertEqual(image.worksTools, 'SAI') self.assertEqual(image.artist.artistToken, 's33127')
def testPixivImageParseInfoMixed(self): p = open('./test/test-image-info2.html', 'r') page = BeautifulSoup(p.read()) image2 = PixivImage(67729319, page) page.decompose() del page # image2.PrintInfo() self.assertEqual(image2.imageId, 67729319) self.assertEqual(image2.imageTitle, u"独り言") self.assertTrue(len(image2.imageCaption) > 0) # print(u"\r\nCaption = {0}".format(image2.imageCaption)) self.assertTrue(u'FGO' in image2.imageTags) self.assertTrue(u'ネロ・クラウディウス' in image2.imageTags) self.assertTrue(u'セイバー・ブライド' in image2.imageTags) self.assertEqual(image2.imageMode, "big") self.assertEqual(image2.worksDate, '03/14/18 09:00') self.assertEqual(image2.worksResolution, '721x1200') self.assertEqual(image2.artist.artistToken, 'kawanocyan')