Added manga-py source
This commit is contained in:
120
manga-py-stable_1.x/tests/base.py
Normal file
120
manga-py-stable_1.x/tests/base.py
Normal file
@@ -0,0 +1,120 @@
|
||||
import json
|
||||
import unittest
|
||||
from os import path
|
||||
|
||||
from manga_py import fs
|
||||
from manga_py.base_classes import Base, Static
|
||||
|
||||
root_path = fs.dirname(path.realpath(__file__))
|
||||
|
||||
files_paths = [
|
||||
['/files/img1.jpg', '/temp/img1.jpg'],
|
||||
['/files/img2.png', '/temp/img2.png'],
|
||||
['/files/img3.jpg', '/temp/img3.jpg'],
|
||||
['/files/img4.jpg', '/temp/img4.jpg'],
|
||||
['/files/img5.png', '/temp/img5.png'],
|
||||
['/files/img6.gif', '/temp/img6.gif'],
|
||||
['/files/img7.webp', '/temp/img7.webp'],
|
||||
]
|
||||
|
||||
|
||||
def httpbin(bp: Base, _path: str):
|
||||
variants = [
|
||||
'https://httpbin-sttv.herokuapp.com',
|
||||
'https://httpbin-org.herokuapp.com',
|
||||
'https://httpbin.org',
|
||||
]
|
||||
_httpbin = None
|
||||
for url in variants:
|
||||
response = bp.http().requests(url=url, method='head')
|
||||
if response.ok:
|
||||
_httpbin = url
|
||||
if _httpbin is None:
|
||||
raise AttributeError('503. Service temporary unavailable / Path: %s ' % _path)
|
||||
return '{}/{}'.format(_httpbin, _path.lstrip('/'))
|
||||
|
||||
|
||||
class TestBaseClass(unittest.TestCase):
|
||||
|
||||
def test_base0(self):
|
||||
bp = Base()
|
||||
domain = 'http://example.org'
|
||||
bp._params['url'] = domain + '/manga/here.html'
|
||||
self.assertEqual(bp._params['url'], bp.get_url())
|
||||
self.assertEqual(domain, bp.domain)
|
||||
|
||||
def test_base1(self):
|
||||
bp = Base()
|
||||
self.assertRaises(KeyError, bp.get_url)
|
||||
|
||||
def test_autocrop(self):
|
||||
bp = Base()
|
||||
img = files_paths[0]
|
||||
fs.unlink(root_path + img[1])
|
||||
bp.image_auto_crop(root_path + img[0], root_path + img[1])
|
||||
self.assertTrue(fs.is_file(root_path + img[1]))
|
||||
|
||||
def test_manualcrop0(self):
|
||||
bp = Base()
|
||||
img = files_paths[0]
|
||||
fs.unlink(root_path + img[1])
|
||||
bp._image_params['crop'] = (10, 2, 100, 100)
|
||||
bp.image_manual_crop(root_path + img[0], root_path + img[1])
|
||||
self.assertTrue(fs.is_file(root_path + img[1]))
|
||||
|
||||
def test_manualcrop1(self):
|
||||
bp = Base()
|
||||
img = files_paths[0]
|
||||
fs.unlink(root_path + img[1])
|
||||
bp._image_params['offsets_crop'] = (10, 32, 12, 5)
|
||||
bp.image_manual_crop(root_path + img[0], root_path + img[1])
|
||||
self.assertTrue(fs.is_file(root_path + img[1]))
|
||||
|
||||
def test_get(self):
|
||||
bp = Base()
|
||||
bp._params['url'] = 'http://example.org/manga/here.html'
|
||||
url = httpbin(bp, 'get')
|
||||
self.assertEqual(url, json.loads(bp.http_get(url))['url'])
|
||||
|
||||
def test_post(self):
|
||||
bp = Base()
|
||||
bp._params['url'] = 'http://example.org/manga/here.html'
|
||||
url = httpbin(bp, 'post')
|
||||
self.assertEqual(url, json.loads(bp.http_post(url))['url'])
|
||||
|
||||
def test_cookies0(self):
|
||||
bp = Base()
|
||||
bp._params['url'] = 'http://example.org/manga/here.html'
|
||||
url = httpbin(bp, 'cookies')
|
||||
cookies = {'test': 'test-cookie'}
|
||||
bp.http_get(httpbin(bp, 'cookies/set?test=') + cookies['test'])
|
||||
content = bp.http_get(url, cookies=cookies)
|
||||
# print(content)
|
||||
self.assertEqual(cookies['test'], json.loads(content)['cookies']['test'])
|
||||
|
||||
def test_cookies1(self):
|
||||
bp = Base()
|
||||
bp._params['url'] = 'http://example.org/manga/here.html'
|
||||
url = httpbin(bp, 'cookies/set?test=test-cookie')
|
||||
self.assertEqual('test-cookie', bp.http().get_base_cookies(url).get('test'))
|
||||
|
||||
def test_redirect0(self):
|
||||
from urllib.parse import quote
|
||||
bp = Base()
|
||||
bp._params['url'] = 'http://example.org/manga/here.html'
|
||||
url = httpbin(bp, 'redirect-to?url=' + quote(httpbin(bp, 'get?test=1')))
|
||||
test_data = {'test': '1'}
|
||||
content = bp.http_get(url)
|
||||
# print(content)
|
||||
self.assertEqual(test_data, json.loads(content)['args'])
|
||||
|
||||
def test_redirect1(self):
|
||||
bp = Base()
|
||||
bp._params['url'] = 'http://example.org/manga/here.html'
|
||||
url = httpbin(bp, 'redirect/11')
|
||||
self.assertRaises(AttributeError, bp.http_get, url)
|
||||
|
||||
def test_ascii(self):
|
||||
string = u'/\\\0@#$⼢⼣⼤abCde123йцуڪڦ'
|
||||
normal_string = '@⼢⼣⼤abCde123йцуڪڦ'
|
||||
self.assertEqual(Static.remove_not_ascii(string), normal_string)
|
||||
Reference in New Issue
Block a user