2020-11-24 20:15:49 +00:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from ereuse_devicehub.client import UserClient
|
|
|
|
from ereuse_devicehub.resources.action import models as ma
|
2021-10-14 10:56:33 +00:00
|
|
|
from ereuse_devicehub.resources.documents import documents
|
2020-11-24 20:15:49 +00:00
|
|
|
from tests import conftest
|
2021-07-02 15:40:20 +00:00
|
|
|
from tests.conftest import file, yaml2json, json_encode
|
2020-11-24 20:15:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.mvp
|
|
|
|
@pytest.mark.usefixtures(conftest.app_context.__name__)
|
|
|
|
def test_simple_metrics(user: UserClient):
|
|
|
|
""" Checks one standard query of metrics """
|
|
|
|
# Insert computer
|
2021-07-02 15:40:20 +00:00
|
|
|
lenovo = yaml2json('desktop-9644w8n-lenovo-0169622.snapshot')
|
|
|
|
acer = yaml2json('acer.happy.battery.snapshot')
|
|
|
|
user.post(json_encode(lenovo), res=ma.Snapshot)
|
|
|
|
snapshot, _ = user.post(json_encode(acer), res=ma.Snapshot)
|
2020-11-24 20:15:49 +00:00
|
|
|
device_id = snapshot['device']['id']
|
2020-11-27 18:14:29 +00:00
|
|
|
post_request = {"transaction": "ccc", "name": "John", "endUsers": 1,
|
2020-12-01 14:33:49 +00:00
|
|
|
"finalUserCode": "abcdefjhi",
|
2020-11-24 20:15:49 +00:00
|
|
|
"devices": [device_id], "description": "aaa",
|
2020-11-27 18:14:29 +00:00
|
|
|
"startTime": "2020-11-01T02:00:00+00:00",
|
|
|
|
"endTime": "2020-12-01T02:00:00+00:00"
|
2020-11-24 20:15:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Create Allocate
|
|
|
|
user.post(res=ma.Allocate, data=post_request)
|
|
|
|
acer['uuid'] = "490fb8c0-81a1-42e9-95e0-5e7db7038ec3"
|
|
|
|
hdd = [c for c in acer['components'] if c['type'] == 'HardDrive'][0]
|
|
|
|
hdd_action = [a for a in hdd['actions'] if a['type'] == 'TestDataStorage'][0]
|
|
|
|
hdd_action['powerCycleCount'] += 1000
|
2020-12-29 18:54:00 +00:00
|
|
|
acer.pop('elapsed')
|
|
|
|
acer['licence_version'] = '1.0.0'
|
|
|
|
user.post(acer, res=ma.Live)
|
2020-11-24 20:15:49 +00:00
|
|
|
|
|
|
|
# Create a live
|
|
|
|
acer['uuid'] = "490fb8c0-81a1-42e9-95e0-5e7db7038ec4"
|
|
|
|
hdd = [c for c in acer['components'] if c['type'] == 'HardDrive'][0]
|
|
|
|
hdd_action = [a for a in hdd['actions'] if a['type'] == 'TestDataStorage'][0]
|
|
|
|
hdd_action['powerCycleCount'] += 1000
|
2020-12-29 18:54:00 +00:00
|
|
|
user.post(acer, res=ma.Live)
|
2020-11-24 20:15:49 +00:00
|
|
|
|
|
|
|
# Create an other live
|
|
|
|
acer['uuid'] = "490fb8c0-81a1-42e9-95e0-5e7db7038ec5"
|
|
|
|
hdd = [c for c in acer['components'] if c['type'] == 'HardDrive'][0]
|
|
|
|
hdd_action = [a for a in hdd['actions'] if a['type'] == 'TestDataStorage'][0]
|
|
|
|
hdd_action['powerCycleCount'] += 1000
|
2020-12-29 18:54:00 +00:00
|
|
|
user.post(acer, res=ma.Live)
|
2020-11-24 20:15:49 +00:00
|
|
|
|
|
|
|
# Check metrics
|
2020-11-25 12:58:32 +00:00
|
|
|
metrics = {'allocateds': 1, 'live': 1}
|
2020-11-25 14:55:47 +00:00
|
|
|
res, _ = user.get("/metrics/")
|
2020-11-24 20:15:49 +00:00
|
|
|
assert res == metrics
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.mvp
|
|
|
|
@pytest.mark.usefixtures(conftest.app_context.__name__)
|
|
|
|
def test_second_hdd_metrics(user: UserClient):
|
|
|
|
""" Checks one standard query of metrics """
|
|
|
|
# Insert computer
|
2021-07-02 15:40:20 +00:00
|
|
|
acer = yaml2json('acer.happy.battery.snapshot')
|
|
|
|
snapshot, _ = user.post(json_encode(acer), res=ma.Snapshot)
|
2020-11-24 20:15:49 +00:00
|
|
|
device_id = snapshot['device']['id']
|
2020-11-27 18:14:29 +00:00
|
|
|
post_request = {"transaction": "ccc", "name": "John", "endUsers": 1,
|
2020-12-01 14:33:49 +00:00
|
|
|
"finalUserCode": "abcdefjhi",
|
2020-11-24 20:15:49 +00:00
|
|
|
"devices": [device_id], "description": "aaa",
|
2020-11-27 18:14:29 +00:00
|
|
|
"startTime": "2020-11-01T02:00:00+00:00",
|
|
|
|
"endTime": "2020-12-01T02:00:00+00:00"
|
2020-11-24 20:15:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Create Allocate
|
|
|
|
user.post(res=ma.Allocate, data=post_request)
|
|
|
|
acer['uuid'] = "490fb8c0-81a1-42e9-95e0-5e7db7038ec3"
|
|
|
|
hdd = [c for c in acer['components'] if c['type'] == 'HardDrive'][0]
|
|
|
|
hdd_action = [a for a in hdd['actions'] if a['type'] == 'TestDataStorage'][0]
|
|
|
|
hdd_action['powerCycleCount'] += 1000
|
2020-12-29 18:54:00 +00:00
|
|
|
acer.pop('elapsed')
|
|
|
|
acer['licence_version'] = '1.0.0'
|
|
|
|
user.post(acer, res=ma.Live)
|
2020-11-24 20:15:49 +00:00
|
|
|
|
|
|
|
# Create a live
|
|
|
|
acer['uuid'] = "490fb8c0-81a1-42e9-95e0-5e7db7038ec4"
|
|
|
|
hdd = [c for c in acer['components'] if c['type'] == 'HardDrive'][0]
|
|
|
|
hdd_action = [a for a in hdd['actions'] if a['type'] == 'TestDataStorage'][0]
|
|
|
|
hdd_action['powerCycleCount'] += 1000
|
2020-12-29 18:54:00 +00:00
|
|
|
user.post(acer, res=ma.Live)
|
2020-11-24 20:15:49 +00:00
|
|
|
|
|
|
|
# Create a second device
|
|
|
|
acer['uuid'] = "490fb8c0-81a1-42e9-95e0-5e7db7038ec5"
|
|
|
|
hdd = [c for c in acer['components'] if c['type'] == 'HardDrive'][0]
|
|
|
|
hdd['serialNumber'] = 'WD-WX11A80W7440'
|
2020-12-29 18:54:00 +00:00
|
|
|
user.post(acer, res=ma.Live)
|
2020-11-24 20:15:49 +00:00
|
|
|
|
2020-11-25 14:55:47 +00:00
|
|
|
# Check metrics if we change the hdd we need a result of one device
|
|
|
|
metrics = {'allocateds': 1, 'live': 1}
|
|
|
|
res, _ = user.get("/metrics/")
|
2020-11-24 20:15:49 +00:00
|
|
|
assert res == metrics
|
|
|
|
|
2020-11-25 16:46:58 +00:00
|
|
|
|
|
|
|
@pytest.mark.mvp
|
|
|
|
@pytest.mark.usefixtures(conftest.app_context.__name__)
|
|
|
|
def test_metrics_with_live_null(user: UserClient):
|
|
|
|
""" Checks one standard query of metrics """
|
|
|
|
# Insert computer
|
|
|
|
acer = file('acer.happy.battery.snapshot')
|
|
|
|
snapshot, _ = user.post(acer, res=ma.Snapshot)
|
|
|
|
device_id = snapshot['device']['id']
|
2020-11-27 18:14:29 +00:00
|
|
|
post_request = {"transaction": "ccc", "name": "John", "endUsers": 1,
|
2020-12-01 14:33:49 +00:00
|
|
|
"finalUserCode": "abcdefjhi",
|
2020-11-25 16:46:58 +00:00
|
|
|
"devices": [device_id], "description": "aaa",
|
2020-11-27 18:14:29 +00:00
|
|
|
"startTime": "2020-11-01T02:00:00+00:00",
|
|
|
|
"endTime": "2020-12-01T02:00:00+00:00"
|
2020-11-25 16:46:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Create Allocate
|
|
|
|
user.post(res=ma.Allocate, data=post_request)
|
|
|
|
|
|
|
|
# Check metrics if we change the hdd we need a result of one device
|
|
|
|
metrics = {'allocateds': 1, 'live': 0}
|
|
|
|
res, _ = user.get("/metrics/")
|
|
|
|
assert res == metrics
|
|
|
|
|
2021-10-14 10:56:33 +00:00
|
|
|
|
|
|
|
@pytest.mark.mvp
|
|
|
|
@pytest.mark.usefixtures(conftest.app_context.__name__)
|
|
|
|
def test_metrics_action_status(user: UserClient, user2: UserClient):
|
|
|
|
""" Checks one standard query of metrics """
|
|
|
|
# Insert computer
|
|
|
|
lenovo = yaml2json('desktop-9644w8n-lenovo-0169622.snapshot')
|
|
|
|
snap, _ = user.post(json_encode(lenovo), res=ma.Snapshot)
|
|
|
|
action = {'type': ma.Use.t, 'devices': [snap['device']['id']]}
|
|
|
|
action_use, _ = user.post(action, res=ma.Action)
|
|
|
|
# res, _ = user.get("/metrics/")
|
|
|
|
csv_str, _ = user.get(res=documents.DocumentDef.t,
|
|
|
|
item='actions/',
|
|
|
|
accept='text/csv',
|
|
|
|
query=[('filter', {'type': ['Computer']})])
|
|
|
|
import pdb; pdb.set_trace()
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.mvp
|
|
|
|
@pytest.mark.usefixtures(conftest.app_context.__name__)
|
|
|
|
def test_complet_metrics(user: UserClient, user2: UserClient):
|
|
|
|
""" Checks one standard query of metrics """
|
|
|
|
# Insert computer
|
|
|
|
lenovo = yaml2json('desktop-9644w8n-lenovo-0169622.snapshot')
|
|
|
|
acer = yaml2json('acer.happy.battery.snapshot')
|
|
|
|
snap1, _ = user.post(json_encode(lenovo), res=ma.Snapshot)
|
|
|
|
snap2, _ = user.post(json_encode(acer), res=ma.Snapshot)
|
|
|
|
lot, _ = user.post({'name': 'MyLot'}, res=Lot)
|
|
|
|
devices = [('id', snap1['device']['id']),
|
|
|
|
('id', snap2['device']['id'])
|
|
|
|
]
|
|
|
|
lot, _ = user.post({},
|
|
|
|
res=Lot,
|
|
|
|
item='{}/devices'.format(lot['id']),
|
|
|
|
query=devices)
|
|
|
|
# request_post = {
|
|
|
|
# 'type': 'Trade',
|
|
|
|
# 'devices': [span1['device']['id'], snap2['device']['id']],
|
|
|
|
# 'userFromEmail': user2.email,
|
|
|
|
# 'userToEmail': user.email,
|
|
|
|
# 'price': 10,
|
|
|
|
# 'date': "2020-12-01T02:00:00+00:00",
|
|
|
|
# 'lot': lot['id'],
|
|
|
|
# 'confirms': True,
|
|
|
|
# }
|
|
|
|
|
|
|
|
# user.post(res=models.Action, data=request_post)
|
|
|
|
|
|
|
|
# ==============================
|
|
|
|
# Check metrics
|
|
|
|
metrics = {'allocateds': 1, 'live': 1}
|
|
|
|
res, _ = user.get("/metrics/")
|
|
|
|
assert res == metrics
|