- @classmethod
- def callback_func(cls, elements):
- def callback(request, context):
- try:
- element = elements[request.headers.get("X-market-id")].pop(0)
- except (IndexError, KeyError):
- raise RuntimeError("Unexpected call")
- if element["response"] is None and element["response_same_as"] is not None:
- element["response"] = cls.last_https[element["response_same_as"]]
- elif element["response"] is not None:
- cls.last_https[element["date"]] = element["response"]
-
- assert cls.clean_body(request.body) == \
- cls.clean_body(element["body"]), "Body does not match"
- context.status_code = element["status"]
- if "error" in element:
- if element["error"] == "SSLError":
- raise SSLError(element["error_message"])
- else:
- raise getattr(requests.exceptions, element["error"])(element["error_message"])
- return element["response"]
- return callback
+def callback(self, elements, request, context):
+ try:
+ element = elements[request.headers.get("X-market-id")].pop(0)
+ except (IndexError, KeyError):
+ self.error_calls.append([request.method, request.url, request.headers.get("X-market-id")])
+ raise RuntimeError("Unexpected call")
+ if element["response"] is None and element["response_same_as"] is not None:
+ element["response"] = self.last_https[element["response_same_as"]]
+ elif element["response"] is not None:
+ self.last_https[element["date"]] = element["response"]
+
+ assert self.clean_body(request.body) == \
+ self.clean_body(element["body"]), "Body does not match"
+ context.status_code = element["status"]
+ if "error" in element:
+ if element["error"] == "SSLError":
+ raise SSLError(element["error_message"])
+ else:
+ raise getattr(requests.exceptions, element["error"])(element["error_message"])
+ return element["response"]
+
+class GlobalVariablesMock:
+ def start(self):
+ import market
+ import store
+
+ self.patchers = [
+ mock.patch.multiple(market.Portfolio,
+ data=store.LockedVar(None),
+ liquidities=store.LockedVar({}),
+ last_date=store.LockedVar(None),
+ report=store.LockedVar(store.ReportStore(None, no_http_dup=True)),
+ worker=None,
+ worker_tag="",
+ worker_notify=None,
+ worker_started=False,
+ callback=None)
+ ]
+ for patcher in self.patchers:
+ patcher.start()
+
+ def stop(self):
+ pass
+