Apply pylint's linting rules to bfxapi/tests/*.py.

This commit is contained in:
Davide Casale
2023-03-06 18:49:22 +01:00
parent 5c707d7929
commit af25f25d3b
10 changed files with 66 additions and 55 deletions

View File

@@ -19,7 +19,7 @@ disable=
max-line-length=130
good-names=id,on
good-names=id,on,pl,t,A,B,C,D,E,F
[TYPECHECK]

View File

@@ -13,6 +13,6 @@ def suite():
unittest.makeSuite(TestLabeler),
unittest.makeSuite(TestNotification),
])
if __name__ == "__main__":
unittest.TextTestRunner().run(suite())
unittest.TextTestRunner().run(suite())

View File

@@ -25,24 +25,24 @@ class TestLabeler(unittest.TestCase):
self.assertListEqual(serializer.get_labels(), [ "A", "B", "C" ],
msg="_Serializer::get_labels() should return the right list of labels.")
with self.assertRaises(LabelerSerializerException,
with self.assertRaises(LabelerSerializerException,
msg="_Serializer should raise LabelerSerializerException if given fewer arguments than the serializer labels."):
serializer.parse(5, 65.0, "X")
serializer.parse(5, 65.0, "X")
def test_generate_recursive_serializer(self):
@dataclass
class Outer(_Type):
class Outer(_Type):
A: int
B: float
C: "Middle"
@dataclass
class Middle(_Type):
class Middle(_Type):
D: str
E: "Inner"
@dataclass
class Inner(_Type):
class Inner(_Type):
F: bool
inner = generate_labeler_serializer("Inner", Inner, ["F"])
@@ -53,4 +53,4 @@ class TestLabeler(unittest.TestCase):
msg="_RecursiveSerializer should produce the right result.")
if __name__ == "__main__":
unittest.main()
unittest.main()

View File

@@ -11,15 +11,19 @@ class TestNotification(unittest.TestCase):
A: int
B: float
C: str
test = generate_labeler_serializer("Test", Test,
test = generate_labeler_serializer("Test", Test,
[ "A", "_PLACEHOLDER", "B", "_PLACEHOLDER", "C" ])
notification = _Notification[Test](test)
self.assertEqual(notification.parse(*[1675787861506, "test", None, None, [ 5, None, 65.0, None, "X" ], 0, "SUCCESS", "This is just a test notification."]),
Notification[Test](1675787861506, "test", None, Test(5, 65.0, "X"), 0, "SUCCESS", "This is just a test notification."),
msg="_Notification should produce the right notification.")
actual = notification.parse(*[ 1675787861506, "test", None, None, [ 5, None, 65.0, None, "X" ], \
0, "SUCCESS", "This is just a test notification." ])
expected = Notification[Test](1675787861506, "test", None, Test(5, 65.0, "X"),
0, "SUCCESS", "This is just a test notification.")
self.assertEqual(actual, expected, msg="_Notification should produce the right notification.")
if __name__ == "__main__":
unittest.main()
unittest.main()

View File

@@ -1,3 +1,5 @@
#pylint: disable=duplicate-code
import unittest
from ..labeler import _Type
@@ -7,11 +9,11 @@ from ..rest import serializers
class TestRestSerializers(unittest.TestCase):
def test_rest_serializers(self):
for serializer in map(serializers.__dict__.get, serializers.__serializers__):
self.assertTrue(issubclass(serializer.klass, _Type),
self.assertTrue(issubclass(serializer.klass, _Type),
f"_Serializer <{serializer.name}>: .klass field must be a subclass of _Type (got {serializer.klass}).")
self.assertListEqual(serializer.get_labels(), list(serializer.klass.__annotations__),
self.assertListEqual(serializer.get_labels(), list(serializer.klass.__annotations__),
f"_Serializer <{serializer.name}> and _Type <{serializer.klass.__name__}> must have matching labels and fields.")
if __name__ == "__main__":
unittest.main()
unittest.main()

View File

@@ -1,3 +1,5 @@
#pylint: disable=duplicate-code
import unittest
from ..labeler import _Type
@@ -7,11 +9,11 @@ from ..websocket import serializers
class TestWebsocketSerializers(unittest.TestCase):
def test_websocket_serializers(self):
for serializer in map(serializers.__dict__.get, serializers.__serializers__):
self.assertTrue(issubclass(serializer.klass, _Type),
self.assertTrue(issubclass(serializer.klass, _Type),
f"_Serializer <{serializer.name}>: .klass field must be a subclass of _Type (got {serializer.klass}).")
self.assertListEqual(serializer.get_labels(), list(serializer.klass.__annotations__),
self.assertListEqual(serializer.get_labels(), list(serializer.klass.__annotations__),
f"_Serializer <{serializer.name}> and _Type <{serializer.klass.__name__}> must have matching labels and fields.")
if __name__ == "__main__":
unittest.main()
unittest.main()

View File

@@ -31,8 +31,7 @@ class BfxWebsocketBucket:
self.handler = PublicChannelsHandler(event_emitter=self.event_emitter)
#pylint: disable-next=unused-argument
async def connect(self, index):
async def connect(self):
reconnection = False
async for websocket in websockets.connect(self.host):

View File

@@ -75,7 +75,7 @@ class BfxWebsocketClient:
for index in range(connections):
self.buckets += [BfxWebsocketBucket(self.host, self.event_emitter, self.on_open_events[index])]
tasks = [ bucket.connect(index) for index, bucket in enumerate(self.buckets) ]
tasks = [ bucket.connect() for bucket in self.buckets ]
tasks.append(self.__connect())

View File

@@ -1,4 +1,4 @@
#pylint: disable=invalid-name,redefined-builtin,too-many-arguments
#pylint: disable=redefined-builtin,too-many-arguments
from decimal import Decimal
from datetime import datetime

View File

@@ -1,9 +1,13 @@
#pylint: disable-next=wildcard-import,unused-wildcard-import
from typing import *
from dataclasses import dataclass
from .. labeler import _Type
#pylint: disable-next=unused-import
from .. notification import Notification
from .. labeler import _Type
from ..utils.json_encoder import JSON
#region Type hinting for Websocket Public Channels
@@ -40,43 +44,43 @@ class FundingCurrencyTicker(_Type):
@dataclass
class TradingPairTrade(_Type):
id: int
mts: int
amount: float
id: int
mts: int
amount: float
price: float
@dataclass
class FundingCurrencyTrade(_Type):
id: int
mts: int
amount: float
rate: float
id: int
mts: int
amount: float
rate: float
period: int
@dataclass
class TradingPairBook(_Type):
price: float
count: int
price: float
count: int
amount: float
@dataclass
class FundingCurrencyBook(_Type):
rate: float
period: int
count: int
rate: float
period: int
count: int
amount: float
@dataclass
@dataclass
class TradingPairRawBook(_Type):
order_id: int
price: float
price: float
amount: float
@dataclass
@dataclass
class FundingCurrencyRawBook(_Type):
offer_id: int
period: int
rate: float
offer_id: int
period: int
rate: float
amount: float
@dataclass
@@ -154,14 +158,14 @@ class Position(_Type):
@dataclass
class Trade(_Type):
id: int
symbol: str
id: int
symbol: str
mts_create: int
order_id: int
exec_amount: float
exec_price: float
order_type: str
order_price: float
order_id: int
exec_amount: float
exec_price: float
order_type: str
order_price: float
maker:int
fee: Optional[float]
fee_currency: Optional[str]
@@ -238,4 +242,4 @@ class Balance(_Type):
aum: float
aum_net: float
#endregion
#endregion