-
-
Notifications
You must be signed in to change notification settings - Fork 398
/
Copy pathconftest.py
50 lines (39 loc) · 1.61 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
# This file is part of arduino-cli.
# Copyright 2019 ARDUINO SA (http://www.arduino.cc/)
# This software is released under the GNU General Public License version 3,
# which covers the main part of arduino-cli.
# The terms of this license can be found at:
# https://www.gnu.org/licenses/gpl-3.0.en.html
# You can be released from the requirements of the above licenses by purchasing
# a commercial license. Buying such a license is mandatory if you want to modify or
# otherwise use the software for commercial activities involving the Arduino
# software without disclosing the source code of your own applications. To purchase
# a commercial license, send an email to [email protected].
import os
import pytest
from invoke import run
@pytest.fixture(scope="session")
def data_dir(tmpdir_factory):
"""
A tmp folder will be created before running
the tests and deleted at the end.
"""
return str(tmpdir_factory.mktemp('ArduinoTest'))
@pytest.fixture(scope="session")
def run_command(data_dir):
"""
Provide a wrapper around invoke's `run` API so that every test
will work in the same temporary folder.
Useful reference:
http://docs.pyinvoke.org/en/1.2/api/runners.html#invoke.runners.Result
"""
cli_path = os.path.join(pytest.config.rootdir, '..', 'arduino-cli')
env = {
"ARDUINO_DATA_DIR": data_dir,
"ARDUINO_DOWNLOADS_DIR": data_dir,
"ARDUINO_SKETCHBOOK_DIR": data_dir
}
def _run(cmd_string):
cli_full_line = "{} {}".format(cli_path, cmd_string)
return run(cli_full_line, echo=False, hide=True, warn=True, env=env)
return _run