diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py index 3c70fb749a4c25e884a8b53831f6151fe4d2e8be..ae4868ab641233e7b40ae999fc7d95322c6f00e3 100644 --- a/src/cutecoin/core/account.py +++ b/src/cutecoin/core/account.py @@ -361,7 +361,8 @@ class Account(QObject): try: data = yield from community.bma_access.simple_request(request, req_args={'search': search}) - registered = parsers[request](data) + if data: + registered = parsers[request](data) tries += 1 except ValueError as e: if '404' in str(e) or '400' in str(e): diff --git a/src/cutecoin/core/net/api/bma/access.py b/src/cutecoin/core/net/api/bma/access.py index 778133ba8725d2cc0f28e328eca8826440bbc118..9c4210cff5523dec87e05a2368a87a97812a227d 100644 --- a/src/cutecoin/core/net/api/bma/access.py +++ b/src/cutecoin/core/net/api/bma/access.py @@ -197,9 +197,12 @@ class BmaAccess(QObject): def filter_nodes(self, request, nodes): def compare_versions(node, version): - try: - return StrictVersion(node.version) > StrictVersion(version) - except TypeError: + if node.version and node.version != '': + try: + return StrictVersion(node.version) > StrictVersion(version) + except TypeError: + return False + else: return False filters = { bma.ud.History: lambda n: compare_versions(n, "0.11.0"), diff --git a/src/cutecoin/main.py b/src/cutecoin/main.py index 962f95cb43c0ac0dff2ab263e9760c6f1612ebff..fff3fc89eed6a91e3011cbfdec6ccd1a4a4d06de 100755 --- a/src/cutecoin/main.py +++ b/src/cutecoin/main.py @@ -42,7 +42,7 @@ def async_exception_handler(loop, context): logging.error('\n'.join(log_lines), exc_info=exc_info) if "Unclosed" not in message and \ - "gaierror(-2" not in message: + "socket.gaierror" not in message: os._exit(1) diff --git a/src/cutecoin/tests/core/test_bma_access.py b/src/cutecoin/tests/core/test_bma_access.py index cb24e97f15e5ae3c2f61617d597f206ca555e468..f1f0c83e3cb82d55f99970e38b98d122c5211490 100644 --- a/src/cutecoin/tests/core/test_bma_access.py +++ b/src/cutecoin/tests/core/test_bma_access.py @@ -48,6 +48,9 @@ class TestBmaAccess(unittest.TestCase): res = self.bma_access._compare_json({}, corrupted.bma_null_data) self.assertFalse(res) + def test_filter_nodes(self): + pass#TODO + if __name__ == '__main__': logging.basicConfig(stream=sys.stderr) logging.getLogger().setLevel(logging.DEBUG)