Esempio n. 1
0
def assert_trades_equal(t1: Trade, t2: Trade) -> None:
    """Checks 2 trades are equal. Has a tolerance for precision errors in real numbers
    since the precision generated by sqlite division is different to fval one

    """
    t1_dict = t1._asdict()
    for key, val in t1_dict.items():
        if key in ('rate', 'amount'):
            assert val.is_close(getattr(t2, key))
        else:
            assert val == getattr(t2, key)
Esempio n. 2
0
def test_serialize_deserialize_trade():
    trade = Trade(
        timestamp=Timestamp(1537985746),
        location=Location.KRAKEN,
        pair=TradePair('ETH_BTC'),
        trade_type=TradeType.SELL,
        amount=FVal('2.80'),
        rate=FVal('0.1234'),
        fee=FVal('0.01'),
        fee_currency=A_ETH,
        link='a link can be here',
        notes='notes can be here',
    )
    serialized_trade = rlk_jsondumps(trade._asdict())
    assert serialized_trade == rlk_jsondumps(raw_trade2)
    deserialized_trade = deserialize_trade(raw_trade2)
    assert deserialized_trade == trade