mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-06-04 11:25:52 +08:00

* feat(license): base setup for license service * feat(license): delete old manager and import to new * feat(license): deal with features * feat(license): complete the license service in ee * feat(license): add sqlmigration for licenses * feat(license): remove feature flags * feat(license): refactor into provider pattern * feat(license): remove the ff lookup interface * feat(license): add logging to the validator functions * feat(license): implement features for OSS build * feat(license): fix the OSS build * feat(license): lets blast frontend * feat(license): fix the EE OSS build without license * feat(license): remove the hardcoded testing configs * feat(license): upgrade migration to 34 * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): better naming and structure * feat(license): integration tests * feat(license): integration tests * feat(license): refactor frontend * feat(license): make frontend api structure changes * feat(license): fix integration tests * feat(license): revert hardcoded configs * feat(license): fix integration tests * feat(license): address review comments * feat(license): address review comments * feat(license): address review comments * feat(license): address review comments * feat(license): update migration * feat(license): update migration * feat(license): update migration * feat(license): fixed logging * feat(license): use the unmarshaller for postable subscription * feat(license): correct the error message * feat(license): fix license test * feat(license): fix lint issues * feat(user): do not kill the service if upstream is down
83 lines
2.3 KiB
Python
83 lines
2.3 KiB
Python
import dataclasses
|
|
from typing import List
|
|
|
|
import pytest
|
|
from testcontainers.core.container import Network
|
|
from wiremock.client import (
|
|
Mapping,
|
|
Mappings,
|
|
Requests,
|
|
)
|
|
from wiremock.constants import Config
|
|
from wiremock.testing.testcontainer import WireMockContainer
|
|
|
|
from fixtures import types
|
|
|
|
|
|
@pytest.fixture(name="zeus", scope="package")
|
|
def zeus(
|
|
network: Network,
|
|
request: pytest.FixtureRequest,
|
|
pytestconfig: pytest.Config,
|
|
) -> types.TestContainerDocker:
|
|
"""
|
|
Package-scoped fixture for running zeus
|
|
"""
|
|
dev = request.config.getoption("--dev")
|
|
if dev:
|
|
cached_zeus = pytestconfig.cache.get("zeus", None)
|
|
if cached_zeus:
|
|
return types.TestContainerDocker(
|
|
host_config=types.TestContainerUrlConfig(
|
|
cached_zeus["host_config"]["scheme"],
|
|
cached_zeus["host_config"]["address"],
|
|
cached_zeus["host_config"]["port"],
|
|
),
|
|
container_config=types.TestContainerUrlConfig(
|
|
cached_zeus["container_config"]["scheme"],
|
|
cached_zeus["container_config"]["address"],
|
|
cached_zeus["container_config"]["port"],
|
|
),
|
|
)
|
|
|
|
container = WireMockContainer(image="wiremock/wiremock:2.35.1-1", secure=False)
|
|
container.with_network(network)
|
|
|
|
container.start()
|
|
|
|
def stop():
|
|
if dev:
|
|
return
|
|
|
|
container.stop(delete_volume=True)
|
|
|
|
request.addfinalizer(stop)
|
|
|
|
cached_zeus = types.TestContainerDocker(
|
|
host_config=types.TestContainerUrlConfig(
|
|
"http", container.get_container_host_ip(), container.get_exposed_port(8080)
|
|
),
|
|
container_config=types.TestContainerUrlConfig(
|
|
"http", container.get_wrapped_container().name, 8080
|
|
),
|
|
)
|
|
|
|
if dev:
|
|
pytestconfig.cache.set("zeus", dataclasses.asdict(cached_zeus))
|
|
|
|
return cached_zeus
|
|
|
|
|
|
@pytest.fixture(name="make_http_mocks", scope="function")
|
|
def make_http_mocks():
|
|
def _make_http_mocks(container: types.TestContainerDocker, mappings: List[Mapping]):
|
|
Config.base_url = container.host_config.get("/__admin")
|
|
|
|
for mapping in mappings:
|
|
Mappings.create_mapping(mapping=mapping)
|
|
|
|
yield _make_http_mocks
|
|
|
|
Mappings.delete_all_mappings()
|
|
Requests.reset_request_journal()
|