test_trade

This commit is contained in:
Cayo Puigdefabregas 2021-03-17 18:17:43 +01:00
parent 361c4946fe
commit 5cd140296f
1 changed files with 27 additions and 1 deletions

View File

@ -9,6 +9,8 @@ from datetime import datetime, timedelta
from dateutil.tz import tzutc from dateutil.tz import tzutc
from decimal import Decimal from decimal import Decimal
from typing import Tuple, Type from typing import Tuple, Type
from pytest import raises
from json.decoder import JSONDecodeError
from flask import current_app as app, g from flask import current_app as app, g
from sqlalchemy.util import OrderedSet from sqlalchemy.util import OrderedSet
@ -747,7 +749,7 @@ def test_deallocate_bad_dates(user: UserClient):
(models.Rent, states.Trading.Renting), (models.Rent, states.Trading.Renting),
(models.DisposeProduct, states.Trading.ProductDisposed) (models.DisposeProduct, states.Trading.ProductDisposed)
])) ]))
def test_trade(action_model_state: Tuple[Type[models.Action], states.Trading], user: UserClient): def test_trade2(action_model_state: Tuple[Type[models.Action], states.Trading], user: UserClient):
"""Tests POSTing all Trade actions.""" """Tests POSTing all Trade actions."""
# todo missing None states.Trading for after cancelling renting, for example # todo missing None states.Trading for after cancelling renting, for example
action_model, state = action_model_state action_model, state = action_model_state
@ -767,6 +769,30 @@ def test_trade(action_model_state: Tuple[Type[models.Action], states.Trading], u
assert device['trading'] == state.name assert device['trading'] == state.name
@pytest.mark.mvp
def test_trade(user: UserClient, user2: UserClient):
"""Tests POST one simple Trade between 2 users of the system."""
snapshot, _ = user.post(file('basic.snapshot'), res=models.Snapshot)
device, _ = user.get(res=Device, item=snapshot['device']['id'])
assert device['id'] == snapshot['device']['id']
request_post = {
'userTo': user.user['email'],
'documentID': "1",
'price': 1.0,
'date': "2020-12-01T02:00:00+00:00",
'devices': [snapshot['device']['id']]
}
action, _ = user.post(res=models.Trade, data=request_post, status=200)
# import pdb; pdb.set_trace()
with raises(JSONDecodeError):
device1, _ = user.get(res=Device, item=device['id'])
device2, _ = user2.get(res=Device, item=device['id'])
assert device2['id'] == device['id']
@pytest.mark.mvp @pytest.mark.mvp
@pytest.mark.usefixtures(conftest.auth_app_context.__name__) @pytest.mark.usefixtures(conftest.auth_app_context.__name__)
def test_price_custom(): def test_price_custom():