diff --git a/tests/test_metrics.py b/tests/test_metrics.py index 6b403c4a..aeffa538 100644 --- a/tests/test_metrics.py +++ b/tests/test_metrics.py @@ -297,3 +297,51 @@ def test_visual_metrics_for_old_owners(user: UserClient, user2: UserClient): assert body in csv_receiver assert body in csv_supplier + assert csv_receiver == csv_supplier + + +@pytest.mark.mvp +@pytest.mark.usefixtures(conftest.app_context.__name__) +def test_bug_trade_confirmed(user: UserClient, user2: UserClient): + """When the receiber do a Trade, then the confirmation is wrong.""" + # Insert computer + lenovo = yaml2json('desktop-9644w8n-lenovo-0169622.snapshot') + snap1, _ = user.post(json_encode(lenovo), res=ma.Snapshot) + lot, _ = user.post({'name': 'MyLot'}, res=Lot) + devices = [('id', snap1['device']['id'])] + lot, _ = user.post({}, + res=Lot, + item='{}/devices'.format(lot['id']), + query=devices) + request_post = { + 'type': 'Trade', + 'devices': [snap1['device']['id']], + 'userFromEmail': user2.email, + 'userToEmail': user.email, + 'price': 10, + 'date': "2020-12-01T02:00:00+00:00", + 'lot': lot['id'], + 'confirms': True, + } + trade, _ = user.post(res=ma.Action, data=request_post) + + csv_not_confirmed, _ = user.get(res=documents.DocumentDef.t, + item='actions/', + accept='text/csv', + query=[('filter', {'type': ['Computer']})]) + request_confirm = { + 'type': 'Confirm', + 'action': trade['id'], + 'devices': [snap1['device']['id']] + } + user2.post(res=ma.Action, data=request_confirm) + csv_confirmed, _ = user2.get(res=documents.DocumentDef.t, + item='actions/', + accept='text/csv', + query=[('filter', {'type': ['Computer']})]) + + body_not_confirmed = "Trade;foo2@foo.com;foo@foo.com;Receiver;False;" + body_confirmed = "Trade;foo2@foo.com;foo@foo.com;Receiver;True;" + + assert body_not_confirmed in csv_not_confirmed + assert body_confirmed in csv_confirmed