Merge branch 'testing' into feature/document-erased

This commit is contained in:
Cayo Puigdefabregas 2021-07-13 10:45:57 +02:00
commit 0d033e94d4
10 changed files with 20 additions and 26 deletions

View File

@ -6,12 +6,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
ml). ml).
## master ## master
[1.0.6-beta]
## testing
[1.0.7-beta] [1.0.7-beta]
## testing
[1.0.8-beta]
## [1.0.7-beta] ## [1.0.7-beta]
- [addend] #158 support for encrypted snapshots data
- [addend] #135 adding trade system - [addend] #135 adding trade system
- [addend] #140 adding endpoint for download the settings for usb workbench - [addend] #140 adding endpoint for download the settings for usb workbench

View File

@ -1 +1 @@
__version__ = "1.0.7-beta" __version__ = "1.0.8-beta"

View File

@ -539,7 +539,6 @@ class ConfirmDocument(ActionWithMultipleDocuments):
"""If there are one device than have one confirmation, """If there are one device than have one confirmation,
then remove the list this device of the list of devices of this action then remove the list this device of the list of devices of this action
""" """
# import pdb; pdb.set_trace()
if data['documents'] == OrderedSet(): if data['documents'] == OrderedSet():
return return
@ -567,7 +566,6 @@ class RevokeDocument(ActionWithMultipleDocuments):
This is not checked in the view becouse the list of documents is inmutable This is not checked in the view becouse the list of documents is inmutable
""" """
# import pdb; pdb.set_trace()
if data['documents'] == OrderedSet(): if data['documents'] == OrderedSet():
return return

View File

@ -69,7 +69,6 @@ class SnapshotView():
# snapshot, and we want to wait to flush snapshot at the end # snapshot, and we want to wait to flush snapshot at the end
def __init__(self, snapshot_json: dict, resource_def, schema): def __init__(self, snapshot_json: dict, resource_def, schema):
# import pdb; pdb.set_trace()
self.schema = schema self.schema = schema
self.resource_def = resource_def self.resource_def = resource_def
self.tmp_snapshots = app.config['TMP_SNAPSHOTS'] self.tmp_snapshots = app.config['TMP_SNAPSHOTS']

View File

@ -227,7 +227,6 @@ class RevokeView(ConfirmMixin):
ids = {d.id for d in data['devices']} ids = {d.id for d in data['devices']}
lot = data['action'].lot lot = data['action'].lot
# import pdb; pdb.set_trace()
self.model = delete_from_trade(lot, ids) self.model = delete_from_trade(lot, ids)
@ -284,7 +283,6 @@ class ConfirmDocumentMixin():
Model = None Model = None
def __init__(self, data, resource_def, schema): def __init__(self, data, resource_def, schema):
# import pdb; pdb.set_trace()
self.schema = schema self.schema = schema
a = resource_def.schema.load(data) a = resource_def.schema.load(data)
self.validate(a) self.validate(a)

View File

@ -197,11 +197,16 @@ class ActionView(View):
snapshot = SnapshotView(json, resource_def, self.schema) snapshot = SnapshotView(json, resource_def, self.schema)
return snapshot.post() return snapshot.post()
if not 'data' in json: # TODO @cayop uncomment at four weeks
txt = 'Invalid snapshot' # if not 'data' in json:
raise ValidationError(txt) # txt = 'Invalid snapshot'
# raise ValidationError(txt)
snapshot_data = decode_snapshot(json) # snapshot_data = decode_snapshot(json)
snapshot_data = json
if 'data' in json:
snapshot_data = decode_snapshot(json)
if not snapshot_data: if not snapshot_data:
txt = 'Invalid snapshot' txt = 'Invalid snapshot'
@ -245,7 +250,6 @@ class ActionView(View):
confirm_revoke = trade_view.ConfirmRevokeDocumentView(json, resource_def, self.schema) confirm_revoke = trade_view.ConfirmRevokeDocumentView(json, resource_def, self.schema)
return confirm_revoke.post() return confirm_revoke.post()
# import pdb; pdb.set_trace()
a = resource_def.schema.load(json) a = resource_def.schema.load(json)
Model = db.Model._decl_class_registry.data[json['type']]() Model = db.Model._decl_class_registry.data[json['type']]()
action = Model(**a) action = Model(**a)

View File

@ -224,7 +224,6 @@ class LotDeviceView(LotBaseChildrenView):
id = ma.fields.List(ma.fields.Integer()) id = ma.fields.List(ma.fields.Integer())
def _post(self, lot: Lot, ids: Set[int]): def _post(self, lot: Lot, ids: Set[int]):
# import pdb; pdb.set_trace()
# get only new devices # get only new devices
ids -= {x.id for x in lot.devices} ids -= {x.id for x in lot.devices}
if not ids: if not ids:
@ -249,7 +248,6 @@ class LotDeviceView(LotBaseChildrenView):
if lot.trade: if lot.trade:
return delete_from_trade(lot, ids) return delete_from_trade(lot, ids)
# import pdb; pdb.set_trace()
if not g.user == lot.owner: if not g.user == lot.owner:
txt = 'This is not your lot' txt = 'This is not your lot'
raise ma.ValidationError(txt) raise ma.ValidationError(txt)
@ -267,7 +265,6 @@ def delete_from_trade(lot: Lot, ids: Set[int]):
txt = 'This is not your trade' txt = 'This is not your trade'
raise ma.ValidationError(txt) raise ma.ValidationError(txt)
# import pdb; pdb.set_trace()
devices = set(Device.query.filter(Device.id.in_(ids)).filter( devices = set(Device.query.filter(Device.id.in_(ids)).filter(
Device.owner_id.in_(users))) Device.owner_id.in_(users)))

