mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-05 23:09:32 +01:00
Some of the tests are run by default, other requires
`--enable-{remote}` to run. The remotes that are run by default
also have a `--disable-{remote}` flag. All of the remotes can be
enabled using `--all` flag.
To use this functionality in the fixture,
`test_config` fixture has to be used, and requires to call
`test_config.requires(remote)`.
In an individual test, you can simply use `pytest.mark.remote`
to make them skip or run.
64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
# pylint:disable=abstract-method
|
|
|
|
import uuid
|
|
|
|
import pytest
|
|
|
|
from dvc.path_info import CloudURLInfo
|
|
|
|
from .base import Base
|
|
|
|
TEST_AZURE_CONTAINER = "tests"
|
|
TEST_AZURE_CONNECTION_STRING = (
|
|
"DefaultEndpointsProtocol=http;"
|
|
"AccountName=devstoreaccount1;"
|
|
"AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSR"
|
|
"Z6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;"
|
|
"BlobEndpoint=http://127.0.0.1:{port}/devstoreaccount1;"
|
|
)
|
|
|
|
|
|
class Azure(Base, CloudURLInfo):
|
|
pass
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def azure_server(test_config, docker_compose, docker_services):
|
|
test_config.requires("azure")
|
|
|
|
from azure.core.exceptions import ( # pylint: disable=no-name-in-module
|
|
AzureError,
|
|
)
|
|
from azure.storage.blob import ( # pylint: disable=no-name-in-module
|
|
BlobServiceClient,
|
|
)
|
|
|
|
port = docker_services.port_for("azurite", 10000)
|
|
connection_string = TEST_AZURE_CONNECTION_STRING.format(port=port)
|
|
|
|
def _check():
|
|
try:
|
|
BlobServiceClient.from_connection_string(
|
|
connection_string
|
|
).list_containers()
|
|
return True
|
|
except AzureError:
|
|
return False
|
|
|
|
docker_services.wait_until_responsive(
|
|
timeout=60.0, pause=0.1, check=_check
|
|
)
|
|
|
|
return connection_string
|
|
|
|
|
|
@pytest.fixture
|
|
def azure(azure_server):
|
|
url = f"azure://{TEST_AZURE_CONTAINER}/{uuid.uuid4()}"
|
|
ret = Azure(url)
|
|
ret.config = {
|
|
"url": url,
|
|
"connection_string": azure_server,
|
|
}
|
|
return ret
|