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