View File

@ -2,6 +2,7 @@ import os
import time import time
from datetime import datetime from datetime import datetime
from flask import current_app as app, request, g, Response from flask import current_app as app, request, g, Response
from marshmallow import ValidationError
from teal.resource import View from teal.resource import View
from ereuse_devicehub.db import db from ereuse_devicehub.db import db
@ -19,7 +20,11 @@ class TradeDocumentView(View):
def post(self): def post(self):
"""Add one document.""" """Add one document."""
data = request.get_json(validate=True) try:
data = request.get_json(validate=True)
except ValueError as err:
raise ValidationError(err)
hash3 = data['file_hash'] hash3 = data['file_hash']
db_hash = ReportHash(hash3=hash3) db_hash = ReportHash(hash3=hash3)
db.session.add(db_hash) db.session.add(db_hash)

View File

@ -293,7 +293,6 @@ def test_live(user: UserClient, client: Client, app: Devicehub):
@pytest.mark.usefixtures(conftest.app_context.__name__) @pytest.mark.usefixtures(conftest.app_context.__name__)
def test_live_example(user: UserClient, client: Client, app: Devicehub): def test_live_example(user: UserClient, client: Client, app: Devicehub):
"""Tests inserting a Live into the database and GETting it.""" """Tests inserting a Live into the database and GETting it."""
# import pdb; pdb.set_trace()
acer = file('snapshotLive') acer = file('snapshotLive')
snapshot, _ = user.post(acer, res=models.Snapshot) snapshot, _ = user.post(acer, res=models.Snapshot)
device_id = snapshot['device']['id'] device_id = snapshot['device']['id']
@ -1244,7 +1243,6 @@ def test_usecase_confirmation(user: UserClient, user2: UserClient):
res=Lot, res=Lot,
item='{}/devices'.format(lot['id']), item='{}/devices'.format(lot['id']),
query=devices[-1:], status=200) query=devices[-1:], status=200)
# import pdb; pdb.set_trace()
assert len(trade.lot.devices) == len(trade.devices) == 10 assert len(trade.lot.devices) == len(trade.devices) == 10
assert device_10.actions[-1].t == 'Revoke' assert device_10.actions[-1].t == 'Revoke'
@ -1302,7 +1300,6 @@ def test_usecase_confirmation(user: UserClient, user2: UserClient):
snap10['device']['id'] snap10['device']['id']
] ]
} }
# import pdb; pdb.set_trace()
user2.post(res=models.Action, data=request_reconfirm) user2.post(res=models.Action, data=request_reconfirm)
assert device_10.actions[-1].t == 'Confirm' assert device_10.actions[-1].t == 'Confirm'
assert device_10.actions[-1].user == trade.user_from assert device_10.actions[-1].user == trade.user_from
@ -1680,7 +1677,6 @@ def test_trade_case4(user: UserClient, user2: UserClient):
# Normal revoke # Normal revoke
user2.post(res=models.Action, data=request_revoke) user2.post(res=models.Action, data=request_revoke)
# import pdb; pdb.set_trace()
assert device1.actions[-2].t == 'Trade' assert device1.actions[-2].t == 'Trade'
assert device1.actions[-1].t == 'Confirm' assert device1.actions[-1].t == 'Confirm'
assert device1.actions[-1].user == trade.user_to assert device1.actions[-1].user == trade.user_to
@ -2222,7 +2218,6 @@ def test_trade_case12(user: UserClient, user2: UserClient):
user.post(res=models.Action, data=request_post) user.post(res=models.Action, data=request_post)
trade = models.Trade.query.one() trade = models.Trade.query.one()
# import pdb; pdb.set_trace()
device1, device = trade.devices device1, device = trade.devices
@ -2296,7 +2291,6 @@ def test_trade_case13(user: UserClient, user2: UserClient):
user.post(res=models.Action, data=request_post) user.post(res=models.Action, data=request_post)
trade = models.Trade.query.one() trade = models.Trade.query.one()
# import pdb; pdb.set_trace()
lot, _ = user2.post({}, lot, _ = user2.post({},
res=Lot, res=Lot,
@ -2370,7 +2364,6 @@ def test_trade_case14(user: UserClient, user2: UserClient):
user.post(res=models.Action, data=request_post) user.post(res=models.Action, data=request_post)
trade = models.Trade.query.one() trade = models.Trade.query.one()
# import pdb; pdb.set_trace()
lot, _ = user2.post({}, lot, _ = user2.post({},
res=Lot, res=Lot,

View File

@ -112,7 +112,6 @@ def test_snapshot_post(user: UserClient):
@pytest.mark.mvp @pytest.mark.mvp
def test_same_device_tow_users(user: UserClient, user2: UserClient): def test_same_device_tow_users(user: UserClient, user2: UserClient):
"""Two users can up the same snapshot and the system save 2 computers""" """Two users can up the same snapshot and the system save 2 computers"""
# import pdb; pdb.set_trace()
user.post(file('basic.snapshot'), res=Snapshot) user.post(file('basic.snapshot'), res=Snapshot)
i, _ = user.get(res=m.Device) i, _ = user.get(res=m.Device)
pc = next(d for d in i['items'] if d['type'] == 'Desktop') pc = next(d for d in i['items'] if d['type'] == 'Desktop')