Michael Merickel
2018-10-15 2b024920847481592b1a13d4006d2a9fa8881d72
commit | author | age
262cea 1 class DummyTweens(object):
CM 2     def __init__(self, implicit, explicit):
3         self._implicit = implicit
4         self.explicit = explicit
5         self.name_to_alias = {}
6     def implicit(self):
7         return self._implicit
f1013b 8
262cea 9 class Dummy:
CM 10     pass
11
12 dummy_root = Dummy()
13
14 class DummyRegistry(object):
15     settings = {}
16     def queryUtility(self, iface, default=None, name=''):
17         return default
18
19 dummy_registry = DummyRegistry()
20
21 class DummyShell(object):
22     env = {}
23     help = ''
208e7b 24     called = False
990fb0 25     dummy_attr = 1
262cea 26
CM 27     def __call__(self, env, help):
28         self.env = env
29         self.help = help
208e7b 30         self.called = True
990fb0 31         self.env['request'].dummy_attr = self.dummy_attr
262cea 32
CM 33 class DummyInteractor:
34     def __call__(self, banner, local):
35         self.banner = banner
36         self.local = local
f1013b 37
262cea 38 class DummyApp:
CM 39     def __init__(self):
40         self.registry = dummy_registry
41
42 class DummyMapper(object):
43     def __init__(self, *routes):
44         self.routes = routes
45
582c2e 46     def get_routes(self, include_static=False):
262cea 47         return self.routes
CM 48
49 class DummyRoute(object):
50     def __init__(self, name, pattern, factory=None,
51                  matchdict=None, predicate=None):
52         self.name = name
53         self.path = pattern
54         self.pattern = pattern
55         self.factory = factory
56         self.matchdict = matchdict
57         self.predicates = []
58         if predicate is not None:
59             self.predicates = [predicate]
60
61     def match(self, route):
62         return self.matchdict
f1013b 63
262cea 64 class DummyRequest:
CM 65     application_url = 'http://example.com:5432'
66     script_name = ''
67     def __init__(self, environ):
68         self.environ = environ
69         self.matchdict = {}
70
71 class DummyView(object):
72     def __init__(self, **attrs):
73         self.__request_attrs__ = attrs
74
d9dc88 75     def view(context, request): pass
1bdb55 76
262cea 77 from zope.interface import implementer
CM 78 from pyramid.interfaces import IMultiView
79 @implementer(IMultiView)
80 class DummyMultiView(object):
81
82     def __init__(self, *views, **attrs):
83         self.views = [(None, view, None) for view in views]
84         self.__request_attrs__ = attrs
85
86 class DummyCloser(object):
87     def __call__(self):
88         self.called = True
89
90 class DummyBootstrap(object):
91     def __init__(self, app=None, registry=None, request=None, root=None,
92                  root_factory=None, closer=None):
93         self.app = app or DummyApp()
94         if registry is None:
95             registry = DummyRegistry()
96         self.registry = registry
97         if request is None:
98             request = DummyRequest({})
99         self.request = request
100         if root is None:
101             root = Dummy()
102         self.root = root
103         if root_factory is None:
104             root_factory = Dummy()
105         self.root_factory = root_factory
106         if closer is None:
107             closer = DummyCloser()
108         self.closer = closer
109
110     def __call__(self, *a, **kw):
111         self.a = a
112         self.kw = kw
cefcf8 113         registry = kw.get('registry', self.registry)
MM 114         request = kw.get('request', self.request)
115         request.registry = registry
262cea 116         return {
CM 117             'app': self.app,
cefcf8 118             'registry': registry,
MM 119             'request': request,
262cea 120             'root': self.root,
CM 121             'root_factory': self.root_factory,
122             'closer': self.closer,
123         }
cb9202 124
JA 125
126 class DummyEntryPoint(object):
127     def __init__(self, name, module):
128         self.name = name
129         self.module = module
130
131     def load(self):
132         return self.module
133
134
135 class DummyPkgResources(object):
136     def __init__(self, entry_point_values):
137         self.entry_points = []
138
139         for name, module in entry_point_values.items():
140             self.entry_points.append(DummyEntryPoint(name, module))
141
142     def iter_entry_points(self, name):
143         return self.entry_points
14be69 144
MM 145
146 class dummy_setup_logging(object):
147     def __call__(self, config_uri, global_conf):
148         self.config_uri = config_uri
678790 149         self.defaults = global_conf
14be69 150
MM 151
152 class DummyLoader(object):
3e489b 153     def __init__(self, settings=None, app_settings=None, app=None, server=None):
14be69 154         if not settings:
MM 155             settings = {}
156         if not app_settings:
157             app_settings = {}
158         self.settings = settings
159         self.app_settings = app_settings
160         self.app = app
3e489b 161         self.server = server
14be69 162         self.calls = []
MM 163
164     def __call__(self, uri):
3e489b 165         import plaster
MM 166         self.uri = plaster.parse_uri(uri)
14be69 167         return self
MM 168
169     def add_call(self, op, name, defaults):
170         self.calls.append({'op': op, 'name': name, 'defaults': defaults})
171
172     def get_settings(self, name=None, defaults=None):
173         self.add_call('settings', name, defaults)
678790 174         return self.settings.get(name, {})
14be69 175
MM 176     def get_wsgi_app(self, name=None, defaults=None):
177         self.add_call('app', name, defaults)
178         return self.app
179
180     def get_wsgi_app_settings(self, name=None, defaults=None):
181         self.add_call('app_settings', name, defaults)
182         return self.app_settings
183
3e489b 184     def get_wsgi_server(self, name=None, defaults=None):
MM 185         self.add_call('server', name, defaults)
186         return self.server
187
14be69 188     def setup_logging(self, defaults):
MM 189         self.add_call('logging', None, defaults)
190         self.defaults = defaults