# coding: utf-8 from __future__ import absolute_import import logging import time import hexathon import pytest import requests from cic_eth.runnable.daemons.server import application from pytest_localserver.http import WSGIServer log = logging.getLogger(__name__) @pytest.fixture def testserver(request): """Defines the testserver funcarg""" server = WSGIServer(application=application) server.start() request.addfinalizer(server.stop) return server def test_account(testserver): # Default Token response = requests.get( testserver.url + '/default_token', ) log.debug(f"balance response {response}") default_token = response.json() # Create Account 1 params = { 'password': '', 'register': True } response = requests.post( testserver.url + '/create_account', params=params) address_1 = hexathon.valid(response.json()) # Create Account 2 params = { 'password': '', 'register': True } response = requests.post( testserver.url + '/create_account', params=params) address_2 = hexathon.valid(response.json()) time.sleep(30) # Required to allow balance to show # Balance Account 1 params = { 'address': address_1, 'token_symbol': 'COFE', 'include_pending': True } response = requests.get( testserver.url + '/balance', params=params) balance = response.json() assert (balance[0] == { "address": default_token.get('address').lower(), "balance_available": 30000, "balance_incoming": 0, "balance_network": 30000, "balance_outgoing": 0, "converters": [] }) # Transfer params = { 'from_address': address_1, 'to_address': address_2, 'value': 100, 'token_symbol': 'COFE' } response = requests.post( testserver.url + '/transfer', params=params) transfer = response.json() # Balance Account 1 params = { 'address': address_1, 'token_symbol': 'COFE', 'include_pending': True } response = requests.get( testserver.url + '/balance', params=params) balance_after_transfer = response.json() assert (balance_after_transfer[0] == { "address": default_token.get('address').lower(), "balance_available": 29900, "balance_incoming": 0, "balance_network": 30000, "balance_outgoing": 100, "converters": [] }) # Transactions Account 1 params = { 'address': address_1, 'limit': 10 } response = requests.get( testserver.url + '/transactions', params=params) transactions = response.json() ## TODO: What are the other 2 transactions assert len(transactions) == 3 ## Check the transaction is correct # TODO wtf is READSEND (Ready to send? Or already sent) assert transactions[0].status == 'READYSEND' exit(1) # Forcing it to fail to i get logs out of pytest