From 7ae6d01a560dea221e20363630f621f715f6d9f7 Mon Sep 17 00:00:00 2001 From: martmists <martmists@gmail.com> Date: Tue, 20 Jun 2017 18:43:18 +0000 Subject: [PATCH] Travis, Tests and Code Style --- .travis.yml | 8 ++++++++ README.md | 1 + owo-logo.png | Bin 0 -> 22113 bytes owo/aiohttp2.py | 7 ++++--- owo/async_owo.py | 3 --- owo/bg.py | 11 ++++++----- owo/owo.py | 11 +++++------ owo/utils.py | 11 +++++++---- test_code.py | 20 ++++++++++++++++++++ test_style.py | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 10 files changed, 99 insertions(+), 21 deletions(-) create mode 100644 .travis.yml create mode 100644 owo-logo.png create mode 100644 test_code.py create mode 100644 test_style.py diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..93754b4 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,8 @@ +language: python + +python: + - "3.6" + +install: "pip install flake8 pylint requests aiohttp" +script: pytest +cache: pip \ No newline at end of file diff --git a/README.md b/README.md index d017b0d..05d6aac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # owo.py + A wrapper that was written inside of Python that allows for you to upload images to the owo.whats-th.is and shorten URLs through uwu.whats-th.is. Allows for both methods through Async and Non-Async. (Suppports py2) diff --git a/owo-logo.png b/owo-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b4b55344b585f2886a44523f87ad500f704ed333 GIT binary patch literal 22113 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 literal 0 HcmV?d00001 diff --git a/owo/aiohttp2.py b/owo/aiohttp2.py index d8449c7..5b7211c 100644 --- a/owo/aiohttp2.py +++ b/owo/aiohttp2.py @@ -2,9 +2,10 @@ # because it's shit and PR #916 has been open for about a year # Thanks to Leovoel for helping me with this +from urllib.parse import quote + from aiohttp.multipart import TOKEN from aiohttp.hdrs import CONTENT_DISPOSITION -from urllib.parse import quote import aiohttp @@ -12,14 +13,14 @@ import aiohttp class BodyPartWriter(aiohttp.BodyPartWriter): def set_content_disposition(self, disposition_type, should_quote=True, **params): - if not disposition_type or not (TOKEN > set(disposition_type)): + if not disposition_type or not TOKEN > set(disposition_type): raise ValueError('bad content disposition type ' '{!r}'.format(disposition_type)) value = disposition_type if params: lparams = [] for key, val in params.items(): - if not key or not (TOKEN > set(key)): + if not key or not TOKEN > set(key): raise ValueError('bad content disposition parameter ' '{!r}={!r}'.format(key, val)) qval = quote(val, '') if should_quote else val diff --git a/owo/async_owo.py b/owo/async_owo.py index 6bf2875..66f51b1 100644 --- a/owo/async_owo.py +++ b/owo/async_owo.py @@ -1,12 +1,10 @@ import asyncio -from functools import lru_cache from .utils import check_size, BASE_URL, MAX_FILES,\ UPLOAD_PATH, SHORTEN_PATH, UPLOAD_STANDARD,\ SHORTEN_STANDARD, UPLOAD_BASES, SHORTEN_BASES - @asyncio.coroutine def async_upload_files(key, *files, **kwargs): verbose = kwargs.get("verbose", False) @@ -62,7 +60,6 @@ def async_upload_files(key, *files, **kwargs): return results - @asyncio.coroutine def async_shorten_urls(key, *urls, **kwargs): verbose = kwargs.get("verbose", False) diff --git a/owo/bg.py b/owo/bg.py index b87f34e..d929e18 100644 --- a/owo/bg.py +++ b/owo/bg.py @@ -9,12 +9,13 @@ usage: `$ owo-bg -p path -k API_KEY` from __future__ import print_function import argparse -import owo import os import sys -import time import shlex import subprocess +import time + +import owo def print_v(text): @@ -75,7 +76,7 @@ def main(): os.system('termux-tts-speak "Upload failed"') else: os.system('termux-toast "Upload failed"') - except: + except FileNotFoundError: pass except OverflowError: @@ -87,7 +88,7 @@ def main(): os.system('termux-tts-speak "Upload too big"') else: os.system('termux-toast "Upload too big"') - except: + except FileNotFoundError: pass sent_files.append(file) @@ -130,4 +131,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/owo/owo.py b/owo/owo.py index 582039f..1fab787 100644 --- a/owo/owo.py +++ b/owo/owo.py @@ -8,6 +8,8 @@ except ImportError: # Create a dummy wrapper instead def lru_cache(maxsize=None): + del maxsize + def wrapper(func): def inner(*args, **kwargs): return func(*args, **kwargs) @@ -47,12 +49,9 @@ def upload_files(key, *files, **kwargs): multipart = [( "files[]", - ( - file.lower(), - open(file, "rb"), - mimetypes.guess_type(file)[0] - )) - for file in files] + (file.lower(), open(file, "rb"), + mimetypes.guess_type(file)[0]) + ) for file in files] response = requests.post(BASE_URL+UPLOAD_PATH, files=multipart, params={"key": key}) diff --git a/owo/utils.py b/owo/utils.py index 1ca355b..a12a7a1 100644 --- a/owo/utils.py +++ b/owo/utils.py @@ -1,9 +1,10 @@ import os.path import re +import requests -DOMAINS_URL = "https://raw.githubusercontent.com/whats-this/landing/master/public-cdn-domains.txt" +DOMAINS_URL = ("https://raw.githubusercontent.com/whats-this/landing/" + "master/public-cdn-domains.txt") -import requests resp = requests.get(DOMAINS_URL) content = resp.text @@ -17,9 +18,11 @@ SHORTEN_PATH = "/shorten/polr" UPLOAD_STANDARD = "https://owo.whats-th.is/" SHORTEN_STANDARD = "https://uwu.whats-th.is/" -UPLOAD_BASES = ["https://{}/".format(url) for url in re.findall("files:(.+)", content)] +UPLOAD_BASES = ["https://{}/".format(url) for url in re.findall("files:(.+)", + content)] -SHORTEN_BASES = ["https://{}/".format(url) for url in re.findall("link:(.+)", content)] +SHORTEN_BASES = ["https://{}/".format(url) for url in re.findall("link:(.+)", + content)] def check_size(file): diff --git a/test_code.py b/test_code.py new file mode 100644 index 0000000..68f53e0 --- /dev/null +++ b/test_code.py @@ -0,0 +1,20 @@ +import asyncio +import os + +import owo + + +key = os.environ["TRAVIS-KEY"] +loop = asyncio.get_event_loop() + + +def test_upload(): + fname = owo.upload_files(key, "owo-logo.png") + print(fname) + + +def test_shorten(): + hlink = owo.shorten_urls(key, "https://google.com") + print(hlink) + +# TODO: add more test cases diff --git a/test_style.py b/test_style.py new file mode 100644 index 0000000..70eea80 --- /dev/null +++ b/test_style.py @@ -0,0 +1,48 @@ +from re import match +from subprocess import Popen, PIPE + + +def test_flake8(): + proc = Popen("flake8 owo --exclude=__init__.py".split(), + stdout=PIPE) + + out = proc.stdout.read().decode() + + lines = [l for l in out.split("\n")if l] + + print(out) + + assert not bool(lines) + + +def test_pylint(): + proc = Popen(("pylint --disable=missing-docstring,too-many-branches,fixme," + "invalid-name,redefined-builtin,too-many-statements," + "no-name-in-module,protected-access,too-many-arguments," + "attribute-defined-outside-init,arguments-differ,no-member," + "too-many-instance-attributes,import-error,too-many-locals," + "parse-error,too-few-public-methods,exec-used," + "cell-var-from-loop,wildcard-import,duplicate-code," + "function-redefined" + " owo").split(), + stdout=PIPE) + + proc.wait() + + out = proc.stdout.read().decode() + + last_line = [l for l in out.split("\n")if l][-1] + + print(out) + + m = match("Your code has been rated at 10\.00\/10", last_line) + + assert m is not None + + +if __name__ == "__main__": + test_flake8() + print("Flake8 success!") + + test_pylint() + print("Pylint success!") -- GitLab