File: fixture.py

package info (click to toggle)
python-softlayer 6.2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,508 kB
  • sloc: python: 57,195; makefile: 133; xml: 97; sh: 59
file content (32 lines) | stat: -rw-r--r-- 1,003 bytes parent folder | download
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
"""
    SoftLayer.transports.fixture
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Fixture transport, used for unit tests

    :license: MIT, see LICENSE for more details.
"""

import importlib


class FixtureTransport(object):
    """Implements a transport which returns fixtures."""

    def __call__(self, call):
        """Load fixture from the default fixture path."""
        try:
            module_path = 'SoftLayer.fixtures.%s' % call.service
            module = importlib.import_module(module_path)
        except ImportError as ex:
            message = f'{call.service} fixture is not implemented'
            raise NotImplementedError(message) from ex
        try:
            return getattr(module, call.method)
        except AttributeError as ex:
            message = f'{call.service}::{call.method} fixture is not implemented'
            raise NotImplementedError(message) from ex

    @staticmethod
    def print_reproduceable(call):
        """Not Implemented"""
        return call.service