mirror of
https://github.com/LBRYFoundation/lbry-sdk.git
synced 2025-08-30 00:41:25 +00:00
tests for windows, simplify pylint
This commit is contained in:
parent
55d47b9f19
commit
7f7a6a619f
10 changed files with 85 additions and 52 deletions
|
@ -17,13 +17,18 @@ environment:
|
||||||
|
|
||||||
clone_folder: c:\projects\lbry
|
clone_folder: c:\projects\lbry
|
||||||
|
|
||||||
|
test_script:
|
||||||
|
- cd C:\projects\lbry\
|
||||||
|
- pip install cython
|
||||||
|
- pip install mock pylint unqlite
|
||||||
|
- pylint lbrynet
|
||||||
|
- python -m twisted.trial tests # avoids having to set PYTHONPATH=. (see https://twistedmatrix.com/trac/ticket/9035)
|
||||||
|
#- rvm use 2.3.1 && gem install danger --version '~> 4.0' && danger
|
||||||
|
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- cd C:\projects\lbry\build\
|
- cd C:\projects\lbry\build\
|
||||||
- python set_version.py
|
|
||||||
- python set_build.py
|
|
||||||
- ps: .\build.ps1
|
- ps: .\build.ps1
|
||||||
- python zip_daemon.py
|
|
||||||
- python release_on_tag.py
|
|
||||||
|
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|
59
.pylintrc
59
.pylintrc
|
@ -65,7 +65,61 @@ confidence=
|
||||||
# --enable=similarities". If you want to run only the classes checker, but have
|
# --enable=similarities". If you want to run only the classes checker, but have
|
||||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||||
# --disable=W"
|
# --disable=W"
|
||||||
disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating
|
disable=
|
||||||
|
anomalous-backslash-in-string,
|
||||||
|
arguments-differ,
|
||||||
|
attribute-defined-outside-init,
|
||||||
|
bad-continuation,
|
||||||
|
bare-except,
|
||||||
|
broad-except,
|
||||||
|
cell-var-from-loop,
|
||||||
|
consider-iterating-dictionary,
|
||||||
|
cyclic-import,
|
||||||
|
dangerous-default-value,
|
||||||
|
duplicate-code,
|
||||||
|
exec-used,
|
||||||
|
fixme,
|
||||||
|
global-statement,
|
||||||
|
inherit-non-class,
|
||||||
|
invalid-name,
|
||||||
|
locally-disabled,
|
||||||
|
logging-not-lazy,
|
||||||
|
missing-docstring,
|
||||||
|
multiple-imports,
|
||||||
|
no-init,
|
||||||
|
no-member,
|
||||||
|
no-self-use,
|
||||||
|
old-style-class,
|
||||||
|
pointless-string-statement,
|
||||||
|
protected-access,
|
||||||
|
redefined-builtin,
|
||||||
|
redefined-outer-name,
|
||||||
|
redefined-variable-type,
|
||||||
|
relative-import,
|
||||||
|
signature-differs,
|
||||||
|
singleton-comparison,
|
||||||
|
super-init-not-called,
|
||||||
|
too-few-public-methods,
|
||||||
|
too-many-arguments,
|
||||||
|
too-many-branches,
|
||||||
|
too-many-instance-attributes,
|
||||||
|
too-many-lines,
|
||||||
|
too-many-locals,
|
||||||
|
too-many-nested-blocks,
|
||||||
|
too-many-public-methods,
|
||||||
|
too-many-return-statements,
|
||||||
|
too-many-statements,
|
||||||
|
trailing-newlines,
|
||||||
|
undefined-loop-variable,
|
||||||
|
ungrouped-imports,
|
||||||
|
unidiomatic-typecheck,
|
||||||
|
unnecessary-lambda,
|
||||||
|
unused-argument,
|
||||||
|
unused-variable,
|
||||||
|
useless-else-on-loop,
|
||||||
|
wildcard-import,
|
||||||
|
wrong-import-order,
|
||||||
|
wrong-import-position
|
||||||
|
|
||||||
|
|
||||||
[REPORTS]
|
[REPORTS]
|
||||||
|
@ -294,7 +348,8 @@ ignore-mixin-members=yes
|
||||||
# (useful for modules/projects where namespaces are manipulated during runtime
|
# (useful for modules/projects where namespaces are manipulated during runtime
|
||||||
# and thus existing member attributes cannot be deduced by static analysis. It
|
# and thus existing member attributes cannot be deduced by static analysis. It
|
||||||
# supports qualified module names, as well as Unix pattern matching.
|
# supports qualified module names, as well as Unix pattern matching.
|
||||||
ignored-modules=twisted.internet.reactor,leveldb
|
ignored-modules=twisted.internet.reactor,leveldb,distutils
|
||||||
|
# Ignoring distutils because: https://github.com/PyCQA/pylint/issues/73
|
||||||
|
|
||||||
# List of classes names for which member attributes should not be checked
|
# List of classes names for which member attributes should not be checked
|
||||||
# (useful for classes with attributes dynamically set). This supports can work
|
# (useful for classes with attributes dynamically set). This supports can work
|
||||||
|
|
|
@ -38,6 +38,6 @@ install:
|
||||||
script:
|
script:
|
||||||
- pip install cython
|
- pip install cython
|
||||||
- pip install mock pylint unqlite
|
- pip install mock pylint unqlite
|
||||||
- ./run_pylint.sh
|
- pylint lbrynet
|
||||||
- ./run_tests.sh
|
- PYTHONPATH=. trial tests
|
||||||
- rvm use 2.3.1 && gem install danger --version '~> 4.0' && danger
|
- rvm use 2.3.1 && gem install danger --version '~> 4.0' && danger
|
||||||
|
|
|
@ -7,9 +7,9 @@ mingw32-make --version
|
||||||
# build/install miniupnpc manually
|
# build/install miniupnpc manually
|
||||||
tar zxf miniupnpc-1.9.tar.gz
|
tar zxf miniupnpc-1.9.tar.gz
|
||||||
cd miniupnpc-1.9
|
cd miniupnpc-1.9
|
||||||
mingw32-make.exe -f Makefile.mingw
|
mingw32-make -f Makefile.mingw
|
||||||
python.exe setupmingw32.py build --compiler=mingw32
|
python setupmingw32.py build --compiler=mingw32
|
||||||
python.exe setupmingw32.py install
|
python setupmingw32.py install
|
||||||
cd ..\
|
cd ..\
|
||||||
Remove-Item -Recurse -Force miniupnpc-1.9
|
Remove-Item -Recurse -Force miniupnpc-1.9
|
||||||
|
|
||||||
|
@ -18,7 +18,13 @@ Get-Content ..\requirements.txt | Select-String -Pattern 'gmpy|miniupnpc' -NotMa
|
||||||
# add in gmpy wheel
|
# add in gmpy wheel
|
||||||
Add-Content requirements.txt "./gmpy-1.17-cp27-none-win32.whl"
|
Add-Content requirements.txt "./gmpy-1.17-cp27-none-win32.whl"
|
||||||
|
|
||||||
pip.exe install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
python set_version.py
|
||||||
|
python set_build.py
|
||||||
|
|
||||||
pyinstaller -y daemon.onefile.spec
|
pyinstaller -y daemon.onefile.spec
|
||||||
pyinstaller -y cli.onefile.spec
|
pyinstaller -y cli.onefile.spec
|
||||||
|
|
||||||
|
python zip_daemon.py
|
||||||
|
python release_on_tag.py
|
|
@ -10,7 +10,7 @@ def main():
|
||||||
build = get_build()
|
build = get_build()
|
||||||
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||||
with open(os.path.join(root_dir, 'lbrynet', 'build_type.py'), 'w') as f:
|
with open(os.path.join(root_dir, 'lbrynet', 'build_type.py'), 'w') as f:
|
||||||
f.write('BUILD = "{}"'.format(build))
|
f.write("BUILD = '{}'\n".format(build))
|
||||||
|
|
||||||
|
|
||||||
def get_build():
|
def get_build():
|
||||||
|
|
|
@ -239,9 +239,9 @@ class RequestHelper(object):
|
||||||
|
|
||||||
|
|
||||||
def _handle_incoming_blob(response_dict, peer, request):
|
def _handle_incoming_blob(response_dict, peer, request):
|
||||||
if not request.response_identifier in response_dict:
|
if request.response_identifier not in response_dict:
|
||||||
return InvalidResponseError("response identifier not in response")
|
return InvalidResponseError("response identifier not in response")
|
||||||
if not type(response_dict[request.response_identifier]) == dict:
|
if type(response_dict[request.response_identifier]) != dict:
|
||||||
return InvalidResponseError("response not a dict. got %s" %
|
return InvalidResponseError("response not a dict. got %s" %
|
||||||
type(response_dict[request.response_identifier]))
|
type(response_dict[request.response_identifier]))
|
||||||
response = response_dict[request.response_identifier]
|
response = response_dict[request.response_identifier]
|
||||||
|
@ -255,14 +255,14 @@ def _handle_incoming_blob(response_dict, peer, request):
|
||||||
return InvalidResponseError("Got an unknown error from the peer: %s" %
|
return InvalidResponseError("Got an unknown error from the peer: %s" %
|
||||||
(response['error'],))
|
(response['error'],))
|
||||||
else:
|
else:
|
||||||
if not 'blob_hash' in response:
|
if 'blob_hash' not in response:
|
||||||
return InvalidResponseError("Missing the required field 'blob_hash'")
|
return InvalidResponseError("Missing the required field 'blob_hash'")
|
||||||
if not response['blob_hash'] == request.request_dict['requested_blob']:
|
if not response['blob_hash'] == request.request_dict['requested_blob']:
|
||||||
return InvalidResponseError(
|
return InvalidResponseError(
|
||||||
"Incoming blob does not match expected. Incoming: %s. Expected: %s" %
|
"Incoming blob does not match expected. Incoming: %s. Expected: %s" %
|
||||||
(response['blob_hash'], request.request_dict['requested_blob'])
|
(response['blob_hash'], request.request_dict['requested_blob'])
|
||||||
)
|
)
|
||||||
if not 'length' in response:
|
if 'length' not in response:
|
||||||
return InvalidResponseError("Missing the required field 'length'")
|
return InvalidResponseError("Missing the required field 'length'")
|
||||||
if not request.blob.set_length(response['length']):
|
if not request.blob.set_length(response['length']):
|
||||||
return InvalidResponseError("Could not set the length of the blob")
|
return InvalidResponseError("Could not set the length of the blob")
|
||||||
|
@ -358,7 +358,7 @@ class AvailabilityRequest(RequestHelper):
|
||||||
class PriceRequest(RequestHelper):
|
class PriceRequest(RequestHelper):
|
||||||
"""Ask a peer if a certain price is acceptable"""
|
"""Ask a peer if a certain price is acceptable"""
|
||||||
def can_make_request(self):
|
def can_make_request(self):
|
||||||
if len(self.available_blobs) and not self.protocol in self.protocol_prices:
|
if len(self.available_blobs) and self.protocol not in self.protocol_prices:
|
||||||
return self.get_rate() is not None
|
return self.get_rate() is not None
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,6 @@ class DHTPeerFinder(object):
|
||||||
self.next_manage_call = None
|
self.next_manage_call = None
|
||||||
|
|
||||||
def run_manage_loop(self):
|
def run_manage_loop(self):
|
||||||
|
|
||||||
from twisted.internet import reactor
|
|
||||||
|
|
||||||
self._manage_peers()
|
self._manage_peers()
|
||||||
self.next_manage_call = reactor.callLater(60, self.run_manage_loop)
|
self.next_manage_call = reactor.callLater(60, self.run_manage_loop)
|
||||||
|
|
||||||
|
|
|
@ -414,9 +414,6 @@ class AuthJSONRPCServer(AuthorizedBase):
|
||||||
return True
|
return True
|
||||||
allowed_server, allowed_port = self.get_server_port(allowed_origin)
|
allowed_server, allowed_port = self.get_server_port(allowed_origin)
|
||||||
return (allowed_server, allowed_port) == (server, port)
|
return (allowed_server, allowed_port) == (server, port)
|
||||||
return (
|
|
||||||
server == conf.settings['api_host'] and
|
|
||||||
port == conf.settings['api_port'])
|
|
||||||
|
|
||||||
def get_server_port(self, origin):
|
def get_server_port(self, origin):
|
||||||
parsed = urlparse.urlparse(origin)
|
parsed = urlparse.urlparse(origin)
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
#! /bin/bash
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Ignoring distutils because: https://github.com/PyCQA/pylint/issues/73
|
|
||||||
# TODO: as code quality improves, make pylint be more strict
|
|
||||||
pylint -E --disable=inherit-non-class --disable=no-member \
|
|
||||||
--ignored-modules=distutils \
|
|
||||||
--enable=unused-import \
|
|
||||||
--enable=bad-whitespace \
|
|
||||||
--enable=line-too-long \
|
|
||||||
--enable=trailing-whitespace \
|
|
||||||
--enable=missing-final-newline \
|
|
||||||
--enable=mixed-indentation \
|
|
||||||
lbrynet $@
|
|
12
run_tests.sh
12
run_tests.sh
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
if [ -z "$@" ]; then
|
|
||||||
TESTS=tests
|
|
||||||
else
|
|
||||||
TESTS="$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
find -iname "*.pyc" -delete
|
|
||||||
PYTHONPATH=. trial $TESTS
|
|
Loading…
Add table
Reference in a new issue