No project description provided
Project description
Mebula is a framework which you can use in your testing code to mock your calls to cloud providers’ APIs. At the moment, Oracle’s OCI, Google Cloud and Microsoft Azure are supported.
Installation
- For Microsoft Azure, install the mebula[azure] package.
- For Google Cloud, install the mebula[google] package.
- For Oracle’s OCI, install the mebula[oracle] package.
Usage
Azure
You can use the mock_azure context manager and then use the Azure functions as normal:
from azure.common.client_factory import get_client_from_json_dict from azure.mgmt.compute import ComputeManagementClient from mebula.azure import mock_azure def test_azure(): with mock_azure(): config_dict = { "clientId": "ad735158-65ca-11e7-ba4d-ecb1d756380e", "clientSecret": "b70bb224-65ca-11e7-810c-ecb1d756380e", "subscriptionId": "bfc42d3a-65ca-11e7-95cf-ecb1d756380e", "tenantId": "c81da1d8-65ca-11e7-b1d1-ecb1d756380e", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com/", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net/", } client = get_client_from_json_dict(ComputeManagementClient, config_dict) assert list(client.virtual_machines.list("group")) == []
You can use the mock_google context manager and then use the Google API functions as normal:
import googleapiclient.discovery from mebula import mock_google def test_google(client): with mock_google(): client = googleapiclient.discovery.build("compute", "v1") assert client.instances().list(project="foo", zone="bar").execute() == {}
Oracle
You can use the mock_oracle context manager and then use the Oracle oci functions as normal:
import oci from mebula.oracle import mock_oracle def test_oracle(): with mock_oracle(): compute = oci.core.ComputeClient(config={}) assert compute.list_instances("foo").data == []
Coverage
Coverage is very minimal at the moment. Only launching and listing instances is supported.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size mebula-0.2.8-py3-none-any.whl (14.3 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size mebula-0.2.8.tar.gz (9.5 kB) | File type Source | Python version None | Upload date | Hashes View |