-
Notifications
You must be signed in to change notification settings - Fork 7
/
conftest.py
102 lines (75 loc) · 2.29 KB
/
conftest.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# type: ignore
import os
import random
import shutil
import tempfile
from datetime import datetime, timedelta
from random import randint
from uuid import uuid4
import pytest
import dotenv
from botcity.maestro import *
dotenv.load_dotenv()
SERVER = os.getenv("BOTCITY_SERVER")
LOGIN = os.getenv("BOTCITY_LOGIN")
KEY = os.getenv("BOTCITY_KEY")
ACTIVITY_LABEL_TO_LOG = f'TestCI-{uuid4()}'
DATAPOOL_LABEL = f"testing-{uuid4()}"
@pytest.fixture
def path_screenshot() -> str:
return os.path.abspath(os.path.join('tests', 'screenshot.png'))
@pytest.fixture
def tmp_folder() -> str:
folder = tempfile.mkdtemp()
yield folder
shutil.rmtree(folder)
@pytest.fixture
def file(tmp_folder: str) -> str:
filepath = f'{tmp_folder}/test.txt'
with open(f'{tmp_folder}/test.txt', 'w') as file:
file.write('Create a new text file!')
yield filepath
@pytest.fixture
def maestro_test_to_login():
sdk = BotMaestroSDK()
yield sdk
sdk.logoff()
@pytest.fixture(scope="session")
def maestro():
sdk = BotMaestroSDK()
sdk.login(server=SERVER, login=LOGIN, key=KEY)
yield sdk
sdk.logoff()
@pytest.fixture(scope="session")
def credential_label():
label = f"testing-{uuid4()}"
yield label
@pytest.fixture(scope="session")
def credential_key():
label = f"testing-{uuid4()}"
yield label
@pytest.fixture(scope="session")
def pool(activity_label: str, maestro: BotMaestroSDK) -> DataPool:
pool = DataPool(label=DATAPOOL_LABEL, default_automation=activity_label)
yield pool
pool._delete()
@pytest.fixture()
def task(maestro: BotMaestroSDK, activity_label: str):
parameters = {
"test_to_test": "testing",
"integer_to_test": 123,
"double_to_test": 1.0
}
task = maestro.create_task(activity_label=activity_label, parameters=parameters,
min_execution_date=datetime.now() + timedelta(hours=1),
priority=randint(0, 10)
)
yield task
@pytest.fixture(scope="session")
def activity_label():
return 'TestCI'
@pytest.fixture()
def datapool_entry():
integration_test_value = random.randint(0, 100)
priority = random.randint(0, 10)
yield DataPoolEntry(values={"integration_test_value": integration_test_value}, priority=priority)