mebula

A framework for mocking out cloud APIs

https://github.com/milliams/mebula

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (4.8%) to scientific vocabulary

Keywords

cloud google-cloud mocking oracle-cloud python testing

Keywords from Contributors

interactive mesh interpretability sequences generic projection optim hacking network-simulation
Last synced: 6 months ago · JSON representation ·

Repository

A framework for mocking out cloud APIs

Basic Info
  • Host: GitHub
  • Owner: milliams
  • Language: Python
  • Default Branch: master
  • Size: 120 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 2
  • Releases: 13
Topics
cloud google-cloud mocking oracle-cloud python testing
Created about 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License Citation

README.rst

.. SPDX-FileCopyrightText: © 2020 Matt Williams 
   SPDX-License-Identifier: MIT

******
Mebula
******

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:

.. code:: python

    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():
            credential = DefaultAzureCredential()
            client = ComputeManagementClient(credential=credential, subscription_id="foo")

            assert list(client.virtual_machines.list("group")) == []

Google
------

You can use the ``mock_google`` context manager and then use the Google API functions as normal:

.. code:: python

    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:

.. code:: python

    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.

Owner

  • Name: Matt Williams
  • Login: milliams
  • Kind: user
  • Location: UK
  • Company: University of Bristol

Research Software Engineer

Citation (citation.cff)

# SPDX-FileCopyrightText: © 2024 Matt Williams <matt@milliams.com>
# SPDX-License-Identifier: CC0-1.0

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Williams"
  given-names: "Matt"
  orcid: "https://orcid.org/0000-0003-2198-1058"
title: "mebula"
version: 0.2.10
doi: 10.5281/zenodo.4094775
date-released: 2024-02-22
url: "https://github.com/milliams/mebula"

GitHub Events

Total
  • Delete event: 1
  • Issue comment event: 1
  • Pull request event: 2
  • Create event: 1
Last Year
  • Delete event: 1
  • Issue comment event: 1
  • Pull request event: 2
  • Create event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 142
  • Total Committers: 3
  • Avg Commits per committer: 47.333
  • Development Distribution Score (DDS): 0.19
Past Year
  • Commits: 15
  • Committers: 3
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.667
Top Committers
Name Email Commits
Matt Williams m****t@m****m 115
dependabot[bot] 4****] 22
Matt Williams m****s@b****k 5
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 75
  • Average time to close issues: about 24 hours
  • Average time to close pull requests: about 1 month
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.91
  • Merged pull requests: 23
  • Bot issues: 1
  • Bot pull requests: 74
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.88
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 8
Top Authors
Issue Authors
  • dependabot-preview[bot] (1)
Pull Request Authors
  • dependabot[bot] (88)
  • dependabot-preview[bot] (8)
  • milliams (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (96)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 797 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 13
  • Total maintainers: 1
pypi.org: mebula
  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 797 Last month
Rankings
Dependent packages count: 7.3%
Downloads: 9.7%
Average: 21.6%
Dependent repos count: 22.1%
Forks count: 30.0%
Stargazers count: 38.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

pyproject.toml pypi
  • black ^22.1 develop
  • coverage ^6.0.1 develop
  • flake8 ^4.0.1 develop
  • mypy ^0.960 develop
  • pytest ^7.0 develop
  • azure-identity ^1.6.0
  • azure-mgmt-compute >=21,<27
  • google-api-python-client >=1.7.11,<3.0.0
  • lark ^1.0
  • oci ^2.10.0
  • python ^3.6.2
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
.github/workflows/main.yml actions
  • actions/checkout v2 composite
  • actions/create-release v1 composite
  • actions/setup-python v2 composite