/
test_estimation.py
70 lines (63 loc) · 2.21 KB
/
test_estimation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import pytest
# pylint: disable=unused-import,wrong-import-order
from .context import Estimation
from .fixtures import (
auth_mock,
auth_live,
estimation_mock,
JSON_WORKFLOW_ESTIMATION,
)
def test_estimate_price(requests_mock, auth_mock, estimation_mock):
input_tasks = [
{
"name": "esa-s2-l2a-gtiff-visual:1",
"parentName": None,
"blockId": "c4cb8913-2ef3-4e82-a426-65ea8faacd9a",
"blockVersionTag": "1.0.1",
},
{
"name": "tiling:1",
"parentName": "esa-s2-l2a-gtiff-visual:1",
"blockId": "3e146dd6-2b67-4d6e-a422-bb3d973e32ff",
"blockVersionTag": "2.2.3",
},
]
url_workflow_estimation = (
f"{auth_mock._endpoint()}/projects/{auth_mock.project_id}/estimate/job"
)
requests_mock.post(url=url_workflow_estimation, json=JSON_WORKFLOW_ESTIMATION)
_ = estimation_mock.estimate()
assert list(estimation_mock.payload.keys()) == ["tasks", "inputs"]
assert estimation_mock.payload["tasks"] == input_tasks
@pytest.mark.live
def test_estimate_price_live(auth_live):
input_parameters = {
"esa-s2-l2a-gtiff-visual:1": {
"time": "2018-01-01T00:00:00+00:00/2020-12-31T23:59:59+00:00",
"limit": 1,
"bbox": [13.33409, 52.474922, 13.38547, 52.500398],
},
"tiling:1": {"tile_width": 768, "tile_height": 768},
}
input_tasks = [
{
"name": "esa-s2-l2a-gtiff-visual:1",
"parentName": None,
"blockId": "c4cb8913-2ef3-4e82-a426-65ea8faacd9a",
"blockVersionTag": "1.2.1",
},
{
"name": "tiling:1",
"parentName": "esa-s2-l2a-gtiff-visual:1",
"blockId": "3e146dd6-2b67-4d6e-a422-bb3d973e32ff",
"blockVersionTag": "2.2.3",
},
]
estimation = Estimation(auth_live, input_parameters, input_tasks).estimate()
assert isinstance(estimation, dict)
assert len(estimation) == 2
assert list(estimation.keys()) == ["esa-s2-l2a-gtiff-visual:1", "tiling:1"]
assert list(estimation["esa-s2-l2a-gtiff-visual:1"].keys()) == [
"blockConsumption",
"machineConsumption",
]