File: fixture.py

package info (click to toggle)
python-softlayer 6.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,100 kB
  • sloc: python: 53,771; makefile: 289; sh: 57
file content (32 lines) | stat: -rw-r--r-- 1,021 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 = '{} fixture is not implemented'.format(call.service)
            raise NotImplementedError(message) from ex
        try:
            return getattr(module, call.method)
        except AttributeError as ex:
            message = '{}::{} fixture is not implemented'.format(call.service, call.method)
            raise NotImplementedError(message) from ex

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