ccxt-rest
Version:
Open Source Unified REST API of 100+ Crypto Exchange Sites
2 lines • 1.41 MB
HTML
<!doctype html>
<html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>CCXT-REST Exchange Summary Dashboard</title><link rel="stylesheet" href="assets/app.css"/></head><body data-raw="{"stats":{"suites":248,"tests":744,"passes":744,"pending":0,"failures":0,"start":"2020-06-21T18:10:18.827Z","end":"2020-06-21T18:12:31.086Z","duration":132259,"testsRegistered":744,"passPercent":100,"pendingPercent":0,"other":0,"hasOther":false,"skipped":0,"hasSkipped":false,"passPercentClass":"success","pendingPercentClass":"danger"},"suites":{"uuid":"8995d97c-05d7-40a3-a779-1712473a4c68","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"857fa333-ae3b-4191-9edc-9d3804c1a1a8","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b57c5a73-11f3-42da-95f6-471545185839","title":"> [bibox] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bibox-test.js","file":"/test/generated/bibox-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bibox] connect","fullTitle":" > [bibox] without API keys > [bibox] connect","timedOut":false,"duration":334,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"61fdacc2-2213-4752-97f5-1e2f2bb6166e","isHook":false,"skipped":false},{"title":"> [bibox] markets","fullTitle":" > [bibox] without API keys > [bibox] markets","timedOut":false,"duration":792,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ab7e4108-7202-4533-8d8e-f73aaaff6a28","isHook":false,"skipped":false},{"title":"> [bibox] ticker","fullTitle":" > [bibox] without API keys > [bibox] ticker","timedOut":false,"duration":37,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cc42085c-49f5-4898-ab8c-2e2dacead0ff","isHook":false,"skipped":false},{"title":"> [bibox] tickers","fullTitle":" > [bibox] without API keys > [bibox] tickers","timedOut":false,"duration":1626,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4cf12567-2701-49eb-8abf-0f5284a2b8a4","isHook":false,"skipped":false},{"title":"> [bibox] orderBook","fullTitle":" > [bibox] without API keys > [bibox] orderBook","timedOut":false,"duration":26,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"54f5346a-df9a-41ad-9bf4-2b4bc19d7f60","isHook":false,"skipped":false},{"title":"> [bibox] trades","fullTitle":" > [bibox] without API keys > [bibox] trades","timedOut":false,"duration":17,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"eeee0fe6-9d79-4372-a761-c28194c765fb","isHook":false,"skipped":false}],"suites":[],"passes":["61fdacc2-2213-4752-97f5-1e2f2bb6166e","ab7e4108-7202-4533-8d8e-f73aaaff6a28","cc42085c-49f5-4898-ab8c-2e2dacead0ff","4cf12567-2701-49eb-8abf-0f5284a2b8a4","54f5346a-df9a-41ad-9bf4-2b4bc19d7f60","eeee0fe6-9d79-4372-a761-c28194c765fb"],"failures":[],"pending":[],"skipped":[],"duration":2832,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"5c074f2a-7dca-417a-928b-39f240e025d1","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"a1f0b883-ce88-4169-9827-486050945288","title":"> [binanceje] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/binanceje-test.js","file":"/test/generated/binanceje-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [binanceje] connect","fullTitle":" > [binanceje] without API keys > [binanceje] connect","timedOut":false,"duration":187,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a2fc4fec-d352-49aa-9ac9-a07163b400ed","isHook":false,"skipped":false},{"title":"> [binanceje] markets","fullTitle":" > [binanceje] without API keys > [binanceje] markets","timedOut":false,"duration":619,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1a78b2fb-e369-44c1-b803-79fe7c81a876","isHook":false,"skipped":false},{"title":"> [binanceje] ticker","fullTitle":" > [binanceje] without API keys > [binanceje] ticker","timedOut":false,"duration":725,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0be32d12-f80f-438b-88d5-27fd93a06879","isHook":false,"skipped":false},{"title":"> [binanceje] tickers","fullTitle":" > [binanceje] without API keys > [binanceje] tickers","timedOut":false,"duration":726,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"39055945-6e0e-4b35-a72d-12073e231fbb","isHook":false,"skipped":false},{"title":"> [binanceje] orderBook","fullTitle":" > [binanceje] without API keys > [binanceje] orderBook","timedOut":false,"duration":484,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0515b508-f16c-4a34-a90a-ff64040b5662","isHook":false,"skipped":false},{"title":"> [binanceje] trades","fullTitle":" > [binanceje] without API keys > [binanceje] trades","timedOut":false,"duration":715,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"29335a2d-fab9-4060-9a59-efb31debda7e","isHook":false,"skipped":false}],"suites":[],"passes":["a2fc4fec-d352-49aa-9ac9-a07163b400ed","1a78b2fb-e369-44c1-b803-79fe7c81a876","0be32d12-f80f-438b-88d5-27fd93a06879","39055945-6e0e-4b35-a72d-12073e231fbb","0515b508-f16c-4a34-a90a-ff64040b5662","29335a2d-fab9-4060-9a59-efb31debda7e"],"failures":[],"pending":[],"skipped":[],"duration":3456,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"9181e562-a2c2-4c88-9406-943dffa88af1","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"9737f136-518d-4247-9498-69d39fca4d63","title":"> [binance] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/binance-test.js","file":"/test/generated/binance-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [binance] connect","fullTitle":" > [binance] without API keys > [binance] connect","timedOut":false,"duration":233,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ba59917e-2353-4874-89d2-c1e5b92501a5","isHook":false,"skipped":false},{"title":"> [binance] markets","fullTitle":" > [binance] without API keys > [binance] markets","timedOut":false,"duration":675,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"979c88e3-361e-4b7e-bac9-cd7119ae0d57","isHook":false,"skipped":false},{"title":"> [binance] ticker","fullTitle":" > [binance] without API keys > [binance] ticker","timedOut":false,"duration":856,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4ddcd9f3-6910-4117-be6a-2f393ad11457","isHook":false,"skipped":false},{"title":"> [binance] tickers","fullTitle":" > [binance] without API keys > [binance] tickers","timedOut":false,"duration":843,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"519237e7-214b-4446-88b1-39e3ae4c470f","isHook":false,"skipped":false},{"title":"> [binance] orderBook","fullTitle":" > [binance] without API keys > [binance] orderBook","timedOut":false,"duration":305,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d6b5c808-0c10-4fc6-b527-26ce6f0531c6","isHook":false,"skipped":false},{"title":"> [binance] trades","fullTitle":" > [binance] without API keys > [binance] trades","timedOut":false,"duration":776,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e6d27aab-7ccb-42df-bcff-7c091e3124c2","isHook":false,"skipped":false}],"suites":[],"passes":["ba59917e-2353-4874-89d2-c1e5b92501a5","979c88e3-361e-4b7e-bac9-cd7119ae0d57","4ddcd9f3-6910-4117-be6a-2f393ad11457","519237e7-214b-4446-88b1-39e3ae4c470f","d6b5c808-0c10-4fc6-b527-26ce6f0531c6","e6d27aab-7ccb-42df-bcff-7c091e3124c2"],"failures":[],"pending":[],"skipped":[],"duration":3688,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d6b71d47-f4f8-4d17-b72b-f34c4145d96b","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b47456d7-0584-46d6-9a47-857be0720013","title":"> [acx] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/acx-test.js","file":"/test/generated/acx-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [acx] connect","fullTitle":" > [acx] without API keys > [acx] connect","timedOut":false,"duration":520,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b0e7bd3e-4ac3-4024-8fb5-21092b405e63","isHook":false,"skipped":false},{"title":"> [acx] markets","fullTitle":" > [acx] without API keys > [acx] markets","timedOut":false,"duration":1016,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e241288c-e660-4bf5-beac-414c3d2d726a","isHook":false,"skipped":false},{"title":"> [acx] ticker","fullTitle":" > [acx] without API keys > [acx] ticker","timedOut":false,"duration":1218,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"40aad70a-5377-477f-808e-daf16acf6712","isHook":false,"skipped":false},{"title":"> [acx] tickers","fullTitle":" > [acx] without API keys > [acx] tickers","timedOut":false,"duration":1053,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"73fdcf86-b01b-45ad-88ac-8c9b3e3f83e6","isHook":false,"skipped":false},{"title":"> [acx] orderBook","fullTitle":" > [acx] without API keys > [acx] orderBook","timedOut":false,"duration":947,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b1f4ef5a-fff3-40fc-a079-8088baf2f82e","isHook":false,"skipped":false},{"title":"> [acx] trades","fullTitle":" > [acx] without API keys > [acx] trades","timedOut":false,"duration":1030,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a93d1c34-39e8-47e5-aec8-99a1c152d56b","isHook":false,"skipped":false}],"suites":[],"passes":["b0e7bd3e-4ac3-4024-8fb5-21092b405e63","e241288c-e660-4bf5-beac-414c3d2d726a","40aad70a-5377-477f-808e-daf16acf6712","73fdcf86-b01b-45ad-88ac-8c9b3e3f83e6","b1f4ef5a-fff3-40fc-a079-8088baf2f82e","a93d1c34-39e8-47e5-aec8-99a1c152d56b"],"failures":[],"pending":[],"skipped":[],"duration":5784,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"82316f3a-fab1-4284-a1aa-7fd9d26b7e06","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"88e77ebe-7543-47cd-a2ae-683acfd5ef01","title":"> [binanceus] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/binanceus-test.js","file":"/test/generated/binanceus-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [binanceus] connect","fullTitle":" > [binanceus] without API keys > [binanceus] connect","timedOut":false,"duration":42,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ce3bd3d8-abe1-41b9-9bdb-df47e5a16101","isHook":false,"skipped":false},{"title":"> [binanceus] markets","fullTitle":" > [binanceus] without API keys > [binanceus] markets","timedOut":false,"duration":393,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"abeb360b-39a6-4dff-b18c-1070885ae909","isHook":false,"skipped":false},{"title":"> [binanceus] ticker","fullTitle":" > [binanceus] without API keys > [binanceus] ticker","timedOut":false,"duration":804,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8be5442e-84ed-491b-8cfb-ab20ef7ac9a5","isHook":false,"skipped":false},{"title":"> [binanceus] tickers","fullTitle":" > [binanceus] without API keys > [binanceus] tickers","timedOut":false,"duration":529,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"684a2402-2fdf-46bb-8450-b92c77878a77","isHook":false,"skipped":false},{"title":"> [binanceus] orderBook","fullTitle":" > [binanceus] without API keys > [binanceus] orderBook","timedOut":false,"duration":502,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"feeb76e3-142a-49b6-91ee-278d635a20dd","isHook":false,"skipped":false},{"title":"> [binanceus] trades","fullTitle":" > [binanceus] without API keys > [binanceus] trades","timedOut":false,"duration":488,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"21b9cd01-09a3-472c-a6bd-7cbc4360d3c7","isHook":false,"skipped":false}],"suites":[],"passes":["ce3bd3d8-abe1-41b9-9bdb-df47e5a16101","abeb360b-39a6-4dff-b18c-1070885ae909","8be5442e-84ed-491b-8cfb-ab20ef7ac9a5","684a2402-2fdf-46bb-8450-b92c77878a77","feeb76e3-142a-49b6-91ee-278d635a20dd","21b9cd01-09a3-472c-a6bd-7cbc4360d3c7"],"failures":[],"pending":[],"skipped":[],"duration":2758,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"35496120-5046-4762-b000-abae561c20a3","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"46a89363-4492-45cc-854f-6ab8e9a1f830","title":"> [bigone] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bigone-test.js","file":"/test/generated/bigone-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bigone] connect","fullTitle":" > [bigone] without API keys > [bigone] connect","timedOut":false,"duration":277,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d95af9dd-a265-4a33-b079-62ece0e37c1b","isHook":false,"skipped":false},{"title":"> [bigone] markets","fullTitle":" > [bigone] without API keys > [bigone] markets","timedOut":false,"duration":714,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"647544a1-175c-4014-a836-4b86e868588a","isHook":false,"skipped":false},{"title":"> [bigone] ticker","fullTitle":" > [bigone] without API keys > [bigone] ticker","timedOut":false,"duration":1837,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f95ab954-f573-4470-9847-ed875e0840a6","isHook":false,"skipped":false},{"title":"> [bigone] tickers","fullTitle":" > [bigone] without API keys > [bigone] tickers","timedOut":false,"duration":1373,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7172ba23-61ae-4375-a2c6-5f624f0b07c0","isHook":false,"skipped":false},{"title":"> [bigone] orderBook","fullTitle":" > [bigone] without API keys > [bigone] orderBook","timedOut":false,"duration":1073,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"62ac2875-5dda-4777-82de-94af39a2d1f0","isHook":false,"skipped":false},{"title":"> [bigone] trades","fullTitle":" > [bigone] without API keys > [bigone] trades","timedOut":false,"duration":1277,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fd134389-9f50-4cdb-b97a-474ca2dddca1","isHook":false,"skipped":false}],"suites":[],"passes":["d95af9dd-a265-4a33-b079-62ece0e37c1b","647544a1-175c-4014-a836-4b86e868588a","f95ab954-f573-4470-9847-ed875e0840a6","7172ba23-61ae-4375-a2c6-5f624f0b07c0","62ac2875-5dda-4777-82de-94af39a2d1f0","fd134389-9f50-4cdb-b97a-474ca2dddca1"],"failures":[],"pending":[],"skipped":[],"duration":6551,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"46cc0291-28cf-46f3-9ebc-ab8077096a25","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b14ab63d-884f-4fc8-9fd4-e7fcefe90ff4","title":"> [anxpro] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/anxpro-test.js","file":"/test/generated/anxpro-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [anxpro] connect","fullTitle":" > [anxpro] without API keys > [anxpro] connect","timedOut":false,"duration":504,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b3d0e5a2-df9a-4bb5-bf3b-01f394ab5399","isHook":false,"skipped":false},{"title":"> [anxpro] markets","fullTitle":" > [anxpro] without API keys > [anxpro] markets","timedOut":false,"duration":5409,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"20175c85-5772-41c0-a9da-b6dbc985810e","isHook":false,"skipped":false},{"title":"> [anxpro] ticker","fullTitle":" > [anxpro] without API keys > [anxpro] ticker","timedOut":false,"duration":1390,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3851f799-a3bc-45e5-8cd9-4aa0da25b7b2","isHook":false,"skipped":false},{"title":"> [anxpro] tickers","fullTitle":" > [anxpro] without API keys > [anxpro] tickers","timedOut":false,"duration":13,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c80971e2-6b18-4b63-9230-d2243cd77043","isHook":false,"skipped":false},{"title":"> [anxpro] orderBook","fullTitle":" > [anxpro] without API keys > [anxpro] orderBook","timedOut":false,"duration":54,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"582768ff-fb48-4638-ac80-1cfec9c6a70e","isHook":false,"skipped":false},{"title":"> [anxpro] trades","fullTitle":" > [anxpro] without API keys > [anxpro] trades","timedOut":false,"duration":7,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b192974f-83ac-45ad-a3cd-e0f88f01981f","isHook":false,"skipped":false}],"suites":[],"passes":["b3d0e5a2-df9a-4bb5-bf3b-01f394ab5399","20175c85-5772-41c0-a9da-b6dbc985810e","3851f799-a3bc-45e5-8cd9-4aa0da25b7b2","c80971e2-6b18-4b63-9230-d2243cd77043","582768ff-fb48-4638-ac80-1cfec9c6a70e","b192974f-83ac-45ad-a3cd-e0f88f01981f"],"failures":[],"pending":[],"skipped":[],"duration":7377,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"c9462732-5550-4f82-a5f4-0589f5d77e75","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"32c8f354-5b9f-423e-8d03-e67cc36ec38b","title":"> [aofex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/aofex-test.js","file":"/test/generated/aofex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [aofex] connect","fullTitle":" > [aofex] without API keys > [aofex] connect","timedOut":false,"duration":458,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e9f409e5-74cb-46bb-91de-a7f32f078e05","isHook":false,"skipped":false},{"title":"> [aofex] markets","fullTitle":" > [aofex] without API keys > [aofex] markets","timedOut":false,"duration":1940,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ffcac089-4b72-42f6-a1d5-0c43e087c033","isHook":false,"skipped":false},{"title":"> [aofex] ticker","fullTitle":" > [aofex] without API keys > [aofex] ticker","timedOut":false,"duration":3007,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"50576cca-a536-4ac6-a968-54376c3aa075","isHook":false,"skipped":false},{"title":"> [aofex] tickers","fullTitle":" > [aofex] without API keys > [aofex] tickers","timedOut":false,"duration":1017,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e19d8a28-dbe6-47f0-b17a-720a44c61f30","isHook":false,"skipped":false},{"title":"> [aofex] orderBook","fullTitle":" > [aofex] without API keys > [aofex] orderBook","timedOut":false,"duration":984,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c3aaa968-0d18-4ade-ab48-9c0d615f5b85","isHook":false,"skipped":false},{"title":"> [aofex] trades","fullTitle":" > [aofex] without API keys > [aofex] trades","timedOut":false,"duration":1030,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e91bb799-6f0a-49a2-af9f-196a0ebb2b9b","isHook":false,"skipped":false}],"suites":[],"passes":["e9f409e5-74cb-46bb-91de-a7f32f078e05","ffcac089-4b72-42f6-a1d5-0c43e087c033","50576cca-a536-4ac6-a968-54376c3aa075","e19d8a28-dbe6-47f0-b17a-720a44c61f30","c3aaa968-0d18-4ade-ab48-9c0d615f5b85","e91bb799-6f0a-49a2-af9f-196a0ebb2b9b"],"failures":[],"pending":[],"skipped":[],"duration":8436,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"28553314-8993-4c0a-9db3-cb53d8f5564e","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"c63f8289-986b-4425-a197-54e4cfa55185","title":"> [bcex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bcex-test.js","file":"/test/generated/bcex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bcex] connect","fullTitle":" > [bcex] without API keys > [bcex] connect","timedOut":false,"duration":363,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8b5d9d95-4d8b-4fe9-bac6-766c564552d1","isHook":false,"skipped":false},{"title":"> [bcex] markets","fullTitle":" > [bcex] without API keys > [bcex] markets","timedOut":false,"duration":6281,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dac8be73-3e52-48d7-bd6f-71be62754772","isHook":false,"skipped":false},{"title":"> [bcex] ticker","fullTitle":" > [bcex] without API keys > [bcex] ticker","timedOut":false,"duration":2864,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3b9144d6-94bf-4e40-984a-b8fe6e035f41","isHook":false,"skipped":false},{"title":"> [bcex] tickers","fullTitle":" > [bcex] without API keys > [bcex] tickers","timedOut":false,"duration":5,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"13360532-3177-494c-9422-a58c1980a590","isHook":false,"skipped":false},{"title":"> [bcex] orderBook","fullTitle":" > [bcex] without API keys > [bcex] orderBook","timedOut":false,"duration":16,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2062819a-4ce2-4c84-aae9-da4c9aed941b","isHook":false,"skipped":false},{"title":"> [bcex] trades","fullTitle":" > [bcex] without API keys > [bcex] trades","timedOut":false,"duration":17,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4e444d93-1827-42e7-aab5-298ee51b8ef9","isHook":false,"skipped":false}],"suites":[],"passes":["8b5d9d95-4d8b-4fe9-bac6-766c564552d1","dac8be73-3e52-48d7-bd6f-71be62754772","3b9144d6-94bf-4e40-984a-b8fe6e035f41","13360532-3177-494c-9422-a58c1980a590","2062819a-4ce2-4c84-aae9-da4c9aed941b","4e444d93-1827-42e7-aab5-298ee51b8ef9"],"failures":[],"pending":[],"skipped":[],"duration":9546,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ebcebb08-d23c-4d62-86eb-f4952ad585cb","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"3e77cf44-de13-4fc0-a4b4-36b563f1da84","title":"> [bequant] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bequant-test.js","file":"/test/generated/bequant-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bequant] connect","fullTitle":" > [bequant] without API keys > [bequant] connect","timedOut":false,"duration":351,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"25f1c552-a200-4f13-9844-8b7ac21f7645","isHook":false,"skipped":false},{"title":"> [bequant] markets","fullTitle":" > [bequant] without API keys > [bequant] markets","timedOut":false,"duration":787,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6cf80131-9d4e-4327-977f-5f3b57f0c2c7","isHook":false,"skipped":false},{"title":"> [bequant] ticker","fullTitle":" > [bequant] without API keys > [bequant] ticker","timedOut":false,"duration":4106,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"55677e0a-0479-4212-bf4f-fc016dbfdc94","isHook":false,"skipped":false},{"title":"> [bequant] tickers","fullTitle":" > [bequant] without API keys > [bequant] tickers","timedOut":false,"duration":1211,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"443d15b8-3ca8-45c2-b817-c3ce1d4e0543","isHook":false,"skipped":false},{"title":"> [bequant] orderBook","fullTitle":" > [bequant] without API keys > [bequant] orderBook","timedOut":false,"duration":1493,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f85432a2-a195-4c50-97ff-ce54b22efbc9","isHook":false,"skipped":false},{"title":"> [bequant] trades","fullTitle":" > [bequant] without API keys > [bequant] trades","timedOut":false,"duration":1593,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0476449f-d377-41c7-b786-cd1ad75f2005","isHook":false,"skipped":false}],"suites":[],"passes":["25f1c552-a200-4f13-9844-8b7ac21f7645","6cf80131-9d4e-4327-977f-5f3b57f0c2c7","55677e0a-0479-4212-bf4f-fc016dbfdc94","443d15b8-3ca8-45c2-b817-c3ce1d4e0543","f85432a2-a195-4c50-97ff-ce54b22efbc9","0476449f-d377-41c7-b786-cd1ad75f2005"],"failures":[],"pending":[],"skipped":[],"duration":9541,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"cc974e44-c389-4d74-8775-a760f797973a","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"d066dcec-27f2-4552-a2f3-bcc7319ec16c","title":"> [bitbank] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitbank-test.js","file":"/test/generated/bitbank-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitbank] connect","fullTitle":" > [bitbank] without API keys > [bitbank] connect","timedOut":false,"duration":90,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"62f889ec-cc17-4604-a5c1-23b886fb5fe4","isHook":false,"skipped":false},{"title":"> [bitbank] markets","fullTitle":" > [bitbank] without API keys > [bitbank] markets","timedOut":false,"duration":20,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8fb9e725-b867-4c69-b68a-30ecb542b0ea","isHook":false,"skipped":false},{"title":"> [bitbank] ticker","fullTitle":" > [bitbank] without API keys > [bitbank] ticker","timedOut":false,"duration":911,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fff8b780-2f69-4b9e-bf3c-2b9caf5574a8","isHook":false,"skipped":false},{"title":"> [bitbank] tickers","fullTitle":" > [bitbank] without API keys > [bitbank] tickers","timedOut":false,"duration":32,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f247950a-a9f7-48de-9d98-88adacdd078d","isHook":false,"skipped":false},{"title":"> [bitbank] orderBook","fullTitle":" > [bitbank] without API keys > [bitbank] orderBook","timedOut":false,"duration":1717,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9fb7c2de-e8e9-482d-a3a9-7bdabaecd8f0","isHook":false,"skipped":false},{"title":"> [bitbank] trades","fullTitle":" > [bitbank] without API keys > [bitbank] trades","timedOut":false,"duration":1996,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"63957c2f-b386-44aa-aa5e-48ce60b1f41d","isHook":false,"skipped":false}],"suites":[],"passes":["62f889ec-cc17-4604-a5c1-23b886fb5fe4","8fb9e725-b867-4c69-b68a-30ecb542b0ea","fff8b780-2f69-4b9e-bf3c-2b9caf5574a8","f247950a-a9f7-48de-9d98-88adacdd078d","9fb7c2de-e8e9-482d-a3a9-7bdabaecd8f0","63957c2f-b386-44aa-aa5e-48ce60b1f41d"],"failures":[],"pending":[],"skipped":[],"duration":4766,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"cfb320d7-d00e-4752-94e0-8ead90c75b01","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"e406d593-70c3-4297-96bc-82c527118dfb","title":"> [bitbay] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitbay-test.js","file":"/test/generated/bitbay-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitbay] connect","fullTitle":" > [bitbay] without API keys > [bitbay] connect","timedOut":false,"duration":48,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c2b8fdf3-a5c9-410f-83d3-f567f6f6c475","isHook":false,"skipped":false},{"title":"> [bitbay] markets","fullTitle":" > [bitbay] without API keys > [bitbay] markets","timedOut":false,"duration":423,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"21ae28af-2562-4c05-bd33-c87abef6e674","isHook":false,"skipped":false},{"title":"> [bitbay] ticker","fullTitle":" > [bitbay] without API keys > [bitbay] ticker","timedOut":false,"duration":1967,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c9d025ff-c8a6-41ed-9098-f266cdeb473a","isHook":false,"skipped":false},{"title":"> [bitbay] tickers","fullTitle":" > [bitbay] without API keys > [bitbay] tickers","timedOut":false,"duration":56,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"26fa7403-5188-4793-a541-6ee75f485086","isHook":false,"skipped":false},{"title":"> [bitbay] orderBook","fullTitle":" > [bitbay] without API keys > [bitbay] orderBook","timedOut":false,"duration":668,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c62dd262-c03a-4e88-b0ab-cad2025b8c64","isHook":false,"skipped":false},{"title":"> [bitbay] trades","fullTitle":" > [bitbay] without API keys > [bitbay] trades","timedOut":false,"duration":1009,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1cad1726-383d-454c-aaee-255cc48dc004","isHook":false,"skipped":false}],"suites":[],"passes":["c2b8fdf3-a5c9-410f-83d3-f567f6f6c475","21ae28af-2562-4c05-bd33-c87abef6e674","c9d025ff-c8a6-41ed-9098-f266cdeb473a","26fa7403-5188-4793-a541-6ee75f485086","c62dd262-c03a-4e88-b0ab-cad2025b8c64","1cad1726-383d-454c-aaee-255cc48dc004"],"failures":[],"pending":[],"skipped":[],"duration":4171,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"c550adfc-888b-4eaa-9c6f-ba084cc8989f","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"44771c4f-2c22-4339-99f0-e8d903e8193d","title":"> [bit2c] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bit2c-test.js","file":"/test/generated/bit2c-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bit2c] connect","fullTitle":" > [bit2c] without API keys > [bit2c] connect","timedOut":false,"duration":104,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d2bd6ef3-6505-4289-98d7-196d78f5fd3e","isHook":false,"skipped":false},{"title":"> [bit2c] markets","fullTitle":" > [bit2c] without API keys > [bit2c] markets","timedOut":false,"duration":18,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fdc7ec0b-76a5-4a03-9a62-830f771c1bfb","isHook":false,"skipped":false},{"title":"> [bit2c] ticker","fullTitle":" > [bit2c] without API keys > [bit2c] ticker","timedOut":false,"duration":818,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a4357cdc-c359-4d85-82a2-e24ccf045b1a","isHook":false,"skipped":false},{"title":"> [bit2c] tickers","fullTitle":" > [bit2c] without API keys > [bit2c] tickers","timedOut":false,"duration":10,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8c84a7c9-c13a-4354-960f-ec49bf90b9e7","isHook":false,"skipped":false},{"title":"> [bit2c] orderBook","fullTitle":" > [bit2c] without API keys > [bit2c] orderBook","timedOut":false,"duration":2736,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"400e88c7-296a-403f-ac01-fd8431970240","isHook":false,"skipped":false},{"title":"> [bit2c] trades","fullTitle":" > [bit2c] without API keys > [bit2c] trades","timedOut":false,"duration":2547,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d63e9ba0-7789-49f1-8918-35e57af39210","isHook":false,"skipped":false}],"suites":[],"passes":["d2bd6ef3-6505-4289-98d7-196d78f5fd3e","fdc7ec0b-76a5-4a03-9a62-830f771c1bfb","a4357cdc-c359-4d85-82a2-e24ccf045b1a","8c84a7c9-c13a-4354-960f-ec49bf90b9e7","400e88c7-296a-403f-ac01-fd8431970240","d63e9ba0-7789-49f1-8918-35e57af39210"],"failures":[],"pending":[],"skipped":[],"duration":6233,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"30f341a7-72a0-4c32-bdd2-ed20674b48f1","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"d9835d79-d2dd-4dc3-b547-d3dda3546cbc","title":"> [bitforex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitforex-test.js","file":"/test/generated/bitforex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitforex] connect","fullTitle":" > [bitforex] without API keys > [bitforex] connect","timedOut":false,"duration":36,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1867975d-3fbd-4d12-a00e-5cecdad0a373","isHook":false,"skipped":false},{"title":"> [bitforex] markets","fullTitle":" > [bitforex] without API keys > [bitforex] markets","timedOut":false,"duration":1699,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"48ca09d0-6edd-418f-944f-b8f0862826b1","isHook":false,"skipped":false},{"title":"> [bitforex] ticker","fullTitle":" > [bitforex] without API keys > [bitforex] ticker","timedOut":false,"duration":1329,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"02e75a90-ddad-4839-892b-473eace335f9","isHook":false,"skipped":false},{"title":"> [bitforex] tickers","fullTitle":" > [bitforex] without API keys > [bitforex] tickers","timedOut":false,"duration":21,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2988e83f-1092-4ef4-abcd-0621d937b60a","isHook":false,"skipped":false},{"title":"> [bitforex] orderBook","fullTitle":" > [bitforex] without API keys > [bitforex] orderBook","timedOut":false,"duration":38,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6caa6909-0625-4bd2-961f-55535f1b4eb4","isHook":false,"skipped":false},{"title":"> [bitforex] trades","fullTitle":" > [bitforex] without API keys > [bitforex] trades","timedOut":false,"duration":31,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1bd19cfc-ff13-444f-9fd9-7b9e44e683e3","isHook":false,"skipped":false}],"suites":[],"passes":["1867975d-3fbd-4d12-a00e-5cecdad0a373","48ca09d0-6edd-418f-944f-b8f0862826b1","02e75a90-ddad-4839-892b-473eace335f9","2988e83f-1092-4ef4-abcd-0621d937b60a","6caa6909-0625-4bd2-961f-55535f1b4eb4","1bd19cfc-ff13-444f-9fd9-7b9e44e683e3"],"failures":[],"pending":[],"skipped":[],"duration":3154,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"a5f6afb4-6e20-4835-b571-2c1e42ae2294","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"71ef9e44-9c3b-4c8f-b583-bbbcad75c254","title":"> [bithumb] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bithumb-test.js","file":"/test/generated/bithumb-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bithumb] connect","fullTitle":" > [bithumb] without API keys > [bithumb] connect","timedOut":false,"duration":130,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2569670a-f40a-42fe-9f12-e484b20898a6","isHook":false,"skipped":false},{"title":"> [bithumb] markets","fullTitle":" > [bithumb] without API keys > [bithumb] markets","timedOut":false,"duration":449,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6118ac1d-ca0a-4a4d-97b0-5000ffabbb28","isHook":false,"skipped":false},{"title":"> [bithumb] ticker","fullTitle":" > [bithumb] without API keys > [bithumb] ticker","timedOut":false,"duration":863,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"31e03969-950d-48b7-a0f6-67cfbfafe084","isHook":false,"skipped":false},{"title":"> [bithumb] tickers","fullTitle":" > [bithumb] without API keys > [bithumb] tickers","timedOut":false,"duration":917,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"97ee1fe2-ac9c-46c1-b0f3-d6c6b49c7a7e","isHook":false,"skipped":false},{"title":"> [bithumb] orderBook","fullTitle":" > [bithumb] without API keys > [bithumb] orderBook","timedOut":false,"duration":263,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0027ad34-a883-4c7c-b3b5-d058e877958c","isHook":false,"skipped":false},{"title":"> [bithumb] trades","fullTitle":" > [bithumb] without API keys > [bithumb] trades","timedOut":false,"duration":482,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"828cb455-c1df-4958-ac04-f66c37cbc1c7","isHook":false,"skipped":false}],"suites":[],"passes":["2569670a-f40a-42fe-9f12-e484b20898a6","6118ac1d-ca0a-4a4d-97b0-5000ffabbb28","31e03969-950d-48b7-a0f6-67cfbfafe084","97ee1fe2-ac9c-46c1-b0f3-d6c6b49c7a7e","0027ad34-a883-4c7c-b3b5-d058e877958c","828cb455-c1df-4958-ac04-f66c37cbc1c7"],"failures":[],"pending":[],"skipped":[],"duration":3104,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"94f22a5a-9d1f-4464-b378-9d1d14a358cd","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"25c31805-e347-4586-a6f3-84d936593ccd","title":"> [bitmax] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitmax-test.js","file":"/test/generated/bitmax-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitmax] connect","fullTitle":" > [bitmax] without API keys > [bitmax] connect","timedOut":false,"duration":278,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6b3fb0c8-b56c-485d-b7a7-af73c0d6c874","isHook":false,"skipped":false},{"title":"> [bitmax] markets","fullTitle":" > [bitmax] without API keys > [bitmax] markets","timedOut":false,"duration":464,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f2034822-146c-4228-8be8-06f36f62b3c6","isHook":false,"skipped":false},{"title":"> [bitmax] ticker","fullTitle":" > [bitmax] without API keys > [bitmax] ticker","timedOut":false,"duration":1224,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ccf39bc1-6b4b-4003-a2c3-7938117732ae","isHook":false,"skipped":false},{"title":"> [bitmax] tickers","fullTitle":" > [bitmax] without API keys > [bitmax] tickers","timedOut":false,"duration":584,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c0c490fb-e185-4277-bb80-2cb537f80d58","isHook":false,"skipped":false},{"title":"> [bitmax] orderBook","fullTitle":" > [bitmax] without API keys > [bitmax] orderBook","timedOut":false,"duration":413,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"16200c27-4409-4a05-9afa-2eee1ca79519","isHook":false,"skipped":false},{"title":"> [bitmax] trades","fullTitle":" > [bitmax] without API keys > [bitmax] trades","timedOut":false,"duration":1051,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"28cdc3a9-e5f6-4484-a4fc-25b98aede8e5","isHook":false,"skipped":false}],"suites":[],"passes":["6b3fb0c8-b56c-485d-b7a7-af73c0d6c874","f2034822-146c-4228-8be8-06f36f62b3c6","ccf39bc1-6b4b-4003-a2c3-7938117732ae","c0c490fb-e185-4277-bb80-2cb537f80d58","16200c27-4409-4a05-9afa-2eee1ca79519","28cdc3a9-e5f6-4484-a4fc-25b98aede8e5"],"failures":[],"pending":[],"skipped":[],"duration":4014,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d29f10a3-ef2c-48be-87ad-89bbdd0ac840","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"16840d57-2276-4eb0-8c48-b6f08024d138","title":"> [bitfinex2] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitfinex2-test.js","file":"/test/generated/bitfinex2-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitfinex2] connect","fullTitle":" > [bitfinex2] without API keys > [bitfinex2] connect","timedOut":false,"duration":115,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5e135978-c896-4550-acd7-63276463a8bb","isHook":false,"skipped":false},{"title":"> [bitfinex2] markets","fullTitle":" > [bitfinex2] without API keys > [bitfinex2] markets","timedOut":false,"duration":365,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"83afe666-efe2-4aae-82e6-01458a1646cb","isHook":false,"skipped":false},{"title":"> [bitfinex2] ticker","fullTitle":" > [bitfinex2] without API keys > [bitfinex2] ticker","timedOut":false,"duration":2933,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"be94b844-1290-4920-a6eb-6e9fd6ba073d","isHook":false,"skipped":false},{"title":"> [bitfinex2] tickers","fullTitle":" > [bitfinex2] without API keys > [bitfinex2] tickers","timedOut":false,"duration":1614,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"66169a93-ef1a-437f-be87-33c7abfc29ff","isHook":false,"skipped":false},{"title":"> [bitfinex2] orderBook","fullTitle":" > [bitfinex2] without API keys > [bitfinex2] orderBook","timedOut":false,"duration":1172,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c2457fc0-6804-433d-8a82-9f649f5ceadc","isHook":false,"skipped":false},{"title":"> [bitfinex2] trades","fullTitle":" > [bitfinex2] without API keys > [bitfinex2] trades","timedOut":false,"duration":1681,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"01a0b61e-2dad-4499-b823-d55a2b044b30","isHook":false,"skipped":false}],"suites":[],"passes":["5e135978-c896-4550-acd7-63276463a8bb","83afe666-efe2-4aae-82e6-01458a1646cb","be94b844-1290-4920-a6eb-6e9fd6ba073d","66169a93-ef1a-437f-be87-33c7abfc29ff","c2457fc0-6804-433d-8a82-9f649f5ceadc","01a0b61e-2dad-4499-b823-d55a2b044b30"],"failures":[],"pending":[],"skipped":[],"duration":7880,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"b0f1fd8d-ad3f-4309-a15f-5979c5bdfd0d","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"bcb49c4d-8d94-46cd-84ba-30e22e28724f","title":"> [bitkk] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitkk-test.js","file":"/test/generated/bitkk-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitkk] connect","fullTitle":" > [bitkk] without API keys > [bitkk] connect","timedOut":false,"duration":187,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c500ea9b-6d9d-4709-aa6d-0de205b92910","isHook":false,"skipped":false},{"title":"> [bitkk] markets","fullTitle":" > [bitkk] without API keys > [bitkk] markets","timedOut":false,"duration":662,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c916e7e6-6fd8-49e9-83df-2c9f921d2f9d","isHook":false,"skipped":false},{"title":"> [bitkk] ticker","fullTitle":" > [bitkk] without API keys > [bitkk] ticker","timedOut":false,"duration":1589,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6b0119c7-c4a9-4abc-b89a-b95379a5d551","isHook":false,"skipped":false},{"title":"> [bitkk] tickers","fullTitle":" > [bitkk] without API keys > [bitkk] tickers","timedOut":false,"duration":1044,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"999c0964-4baf-4be8-ac6d-fd769c2b835b","isHook":false,"skipped":false},{"title":"> [bitkk] orderBook","fullTitle":" > [bitkk] without API keys > [bitkk] orderBook","timedOut":false,"duration":962,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d2728c77-67f1-4763-a5b0-e56924592f2a","isHook":false,"skipped":false},{"title":"> [bitkk] trades","fullTitle":" > [bitkk] without API keys > [bitkk] trades","timedOut":false,"duration":990,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2d1096b7-ff8d-481a-a641-555086a8d882","isHook":false,"skipped":false}],"suites":[],"passes":["c500ea9b-6d9d-4709-aa6d-0de205b92910","c916e7e6-6fd8-49e9-83df-2c9f921d2f9d","6b0119c7-c4a9-4abc-b89a-b95379a5d551","999c0964-4baf-4be8-ac6d-fd769c2b835b","d2728c77-67f1-4763-a5b0-e56924592f2a","2d1096b7-ff8d-481a-a641-555086a8d882"],"failures":[],"pending":[],"skipped":[],"duration":5434,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"36a90465-4b63-4847-af93-6c78b8d8750f","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"00093bb5-6076-41ae-9ef9-c948cc82424a","title":"> [bitflyer] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitflyer-test.js","file":"/test/generated/bitflyer-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitflyer] connect","fullTitle":" > [bitflyer] without API keys > [bitflyer] connect","timedOut":false,"duration":108,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"846fde7e-d3cb-400d-bd39-29d9de4af523","isHook":false,"skipped":false},{"title":"> [bitflyer] markets","fullTitle":" > [bitflyer] without API keys > [bitflyer] markets","timedOut":false,"duration":2429,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"618c824e-0445-439d-a7cf-8d6b91e02314","isHook":false,"skipped":false},{"title":"> [bitflyer] ticker","fullTitle":" > [bitflyer] without API keys > [bitflyer] ticker","timedOut":false,"duration":4125,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"df4b23de-0139-4d32-b140-dda4914efed9","isHook":false,"skipped":false},{"title":"> [bitflyer] tickers","fullTitle":" > [bitflyer] without API keys > [bitflyer] tickers","timedOut":false,"duration":14,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"60e44039-b631-418e-9b49-c7bbce39ebab","isHook":false,"skipped":false},{"title":"> [bitflyer] orderBook","fullTitle":" > [bitflyer] without API keys > [bitflyer] orderBook","timedOut":false,"duration":885,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d5c58ba3-e5ab-41f2-bb8f-57790a74f06e","isHook":false,"skipped":false},{"title":"> [bitflyer] trades","fullTitle":" > [bitflyer] without API keys > [bitflyer] trades","timedOut":false,"duration":1153,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"76c4c594-9932-4f88-bd67-d2012cee5bb1","isHook":false,"skipped":false}],"suites":[],"passes":["846fde7e-d3cb-400d-bd39-29d9de4af523","618c824e-0445-439d-a7cf-8d6b91e02314","df4b23de-0139-4d32-b140-dda4914efed9","60e44039-b631-418e-9b49-c7bbce39ebab","d5c58ba3-e5ab-41f2-bb8f-57790a74f06e","76c4c594-9932-4f88-bd67-d2012cee5bb1"],"failures":[],"pending":[],"skipped":[],"duration":8714,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"56c9b117-882c-441a-8acf-7a1c7defe8a8","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"0bc310c3-f2fd-4ec9-b08b-6a40a63b71fe","title":"> [bitfinex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitfinex-test.js","file":"/test/generated/bitfinex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitfinex] connect","fullTitle":" > [bitfinex] without API keys > [bitfinex] connect","timedOut":false,"duration":76,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ed893a44-61a0-4f9c-81bd-abe6d7fef551","isHook":false,"skipped":false},{"title":"> [bitfinex] markets","fullTitle":" > [bitfinex] without API keys > [bitfinex] markets","timedOut":false,"duration":1841,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4ec940da-b5d3-4275-a863-a71a31040bfd","isHook":false,"skipped":false},{"title":"> [bitfinex] ticker","fullTitle":" > [bitfinex] without API keys > [bitfinex] ticker","timedOut":false,"duration":4487,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ba4d8a87-c4c9-4113-86c0-5fba4658ac9f","isHook":false,"skipped":false},{"title":"> [bitfinex] tickers","fullTitle":" > [bitfinex] without API keys > [bitfinex] tickers","timedOut":false,"duration":1531,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c628d3d9-8130-452b-b99f-b161f410cccc","isHook":false,"skipped":false},{"title":"> [bitfinex] orderBook","fullTitle":" > [bitfinex] without API keys > [bitfinex] orderBook","timedOut":false,"duration":1445,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9f033d54-0ad8-4710-927d-39f09de45e42","isHook":false,"skipped":false},{"title":"> [bitfinex] trades","fullTitle":" > [bitfinex] without API keys > [bitfinex] trades","timedOut":false,"duration":1874,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"99f4cff3-a06d-4fb6-afdc-bb1ddb831cad","isHook":false,"skipped":false}],"suites":[],"passes":["ed893a44-61a0-4f9c-81bd-abe6d7fef551","4ec940da-b5d3-4275-a863-a71a31040bfd","ba4d8a87-c4c9-4113-86c0-5fba4658ac9f","c628d3d9-8130-452b-b99f-b161f410cccc","9f033d54-0ad8-4710-927d-39f09de45e42","99f4cff3-a06d-4fb6-afdc-bb1ddb831cad"],"failures":[],"pending":[],"skipped":[],"duration":11254,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"0654c69f-84e5-4bc1-a68c-aebf3b0b4ae7","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"02d942ae-f66a-4edf-b395-48b12d740854","title":"> [bitmart] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitmart-test.js","file":"/test/generated/bitmart-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitmart] connect","fullTitle":" > [bitmart] without API keys > [bitmart] connect","timedOut":false,"duration":383,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8a0e85b9-c77f-4a7c-a311-ff85dde405c7","isHook":false,"skipped":false},{"title":"> [bitmart] markets","fullTitle":" > [bitmart] without API keys > [bitmart] markets","timedOut":false,"duration":952,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7a769312-d390-4c4e-a607-7495b499a729","isHook":false,"skipped":false},{"title":"> [bitmart] ticker","fullTitle":" > [bitmart] without API keys > [bitmart] ticker","timedOut":false,"duration":2285,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"42b8ef5f-3e40-4e40-933f-82a900ec4176","isHook":false,"skipped":false},{"title":"> [bitmart] tickers","fullTitle":" > [bitmart] without API keys > [bitmart] tickers","timedOut":false,"duration":1090,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"74d057ed-7c1a-4162-b570-4a821c1a2e36","isHook":false,"skipped":false},{"title":"> [bitmart] orderBook","fullTitle":" > [bitmart] without API keys > [bitmart] orderBook","timedOut":false,"duration":845,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bdf1c306-0733-427a-a2d8-f0fdbe5bbc79","isHook":false,"skipped":false},{"title":"> [bitmart] trades","fullTitle":" > [bitmart] without API keys > [bitmart] trades","timedOut":false,"duration":1085,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1b484183-1b8e-4035-bd7b-41eaa14da399","isHook":false,"skipped":false}],"suites":[],"passes":["8a0e85b9-c77f-4a7c-a311-ff85dde405c7","7a769312-d390-4c4e-a607-7495b499a729","42b8ef5f-3e40-4e40-933f-82a900ec4176","74d057ed-7c1a-4162-b570-4a821c1a2e36","bdf1c306-0733-427a-a2d8-f0fdbe5bbc79","1b484183-1b8e-4035-bd7b-41eaa14da399"],"failures":[],"pending":[],"skipped":[],"duration":6640,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"753c980a-84a5-47aa-86c9-aed23223face","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"3cf85896-e56f-442b-92e7-cd8b463c8d2e","title":"> [bitmex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitmex-test.js","file":"/test/generated/bitmex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitmex] connect","fullTitle":" > [bitmex] without API keys > [bitmex] connect","timedOut":false,"duration":81,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"78a7a126-00c1-41e1-bd3e-61357fbb00e6","isHook":false,"skipped":false},{"title":"> [bitmex] markets","fullTitle":" > [bitmex] without API keys > [bitmex] markets","timedOut":false,"duration":929,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fc8a1397-f71d-46bc-8f5b-90f9a3e25ceb","isHook":false,"skipped":false},{"title":"> [bitmex] ticker","fullTitle":" > [bitmex] without API keys > [bitmex] ticker","timedOut":false,"duration":1293,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b8edf36f-513f-4d9d-a537-44a1ab268a4f","isHook":false,"skipped":false},{"title":"> [bitmex] tickers","fullTitle":" > [bitmex] without API keys > [bitmex] tickers","timedOut":false,"duration":33,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4c6892ce-b07f-419c-9dbd-a43823b5c5f4","isHook":false,"skipped":false},{"title":"> [bitmex] orderBook","fullTitle":" > [bitmex] without API keys > [bitmex] orderBook","timedOut":false,"duration":1802,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fb64f6f2-d92e-4db9-b044-d6fd5fd68da3","isHook":false,"skipped":false},{"title":"> [bitmex] trades","fullTitle":" > [bitmex] without API keys > [bitmex] trades","timedOut":false,"duration":2442,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ccdbb8dd-c790-4b38-ac55-e6e782451947","isHook":false,"skipped":false}],"suites":[],"passes":["78a7a126-00c1-41e1-bd3e-61357fbb00e6","fc8a1397-f71d-46bc-8f5b-90f9a3e25ceb","b8edf36f-513f-4d9d-a537-44a1ab268a4f","4c6892ce-b07f-419c-9dbd-a43823b5c5f4","fb64f6f2-d92e-4db9-b044-d6fd5fd68da3","ccdbb8dd-c790-4b38-ac55-e6e782451947"],"failures":[],"pending":[],"skipped":[],"duration":6580,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"2d52c76b-cf7f-4e72-9e83-7a3f28707821","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"23b58d18-ee29-45ba-a677-ea9c940c6d2b","title":"> [bitstamp] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitstamp-test.js","file":"/test/generated/bitstamp-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitstamp] connect","fullTitle":" > [bitstamp] without API keys > [bitstamp] connect","timedOut":false,"duration":126,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4e8a7f3a-f488-4404-97f0-42dd8d365ebe","isHook":false,"skipped":false},{"title":"> [bitstamp] markets","fullTitle":" > [bitstamp] without API keys > [bitstamp] markets","timedOut":false,"duration":140,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"df4ef5d9-5674-4dbe-8cbd-c522ff8f2ee7","isHook":false,"skipped":false},{"title":"> [bitstamp] ticker","fullTitle":" > [bitstamp] without API keys > [bitstamp] ticker","timedOut":false,"duration":1900,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e650f885-6ee9-4c80-a017-91a19d936f3a","isHook":false,"skipped":false},{"title":"> [bitstamp] tickers","fullTitle":" > [bitstamp] without API keys > [bitstamp] tickers","timedOut":false,"duration":10,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"648d1c19-fb5b-48ce-a370-4af9a0bcbb59","isHook":false,"skipped":false},{"title":"> [bitstamp] orderBook","fullTitle":" > [bitstamp] without API keys > [bitstamp] orderBook","timedOut":false,"duration":1842,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2a11788e-d48b-492b-aefe-747bf437c716","isHook":false,"skipped":false},{"title":"> [bitstamp] trades","fullTitle":" > [bitstamp] without API keys > [bitstamp] trades","timedOut":false,"duration":660,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c8c1a236-969c-46a8-b4f1-a30ec9e22a34","isHook":false,"skipped":false}],"suites":[],"passes":["4e8a7f3a-f488-4404-97f0-42dd8d365ebe","df4ef5d9-5674-4dbe-8cbd-c522ff8f2ee7","e650f885-6ee9-4c80-a017-91a19d936f3a","648d1c19-fb5b-48ce-a370-4af9a0bcbb59","2a11788e-d48b-492b-aefe-747bf437c716","c8c1a236-969c-46a8-b4f1-a30ec9e22a34"],"failures":[],"pending":[],"skipped":[],"duration":4678,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d3163eeb-7f43-49be-a18b-d09cc376ef66","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"55d66e46-f193-4d54-87dd-6b332e551822","title":"> [bitstamp1] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitstamp1-test.js","file":"/test/generated/bitstamp1-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitstamp1] connect","fullTitle":" > [bitstamp1] without API keys > [bitstamp1] connect","timedOut":false,"duration":96,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"def031e0-6d5b-4e00-8c75-10f7a0482e35","isHook":false,"skipped":false},{"title":"> [bitstamp1] markets","fullTitle":" > [bitstamp1] without API keys > [bitstamp1] markets","timedOut":false,"duration":46,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1a2438ce-03fe-4065-9fde-a43e8f163a1b","isHook":false,"skipped":false},{"title":"> [bitstamp1] ticker","fullTitle":" > [bitstamp1] without API keys > [bitstamp1] ticker","timedOut":false,"duration":1081,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"481bffdd-ee1d-4869-bfcd-fc7b9b392db8","isHook":false,"skipped":false},{"title":"> [bitstamp1] tickers","fullTitle":" > [bitstamp1] without API keys > [bitstamp1] tickers","timedOut":false,"duration":44,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0766254e-cf26-4887-b90b-9cf785b4cb0f","isHook":false,"skipped":false},{"title":"> [bitstamp1] orderBook","fullTitle":" > [bitstamp1] without API keys > [bitstamp1] orderBook","timedOut":false,"duration":659,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b8b9d312-2d08-4189-9e80-9c4dd929a91c","isHook":false,"skipped":false},{"title":"> [bitstamp1] trades","fullTitle":" > [bitstamp1] without API keys > [bitstamp1] trades","timedOut":false,"duration":916,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9aa040f5-3724-4e2b-ba86-411a12afa2d5","isHook":false,"skipped":false}],"suites":[],"passes":["def031e0-6d5b-4e00-8c75-10f7a0482e35","1a2438ce-03fe-4065-9fde-a43e8f163a1b","481bffdd-ee1d-4869-bfcd-fc7b9b392db8","0766254e-cf26-4887-b90b-9cf785b4cb0f","b8b9d312-2d08-4189-9e80-9c4dd929a91c","9aa040f5-3724-4e2b-ba86-411a12afa2d5"],"failures":[],"pending":[],"skipped":[],"duration":2842,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"8386a1d6-f2d8-4a8a-abd4-cb222bcca1c8","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"efe69f9e-2165-4898-8d85-0fda8ac5c881","title":"> [bitso] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitso-test.js","file":"/test/generated/bitso-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitso] connect","fullTitle":" > [bitso] without API keys > [bitso] connect","timedOut":false,"duration":76,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5a811010-d242-4ef1-90af-28961553de6b","isHook":false,"skipped":false},{"title":"> [bitso] markets","fullTitle":" > [bitso] without API keys > [bitso] markets","timedOut":false,"duration":486,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1466b6c7-5f59-4654-ac71-b8c2acbafe40","isHook":false,"skipped":false},{"title":"> [bitso] ticker","fullTitle":" > [bitso] without API keys > [bitso] ticker","timedOut":false,"duration":3709,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dea0aa61-dc2b-44cf-8910-2128447fc8b6","isHook":false,"skipped":false},{"title":"> [bitso] tickers","fullTitle":" > [bitso] without API keys > [bitso] tickers","timedOut":false,"duration":20,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a5f31cd8-0a1b-4c87-831c-f81a5b0be78e","isHook":false,"skipped":false},{"title":"> [bitso] orderBook","fullTitle":" > [bitso] without API keys > [bitso] orderBook","timedOut":false,"duration":1984,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7c1c0433-8d98-40a7-ba94-09a2db1d7bec","isHook":false,"skipped":false},{"title":"> [bitso] trades","fullTitle":" > [bitso] without API keys > [bitso] trades","timedOut":false,"duration":1945,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"67e90e59-f99c-41a5-8c52-5bb752815fd8","isHook":false,"skipped":false}],"suites":[],"passes":["5a811010-d242-4ef1-90af-28961553de6b","1466b6c7-5f59-4654-ac71-b8c2acbafe40","dea0aa61-dc2b-44cf-8910-2128447fc8b6","a5f31cd8-0a1b-4c87-831c-f81a5b0be78e","7c1c0433-8d98-40a7-ba94-09a2db1d7bec","67e90e59-f99c-41a5-8c52-5bb752815fd8"],"failures":[],"pending":[],"skipped":[],"duration":8220,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"013053f2-da05-4c99-b081-4f79e1e587ed","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"33c85338-b37c-4e82-99b7-e36c2fd13a81","title":"> [bl3p] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bl3p-test.js","file":"/test/generated/bl3p-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bl3p] connect","fullTitle":" > [bl3p] without API keys > [bl3p] connect","timedOut":false,"duration":224,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2a776c15-128e-4606-9154-d6b09098772f","isHook":false,"skipped":false},{"title":"> [bl3p] markets","fullTitle":" > [bl3p] without API keys > [bl3p] markets","timedOut":false,"duration":120,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"43428d3f-63a5-48bc-9035-586623af031e","isHook":false,"skipped":false},{"title":"> [bl3p] ticker","fullTitle":" > [bl3p] without API keys > [bl3p] ticker","timedOut":false,"duration":784,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"97f91ba2-7857-4897-be8d-271bbc65b9ce","isHook":false,"skipped":false},{"title":"> [bl3p] tickers","fullTitle":" > [bl3p] without API keys > [bl3p] tickers","timedOut":false,"duration":38,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3087c8a4-9ada-42af-b30d-b37d79f50027","isHook":false,"skipped":false},{"title":"> [bl3p] orderBook","fullTitle":" > [bl3p] without API keys > [bl3p] orderBook","timedOut":false,"duration":719,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8500a79f-8d02-409e-aab4-01572eab1b9c","isHook":false,"skipped":false},{"title":"> [bl3p] trades","fullTitle":" > [bl3p] without API keys > [bl3p] trades","timedOut":false,"duration":733,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9eec4d65-8875-4d93-974c-b8473bc2a6bd","isHook":false,"skipped":false}],"suites":[],"passes":["2a776c15-128e-4606-9154-d6b09098772f","43428d3f-63a5-48bc-9035-586623af031e","97f91ba2-7857-4897-be8d-271bbc65b9ce","3087c8a4-9ada-42af-b30d-b37d79f50027","8500a79f-8d02-409e-aab4-01572eab1b9c","9eec4d65-8875-4d93-974c-b8473bc2a6bd"],"failures":[],"pending":[],"skipped":[],"duration":2618,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"009c96b9-4fb4-4d20-8c3a-3ac2fc35b7f2","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"e3edfda5-02c3-4f69-ae07-db25b2c5096a","title":"> [_1btcxe] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/_1btcxe-test.js","file":"/test/generated/_1btcxe-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [_1btcxe] connect","fullTitle":" > [_1btcxe] without API keys > [_1btcxe] connect","timedOut":false,"duration":456,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6a224e5e-570b-426d-8bd2-dc94980f4e60","isHook":false,"skipped":false},{"title":"> [_1btcxe] markets","fullTitle":" > [_1btcxe] without API keys > [_1btcxe] markets","timedOut":false,"duration":115,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"80c5920b-d0d1-4ae1-9259-b86f82652829","isHook":false,"skipped":false},{"title":"> [_1btcxe] ticker","fullTitle":" > [_1btcxe] without API keys > [_1btcxe] ticker","timedOut":false,"duration":5988,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"998bab5a-0789-4250-ae2c-e48c74bd2bcc","isHook":false,"skipped":false},{"title":"> [_1btcxe] tickers","fullTitle":" > [_1btcxe] without API keys > [_1btcxe] tickers","timedOut":false,"duration":27,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7b5e2af2-613f-40cd-8ea1-5d7e5795e4e3","isHook":false,"skipped":false},{"title":"> [_1btcxe] orderBook","fullTitle":" > [_1btcxe] without API keys > [_1btcxe] orderBook","timedOut":false,"duration":7958,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"43709067-9b13-4263-af4e-e69fb1b93351","isHook":false,"skipped":false},{"title":"> [_1btcxe] trades","fullTitle":" > [_1btcxe] without API keys > [_1btcxe] trades","timedOut":false,"duration":8166,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"43fc067c-dddf-44b8-85bf-22953a91b276","isHook":false,"skipped":false}],"suites":[],"passes":["6a224e5e-570b-426d-8bd2-dc94980f4e60","80c5920b-d0d1-4ae1-9259-b86f82652829","998bab5a-0789-4250-ae2c-e48c74bd2bcc","7b5e2af2-613f-40cd-8ea1-5d7e5795e4e3","43709067-9b13-4263-af4e-e69fb1b93351","43fc067c-dddf-44b8-85bf-22953a91b276"],"failures":[],"pending":[],"skipped":[],"duration":22710,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"94585395-268c-4c59-84cb-ae6d9cf62c60","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"8cdbe0ee-bc7d-4882-a006-e6e290e9ae43","title":"> [btcbox] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/btcbox-test.js","file":"/test/generated/btcbox-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [btcbox] connect","fullTitle":" > [btcbox] without API keys > [btcbox] connect","timedOut":false,"duration":107,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3c6f4778-4bcb-4004-bb9a-5b1e9ad1cb14","isHook":false,"skipped":false},{"title":"> [btcbox] markets","fullTitle":" > [btcbox] without API keys > [btcbox] markets","timedOut":false,"duration":126,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"785c52e1-d88f-4836-b5de-c0d430687d6c","isHook":false,"skipped":false},{"title":"> [btcbox] ticker","fullTitle":" > [btcbox] without API keys > [btcbox] ticker","timedOut":false,"duration":1166,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"736e73df-5087-43ce-83af-dcf9d7a900cf","isHook":false,"skipped":false},{"title":"> [btcbox] tickers","fullTitle":" > [btcbox] without API keys > [btcbox] tickers","timedOut":false,"duration":13,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2aead3e6-7f2c-448d-931e-ab9617b78d0d","isHook":false,"skipped":false},{"title":"> [btcbox] orderBook","fullTitle":" > [btcbox] without API keys > [btcbox] orderBook","timedOut":false,"duration":816,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"11a63bbc-1683-47d1-9e0b-0378826e03cc","isHook":false,"skipped":false},{"title":"> [btcbox] trades","fullTitle":" > [btcbox] without API keys > [btcbox] trades","timedOut":false,"duration":461,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"34502014-871b-4994-8e26-1bfa74c3fddb","isHook":false,"skipped":false}],"suites":[],"passes":["3c6f4778-4bcb-4004-bb9a-5b1e9ad1cb14","785c52e1-d88f-4836-b5de-c0d430687d6c","736e73df-5087-43ce-83af-dcf9d7a900cf","2aead3e6-7f2c-448d-931e-ab9617b78d0d","11a63bbc-1683-47d1-9e0b-0378826e03cc","34502014-871b-4994-8e26-1bfa74c3fddb"],"failures":[],"pending":[],"skipped":[],"duration":2689,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"7ea13d65-147d-4cea-aa12-aa2353ee5cfc","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"72b60d68-c27e-44f4-9706-81ab514d2faa","title":"> [bitvavo] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitvavo-test.js","file":"/test/generated/bitvavo-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitvavo] connect","fullTitle":" > [bitvavo] without API keys > [bitvavo] connect","timedOut":false,"duration":313,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f3649831-c5e9-47a5-a655-4ecb1f04f5e7","isHook":false,"skipped":false},{"title":"> [bitvavo] markets","fullTitle":" > [bitvavo] without API keys > [bitvavo] markets","timedOut":false,"duration":2049,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"91c2d1bb-4483-42f3-91e0-f554bd1b9473","isHook":false,"skipped":false},{"title":"> [bitvavo] ticker","fullTitle":" > [bitvavo] without API keys > [bitvavo] ticker","timedOut":false,"duration":1732,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"86a3b911-1d8a-4d85-830e-964bc4c2c584","isHook":false,"skipped":false},{"title":"> [bitvavo] tickers","fullTitle":" > [bitvavo] without API keys > [bitvavo] tickers","timedOut":false,"duration":906,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ab06d929-cd3f-4683-861d-9052ecadeee6","isHook":false,"skipped":false},{"title":"> [bitvavo] orderBook","fullTitle":" > [bitvavo] without API keys > [bitvavo] orderBook","timedOut":false,"duration":520,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1680cea0-b442-4501-935d-38f93245f765","isHook":false,"skipped":false},{"title":"> [bitvavo] trades","fullTitle":" > [bitvavo] without API keys > [bitvavo] trades","timedOut":false,"duration":961,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1b2c3c46-9122-427e-8f79-867b4ed10c7c","isHook":false,"skipped":false}],"suites":[],"passes":["f3649831-c5e9-47a5-a655-4ecb1f04f5e7","91c2d1bb-4483-42f3-91e0-f554bd1b9473","86a3b911-1d8a-4d85-830e-964bc4c2c584","ab06d929-cd3f-4683-861d-9052ecadeee6","1680cea0-b442-4501-935d-38f93245f765","1b2c3c46-9122-427e-8f79-867b4ed10c7c"],"failures":[],"pending":[],"skipped":[],"duration":6481,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ff44ae0a-0651-4de5-8a84-b8395b3e0855","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"269aa82c-80cc-4b11-b5f4-1af2f7c92933","title":"> [bleutrade] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bleutrade-test.js","file":"/test/generated/bleutrade-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bleutrade] connect","fullTitle":" > [bleutrade] without API keys > [bleutrade] connect","timedOut":false,"duration":513,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"812cb3f4-ed62-4447-a03e-be0c75e02194","isHook":false,"skipped":false},{"title":"> [bleutrade] markets","fullTitle":" > [bleutrade] without API keys > [bleutrade] markets","timedOut":false,"duration":1232,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d0fa3716-8b08-42ca-a40d-97ac5a375dd5","isHook":false,"skipped":false},{"title":"> [bleutrade] ticker","fullTitle":" > [bleutrade] without API keys > [bleutrade] ticker","timedOut":false,"duration":1374,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d1368851-ba1b-4d77-8438-46def12484b8","isHook":false,"skipped":false},{"title":"> [bleutrade] tickers","fullTitle":" > [bleutrade] without API keys > [bleutrade] tickers","timedOut":false,"duration":966,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"285899cb-140e-4d67-aaf2-bf2916d347a1","isHook":false,"skipped":false},{"title":"> [bleutrade] orderBook","fullTitle":" > [bleutrade] without API keys > [bleutrade] orderBook","timedOut":false,"duration":942,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f17a543f-a93e-4b0c-90f3-c1321a2be8f1","isHook":false,"skipped":false},{"title":"> [bleutrade] trades","fullTitle":" > [bleutrade] without API keys > [bleutrade] trades","timedOut":false,"duration":9,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4e3cf3e3-c975-417d-aec8-ff2e82853685","isHook":false,"skipped":false}],"suites":[],"passes":["812cb3f4-ed62-4447-a03e-be0c75e02194","d0fa3716-8b08-42ca-a40d-97ac5a375dd5","d1368851-ba1b-4d77-8438-46def12484b8","285899cb-140e-4d67-aaf2-bf2916d347a1","f17a543f-a93e-4b0c-90f3-c1321a2be8f1","4e3cf3e3-c975-417d-aec8-ff2e82853685"],"failures":[],"pending":[],"skipped":[],"duration":5036,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"19535aad-2797-4244-a7f5-fa1b7ebfb14d","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"2e4c69da-00f7-4d6f-9677-825385d758c3","title":"> [bittrex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bittrex-test.js","file":"/test/generated/bittrex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bittrex] connect","fullTitle":" > [bittrex] without API keys > [bittrex] connect","timedOut":false,"duration":280,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3f440d54-d3cf-455d-8dd2-e91526075715","isHook":false,"skipped":false},{"title":"> [bittrex] markets","fullTitle":" > [bittrex] without API keys > [bittrex] markets","timedOut":false,"duration":498,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0c2e04a9-9065-41b9-ae75-799c0a687a38","isHook":false,"skipped":false},{"title":"> [bittrex] ticker","fullTitle":" > [bittrex] without API keys > [bittrex] ticker","timedOut":false,"duration":4390,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5e86bee0-130b-4fc2-999c-afb09d57eac1","isHook":false,"skipped":false},{"title":"> [bittrex] tickers","fullTitle":" > [bittrex] without API keys > [bittrex] tickers","timedOut":false,"duration":1460,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"abc918de-be4b-46e5-84d2-1fcac3d03fad","isHook":false,"skipped":false},{"title":"> [bittrex] orderBook","fullTitle":" > [bittrex] without API keys > [bittrex] orderBook","timedOut":false,"duration":1482,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"64531c5c-69bf-4698-b397-7ad38d320c90","isHook":false,"skipped":false},{"title":"> [bittrex] trades","fullTitle":" > [bittrex] without API keys > [bittrex] trades","timedOut":false,"duration":1481,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f04b9b50-6b27-40ad-8d7c-98b491b72c30","isHook":false,"skipped":false}],"suites":[],"passes":["3f440d54-d3cf-455d-8dd2-e91526075715","0c2e04a9-9065-41b9-ae75-799c0a687a38","5e86bee0-130b-4fc2-999c-afb09d57eac1","abc918de-be4b-46e5-84d2-1fcac3d03fad","64531c5c-69bf-4698-b397-7ad38d320c90","f04b9b50-6b27-40ad-8d7c-98b491b72c30"],"failures":[],"pending":[],"skipped":[],"duration":9591,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"f7673e02-e9a2-4be0-b992-a3e1f1ecef38","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"4a63b263-1612-4cdf-8cc1-3bbc365e2f5a","title":"> [btcalpha] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/btcalpha-test.js","file":"/test/generated/btcalpha-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [btcalpha] connect","fullTitle":" > [btcalpha] without API keys > [btcalpha] connect","timedOut":false,"duration":105,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"89583477-a4a5-4d27-89cd-7519650c0b4b","isHook":false,"skipped":false},{"title":"> [btcalpha] markets","fullTitle":" > [btcalpha] without API keys > [btcalpha] markets","timedOut":false,"duration":463,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"338ce9e7-3be7-4c26-ba42-2954470c2e93","isHook":false,"skipped":false},{"title":"> [btcalpha] ticker","fullTitle":" > [btcalpha] without API keys > [btcalpha] ticker","timedOut":false,"duration":93,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a2d8b933-4e85-4bc8-8732-2ecaf613dd03","isHook":false,"skipped":false},{"title":"> [btcalpha] tickers","fullTitle":" > [btcalpha] without API keys > [btcalpha] tickers","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"73d214da-0bd6-409f-b194-e4539540f662","isHook":false,"skipped":false},{"title":"> [btcalpha] orderBook","fullTitle":" > [btcalpha] without API keys > [btcalpha] orderBook","timedOut":false,"duration":3613,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"73ef665c-b49f-48aa-9aff-0affb96b09ea","isHook":false,"skipped":false},{"title":"> [btcalpha] trades","fullTitle":" > [btcalpha] without API keys > [btcalpha] trades","timedOut":false,"duration":1892,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fef15e0b-1be1-4504-997a-04466478ba2d","isHook":false,"skipped":false}],"suites":[],"passes":["89583477-a4a5-4d27-89cd-7519650c0b4b","338ce9e7-3be7-4c26-ba42-2954470c2e93","a2d8b933-4e85-4bc8-8732-2ecaf613dd03","73d214da-0bd6-409f-b194-e4539540f662","73ef665c-b49f-48aa-9aff-0affb96b09ea","fef15e0b-1be1-4504-997a-04466478ba2d"],"failures":[],"pending":[],"skipped":[],"duration":6200,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"c67755f2-c2b2-4c1e-829c-ab64301e5429","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"f1971532-416f-4a10-a95c-afca4a341fe9","title":"> [btcmarkets] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/btcmarkets-test.js","file":"/test/generated/btcmarkets-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [btcmarkets] connect","fullTitle":" > [btcmarkets] without API keys > [btcmarkets] connect","timedOut":false,"duration":192,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"07f4668f-b78c-4c5f-b686-72406e17cb5a","isHook":false,"skipped":false},{"title":"> [btcmarkets] markets","fullTitle":" > [btcmarkets] without API keys > [btcmarkets] markets","timedOut":false,"duration":1127,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a3e80d0d-f8e7-4f98-af40-d9a2d493eb54","isHook":false,"skipped":false},{"title":"> [btcmarkets] ticker","fullTitle":" > [btcmarkets] without API keys > [btcmarkets] ticker","timedOut":false,"duration":1285,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"88027e34-c237-4b72-a5ba-485c5fa06e6a","isHook":false,"skipped":false},{"title":"> [btcmarkets] tickers","fullTitle":" > [btcmarkets] without API keys > [btcmarkets] tickers","timedOut":false,"duration":23,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"816068b8-9fcf-4752-84da-61eb54043213","isHook":false,"skipped":false},{"title":"> [btcmarkets] orderBook","fullTitle":" > [btcmarkets] without API keys > [btcmarkets] orderBook","timedOut":false,"duration":932,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"01201aa3-af7b-4829-a95e-9a255d194be0","isHook":false,"skipped":false},{"title":"> [btcmarkets] trades","fullTitle":" > [btcmarkets] without API keys > [btcmarkets] trades","timedOut":false,"duration":1362,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a04b70bf-eac8-4fc0-8342-6226882b0111","isHook":false,"skipped":false}],"suites":[],"passes":["07f4668f-b78c-4c5f-b686-72406e17cb5a","a3e80d0d-f8e7-4f98-af40-d9a2d493eb54","88027e34-c237-4b72-a5ba-485c5fa06e6a","816068b8-9fcf-4752-84da-61eb54043213","01201aa3-af7b-4829-a95e-9a255d194be0","a04b70bf-eac8-4fc0-8342-6226882b0111"],"failures":[],"pending":[],"skipped":[],"duration":4921,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"f926d6e6-9728-47e1-b1ac-03ffa7865353","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"810e41bb-6fbe-456d-b97e-b821220d3ddb","title":"> [btcturk] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/btcturk-test.js","file":"/test/generated/btcturk-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [btcturk] connect","fullTitle":" > [btcturk] without API keys > [btcturk] connect","timedOut":false,"duration":155,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"634875d5-07f0-4984-83bf-bcbc6b357dd5","isHook":false,"skipped":false},{"title":"> [btcturk] markets","fullTitle":" > [btcturk] without API keys > [btcturk] markets","timedOut":false,"duration":3056,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9a71ba22-dca4-4b81-bf71-fb025a613e27","isHook":false,"skipped":false},{"title":"> [btcturk] ticker","fullTitle":" > [btcturk] without API keys > [btcturk] ticker","timedOut":false,"duration":1037,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"81f5a028-63c7-495e-ba7e-6d3103a15618","isHook":false,"skipped":false},{"title":"> [btcturk] tickers","fullTitle":" > [btcturk] without API keys > [btcturk] tickers","timedOut":false,"duration":17,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8f54641a-f9f6-4d78-88f1-cd87a2ca25f7","isHook":false,"skipped":false},{"title":"> [btcturk] orderBook","fullTitle":" > [btcturk] without API keys > [btcturk] orderBook","timedOut":false,"duration":22,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"45756584-4f9f-4520-9d68-42eb9eae7349","isHook":false,"skipped":false},{"title":"> [btcturk] trades","fullTitle":" > [btcturk] without API keys > [btcturk] trades","timedOut":false,"duration":42,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a02fc862-32f1-4243-8eec-e401ca6c403a","isHook":false,"skipped":false}],"suites":[],"passes":["634875d5-07f0-4984-83bf-bcbc6b357dd5","9a71ba22-dca4-4b81-bf71-fb025a613e27","81f5a028-63c7-495e-ba7e-6d3103a15618","8f54641a-f9f6-4d78-88f1-cd87a2ca25f7","45756584-4f9f-4520-9d68-42eb9eae7349","a02fc862-32f1-4243-8eec-e401ca6c403a"],"failures":[],"pending":[],"skipped":[],"duration":4329,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"f4ed2722-5277-4912-a178-a6292785c2a1","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"df45144c-ab84-4c1a-871a-4ea798e5e182","title":"> [bybit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bybit-test.js","file":"/test/generated/bybit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bybit] connect","fullTitle":" > [bybit] without API keys > [bybit] connect","timedOut":false,"duration":96,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4b07edf2-dfa2-4a89-a303-e4e76d09702b","isHook":false,"skipped":false},{"title":"> [bybit] markets","fullTitle":" > [bybit] without API keys > [bybit] markets","timedOut":false,"duration":438,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"543c8e12-03e2-44d1-a6a8-6abf486241ac","isHook":false,"skipped":false},{"title":"> [bybit] ticker","fullTitle":" > [bybit] without API keys > [bybit] ticker","timedOut":false,"duration":518,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"03b84712-93b8-4a48-9d42-863fe42cad8f","isHook":false,"skipped":false},{"title":"> [bybit] tickers","fullTitle":" > [bybit] without API keys > [bybit] tickers","timedOut":false,"duration":248,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cc0e1314-cdfe-432e-b8ab-d2f1ce1dce1c","isHook":false,"skipped":false},{"title":"> [bybit] orderBook","fullTitle":" > [bybit] without API keys > [bybit] orderBook","timedOut":false,"duration":245,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4c64c6ee-7945-48af-b4af-612975903267","isHook":false,"skipped":false},{"title":"> [bybit] trades","fullTitle":" > [bybit] without API keys > [bybit] trades","timedOut":false,"duration":562,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3aad4735-cb52-466e-911e-3f91a9795fc3","isHook":false,"skipped":false}],"suites":[],"passes":["4b07edf2-dfa2-4a89-a303-e4e76d09702b","543c8e12-03e2-44d1-a6a8-6abf486241ac","03b84712-93b8-4a48-9d42-863fe42cad8f","cc0e1314-cdfe-432e-b8ab-d2f1ce1dce1c","4c64c6ee-7945-48af-b4af-612975903267","3aad4735-cb52-466e-911e-3f91a9795fc3"],"failures":[],"pending":[],"skipped":[],"duration":2107,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d9a2b3c7-9fcb-4331-bd39-c7a756575db3","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"7935648b-6a4d-438a-85de-d0223d1a29ad","title":"> [bitz] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bitz-test.js","file":"/test/generated/bitz-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bitz] connect","fullTitle":" > [bitz] without API keys > [bitz] connect","timedOut":false,"duration":415,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bfc6877a-eae8-4b65-9e98-8d9cec771185","isHook":false,"skipped":false},{"title":"> [bitz] markets","fullTitle":" > [bitz] without API keys > [bitz] markets","timedOut":false,"duration":745,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ebbd325f-3721-4862-8fe7-7dd626596bf7","isHook":false,"skipped":false},{"title":"> [bitz] ticker","fullTitle":" > [bitz] without API keys > [bitz] ticker","timedOut":false,"duration":3343,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"74d997e0-a64b-4fdc-bc9b-d065665b664e","isHook":false,"skipped":false},{"title":"> [bitz] tickers","fullTitle":" > [bitz] without API keys > [bitz] tickers","timedOut":false,"duration":2223,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b21c4ecc-cb3f-45fb-a4bd-45e1f4e74759","isHook":false,"skipped":false},{"title":"> [bitz] orderBook","fullTitle":" > [bitz] without API keys > [bitz] orderBook","timedOut":false,"duration":1743,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f2ac13c7-12ea-41d5-bf53-a5c2b2273b38","isHook":false,"skipped":false},{"title":"> [bitz] trades","fullTitle":" > [bitz] without API keys > [bitz] trades","timedOut":false,"duration":2114,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"969dde21-d99d-43f5-b08d-634a61c8a274","isHook":false,"skipped":false}],"suites":[],"passes":["bfc6877a-eae8-4b65-9e98-8d9cec771185","ebbd325f-3721-4862-8fe7-7dd626596bf7","74d997e0-a64b-4fdc-bc9b-d065665b664e","b21c4ecc-cb3f-45fb-a4bd-45e1f4e74759","f2ac13c7-12ea-41d5-bf53-a5c2b2273b38","969dde21-d99d-43f5-b08d-634a61c8a274"],"failures":[],"pending":[],"skipped":[],"duration":10583,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"7aefd8af-09d9-4098-a7f8-dad42c1e1156","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"1772cadb-05e1-446a-8d74-b8b1725198ea","title":"> [braziliex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/braziliex-test.js","file":"/test/generated/braziliex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [braziliex] connect","fullTitle":" > [braziliex] without API keys > [braziliex] connect","timedOut":false,"duration":276,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"48d67f8b-77b4-4136-bbac-8dfac3e14c1b","isHook":false,"skipped":false},{"title":"> [braziliex] markets","fullTitle":" > [braziliex] without API keys > [braziliex] markets","timedOut":false,"duration":1012,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7e2f3e18-f026-4eff-b7e1-f47216cb5ba3","isHook":false,"skipped":false},{"title":"> [braziliex] ticker","fullTitle":" > [braziliex] without API keys > [braziliex] ticker","timedOut":false,"duration":3054,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"51760247-c3a2-463d-b4b0-d1dfac2c4f19","isHook":false,"skipped":false},{"title":"> [braziliex] tickers","fullTitle":" > [braziliex] without API keys > [braziliex] tickers","timedOut":false,"duration":1043,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"be4ed52a-8c86-4f4b-ae89-553930a17aec","isHook":false,"skipped":false},{"title":"> [braziliex] orderBook","fullTitle":" > [braziliex] without API keys > [braziliex] orderBook","timedOut":false,"duration":952,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"acada521-c15d-4fc3-ae0a-275939b9e881","isHook":false,"skipped":false},{"title":"> [braziliex] trades","fullTitle":" > [braziliex] without API keys > [braziliex] trades","timedOut":false,"duration":3092,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4bf8e647-47a3-4c76-963a-a65b0a85c8e0","isHook":false,"skipped":false}],"suites":[],"passes":["48d67f8b-77b4-4136-bbac-8dfac3e14c1b","7e2f3e18-f026-4eff-b7e1-f47216cb5ba3","51760247-c3a2-463d-b4b0-d1dfac2c4f19","be4ed52a-8c86-4f4b-ae89-553930a17aec","acada521-c15d-4fc3-ae0a-275939b9e881","4bf8e647-47a3-4c76-963a-a65b0a85c8e0"],"failures":[],"pending":[],"skipped":[],"duration":9429,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ce766a55-77f0-438e-b2fa-febe376d1167","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"ffae52a5-7fee-424f-be39-43d4822b6f34","title":"> [buda] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/buda-test.js","file":"/test/generated/buda-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [buda] connect","fullTitle":" > [buda] without API keys > [buda] connect","timedOut":false,"duration":175,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"415d9fd8-634b-43f3-8ff8-85100a42f60a","isHook":false,"skipped":false},{"title":"> [buda] markets","fullTitle":" > [buda] without API keys > [buda] markets","timedOut":false,"duration":3069,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2fd1d176-b611-434b-a87d-3a201147640a","isHook":false,"skipped":false},{"title":"> [buda] ticker","fullTitle":" > [buda] without API keys > [buda] ticker","timedOut":false,"duration":1145,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"aae8cdb0-45cf-400e-b4e5-94813923b927","isHook":false,"skipped":false},{"title":"> [buda] tickers","fullTitle":" > [buda] without API keys > [buda] tickers","timedOut":false,"duration":57,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fac8fb18-9b1e-477f-a66e-1d86518c84ee","isHook":false,"skipped":false},{"title":"> [buda] orderBook","fullTitle":" > [buda] without API keys > [buda] orderBook","timedOut":false,"duration":358,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ec304cae-7caa-4d0d-ab5d-8f20de550a13","isHook":false,"skipped":false},{"title":"> [buda] trades","fullTitle":" > [buda] without API keys > [buda] trades","timedOut":false,"duration":227,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5b31151a-b1e4-4595-b2bc-0050a34bd794","isHook":false,"skipped":false}],"suites":[],"passes":["415d9fd8-634b-43f3-8ff8-85100a42f60a","2fd1d176-b611-434b-a87d-3a201147640a","aae8cdb0-45cf-400e-b4e5-94813923b927","fac8fb18-9b1e-477f-a66e-1d86518c84ee","ec304cae-7caa-4d0d-ab5d-8f20de550a13","5b31151a-b1e4-4595-b2bc-0050a34bd794"],"failures":[],"pending":[],"skipped":[],"duration":5031,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"590ea588-736b-4030-9a73-3ba4865b6c28","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"98868f17-e6fa-47dd-a5bb-9484b30e815f","title":"> [btctradeua] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/btctradeua-test.js","file":"/test/generated/btctradeua-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [btctradeua] connect","fullTitle":" > [btctradeua] without API keys > [btctradeua] connect","timedOut":false,"duration":172,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5e71c82f-6de9-4e18-98e2-f1e8c45ba46b","isHook":false,"skipped":false},{"title":"> [btctradeua] markets","fullTitle":" > [btctradeua] without API keys > [btctradeua] markets","timedOut":false,"duration":97,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f5234473-80bc-458a-a721-b81330f5e377","isHook":false,"skipped":false},{"title":"> [btctradeua] ticker","fullTitle":" > [btctradeua] without API keys > [btctradeua] ticker","timedOut":false,"duration":1139,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"99367e16-f6f1-42da-800c-8018a876e01c","isHook":false,"skipped":false},{"title":"> [btctradeua] tickers","fullTitle":" > [btctradeua] without API keys > [btctradeua] tickers","timedOut":false,"duration":57,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"78c9c75f-0399-477d-9d15-dbd950cb7509","isHook":false,"skipped":false},{"title":"> [btctradeua] orderBook","fullTitle":" > [btctradeua] without API keys > [btctradeua] orderBook","timedOut":false,"duration":5270,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"417eb5d3-9957-4acb-a1b2-3f5a1b64253a","isHook":false,"skipped":false},{"title":"> [btctradeua] trades","fullTitle":" > [btctradeua] without API keys > [btctradeua] trades","timedOut":false,"duration":2695,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9b3c02d2-2f1c-48b7-bcd3-58ebee0c190e","isHook":false,"skipped":false}],"suites":[],"passes":["5e71c82f-6de9-4e18-98e2-f1e8c45ba46b","f5234473-80bc-458a-a721-b81330f5e377","99367e16-f6f1-42da-800c-8018a876e01c","78c9c75f-0399-477d-9d15-dbd950cb7509","417eb5d3-9957-4acb-a1b2-3f5a1b64253a","9b3c02d2-2f1c-48b7-bcd3-58ebee0c190e"],"failures":[],"pending":[],"skipped":[],"duration":9430,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"1c9008f0-6ac2-43c9-9fe2-0caef729d589","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"24caa1df-971f-4d61-b825-0b940453b91c","title":"> [bytetrade] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bytetrade-test.js","file":"/test/generated/bytetrade-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bytetrade] connect","fullTitle":" > [bytetrade] without API keys > [bytetrade] connect","timedOut":false,"duration":112,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"df1c045a-0b32-4884-8a89-12aa75d9fa36","isHook":false,"skipped":false},{"title":"> [bytetrade] markets","fullTitle":" > [bytetrade] without API keys > [bytetrade] markets","timedOut":false,"duration":1491,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"37c8e4ff-803a-444a-90e0-5590de41b8d0","isHook":false,"skipped":false},{"title":"> [bytetrade] ticker","fullTitle":" > [bytetrade] without API keys > [bytetrade] ticker","timedOut":false,"duration":1650,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5d1b1f89-899c-42ac-bddf-a552ef6f15b3","isHook":false,"skipped":false},{"title":"> [bytetrade] tickers","fullTitle":" > [bytetrade] without API keys > [bytetrade] tickers","timedOut":false,"duration":2409,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"68b5286e-04c6-48da-ba0e-4256abf98e2f","isHook":false,"skipped":false},{"title":"> [bytetrade] orderBook","fullTitle":" > [bytetrade] without API keys > [bytetrade] orderBook","timedOut":false,"duration":523,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"807199fa-0c65-4177-964a-c21ab3b38c05","isHook":false,"skipped":false},{"title":"> [bytetrade] trades","fullTitle":" > [bytetrade] without API keys > [bytetrade] trades","timedOut":false,"duration":484,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0eb7bd0c-bd12-4800-bb5c-1981705a0da7","isHook":false,"skipped":false}],"suites":[],"passes":["df1c045a-0b32-4884-8a89-12aa75d9fa36","37c8e4ff-803a-444a-90e0-5590de41b8d0","5d1b1f89-899c-42ac-bddf-a552ef6f15b3","68b5286e-04c6-48da-ba0e-4256abf98e2f","807199fa-0c65-4177-964a-c21ab3b38c05","0eb7bd0c-bd12-4800-bb5c-1981705a0da7"],"failures":[],"pending":[],"skipped":[],"duration":6669,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"7ed19f05-2d52-4e06-a03c-1dda61981bce","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"8e9ce1b0-c280-4f88-ba3f-55c993b3b081","title":"> [coinbase] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinbase-test.js","file":"/test/generated/coinbase-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinbase] connect","fullTitle":" > [coinbase] without API keys > [coinbase] connect","timedOut":false,"duration":427,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"eb27d1da-52c8-4258-9a26-1450f88373c4","isHook":false,"skipped":false},{"title":"> [coinbase] markets","fullTitle":" > [coinbase] without API keys > [coinbase] markets","timedOut":false,"duration":2490,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2747f015-f511-4e4f-b55d-880b6d9200d2","isHook":false,"skipped":false},{"title":"> [coinbase] ticker","fullTitle":" > [coinbase] without API keys > [coinbase] ticker","timedOut":false,"duration":1457,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f377ec7e-7cef-41be-9398-57c34a840788","isHook":false,"skipped":false},{"title":"> [coinbase] tickers","fullTitle":" > [coinbase] without API keys > [coinbase] tickers","timedOut":false,"duration":297,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9cff5ab6-4f94-442d-b2c7-6cbb2820acb4","isHook":false,"skipped":false},{"title":"> [coinbase] orderBook","fullTitle":" > [coinbase] without API keys > [coinbase] orderBook","timedOut":false,"duration":208,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e6cf64d9-4e80-4590-bcdb-c25fb0e5dfae","isHook":false,"skipped":false},{"title":"> [coinbase] trades","fullTitle":" > [coinbase] without API keys > [coinbase] trades","timedOut":false,"duration":249,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a288b7fb-c39a-4515-98e5-2cbaa6337b27","isHook":false,"skipped":false}],"suites":[],"passes":["eb27d1da-52c8-4258-9a26-1450f88373c4","2747f015-f511-4e4f-b55d-880b6d9200d2","f377ec7e-7cef-41be-9398-57c34a840788","9cff5ab6-4f94-442d-b2c7-6cbb2820acb4","e6cf64d9-4e80-4590-bcdb-c25fb0e5dfae","a288b7fb-c39a-4515-98e5-2cbaa6337b27"],"failures":[],"pending":[],"skipped":[],"duration":5128,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"093bd595-c794-4a6d-a98e-6d8674e2d5df","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"dffb33f5-5a66-4d98-a124-961c38658df2","title":"> [bw] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/bw-test.js","file":"/test/generated/bw-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [bw] connect","fullTitle":" > [bw] without API keys > [bw] connect","timedOut":false,"duration":100,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ec0683c6-d4fe-4ead-abe2-318270f5ddec","isHook":false,"skipped":false},{"title":"> [bw] markets","fullTitle":" > [bw] without API keys > [bw] markets","timedOut":false,"duration":911,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"23b379a3-4b97-4524-92ab-2a1cd2b7075f","isHook":false,"skipped":false},{"title":"> [bw] ticker","fullTitle":" > [bw] without API keys > [bw] ticker","timedOut":false,"duration":3981,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"340ab0df-2b6d-480a-9bf0-38ba9ce4a88a","isHook":false,"skipped":false},{"title":"> [bw] tickers","fullTitle":" > [bw] without API keys > [bw] tickers","timedOut":false,"duration":2653,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c0858ba5-7b7b-4af1-ae1a-15b6be0d5aa1","isHook":false,"skipped":false},{"title":"> [bw] orderBook","fullTitle":" > [bw] without API keys > [bw] orderBook","timedOut":false,"duration":1166,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b66aba64-0d49-4ad0-9038-4f629e594693","isHook":false,"skipped":false},{"title":"> [bw] trades","fullTitle":" > [bw] without API keys > [bw] trades","timedOut":false,"duration":1388,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3fb2bd74-7a03-4d5d-b096-4843e2336b55","isHook":false,"skipped":false}],"suites":[],"passes":["ec0683c6-d4fe-4ead-abe2-318270f5ddec","23b379a3-4b97-4524-92ab-2a1cd2b7075f","340ab0df-2b6d-480a-9bf0-38ba9ce4a88a","c0858ba5-7b7b-4af1-ae1a-15b6be0d5aa1","b66aba64-0d49-4ad0-9038-4f629e594693","3fb2bd74-7a03-4d5d-b096-4843e2336b55"],"failures":[],"pending":[],"skipped":[],"duration":10199,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"1d5bb367-5a72-4677-a3c7-30027e818fd9","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"26d80221-10b7-4f22-bb57-8a05fef0cd40","title":"> [coincheck] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coincheck-test.js","file":"/test/generated/coincheck-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coincheck] connect","fullTitle":" > [coincheck] without API keys > [coincheck] connect","timedOut":false,"duration":1324,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ce4db231-1fa6-4fd1-95d2-61f04b37225a","isHook":false,"skipped":false},{"title":"> [coincheck] markets","fullTitle":" > [coincheck] without API keys > [coincheck] markets","timedOut":false,"duration":65,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"aa83d4da-55a5-40b0-a89a-52809eb00bb8","isHook":false,"skipped":false},{"title":"> [coincheck] ticker","fullTitle":" > [coincheck] without API keys > [coincheck] ticker","timedOut":false,"duration":471,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"70bc891d-f312-435a-9849-ec4aab8406a3","isHook":false,"skipped":false},{"title":"> [coincheck] tickers","fullTitle":" > [coincheck] without API keys > [coincheck] tickers","timedOut":false,"duration":8,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"13360efd-e326-415a-9299-37aa942542a1","isHook":false,"skipped":false},{"title":"> [coincheck] orderBook","fullTitle":" > [coincheck] without API keys > [coincheck] orderBook","timedOut":false,"duration":1235,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ab8f5ee4-55d5-4595-ae88-ab79ab43c1db","isHook":false,"skipped":false},{"title":"> [coincheck] trades","fullTitle":" > [coincheck] without API keys > [coincheck] trades","timedOut":false,"duration":1116,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"aa1b8d26-a49e-46fb-b9d8-d99723ca3e35","isHook":false,"skipped":false}],"suites":[],"passes":["ce4db231-1fa6-4fd1-95d2-61f04b37225a","aa83d4da-55a5-40b0-a89a-52809eb00bb8","70bc891d-f312-435a-9849-ec4aab8406a3","13360efd-e326-415a-9299-37aa942542a1","ab8f5ee4-55d5-4595-ae88-ab79ab43c1db","aa1b8d26-a49e-46fb-b9d8-d99723ca3e35"],"failures":[],"pending":[],"skipped":[],"duration":4219,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"c7ee3864-4b2b-4e7a-87ee-c47d7d726ae6","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"f10ebd8d-aa90-4195-9a7b-cf93ab66b566","title":"> [coinbaseprime] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinbaseprime-test.js","file":"/test/generated/coinbaseprime-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinbaseprime] connect","fullTitle":" > [coinbaseprime] without API keys > [coinbaseprime] connect","timedOut":false,"duration":392,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"82edbeac-9829-4b8a-8cc8-194e3df0f912","isHook":false,"skipped":false},{"title":"> [coinbaseprime] markets","fullTitle":" > [coinbaseprime] without API keys > [coinbaseprime] markets","timedOut":false,"duration":2549,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b640b2c0-d7f2-42b6-9ed5-f2fe49687320","isHook":false,"skipped":false},{"title":"> [coinbaseprime] ticker","fullTitle":" > [coinbaseprime] without API keys > [coinbaseprime] ticker","timedOut":false,"duration":1063,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1daa0202-6ea6-4a55-8714-39a5e98f35bd","isHook":false,"skipped":false},{"title":"> [coinbaseprime] tickers","fullTitle":" > [coinbaseprime] without API keys > [coinbaseprime] tickers","timedOut":false,"duration":15,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d0d9768b-3e93-4e84-b05d-d336584ccacd","isHook":false,"skipped":false},{"title":"> [coinbaseprime] orderBook","fullTitle":" > [coinbaseprime] without API keys > [coinbaseprime] orderBook","timedOut":false,"duration":966,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3af2c7cc-fee6-4d77-aae4-e79ce6314273","isHook":false,"skipped":false},{"title":"> [coinbaseprime] trades","fullTitle":" > [coinbaseprime] without API keys > [coinbaseprime] trades","timedOut":false,"duration":1004,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e6171ccd-9cd9-4c32-a806-70afd511ca5e","isHook":false,"skipped":false}],"suites":[],"passes":["82edbeac-9829-4b8a-8cc8-194e3df0f912","b640b2c0-d7f2-42b6-9ed5-f2fe49687320","1daa0202-6ea6-4a55-8714-39a5e98f35bd","d0d9768b-3e93-4e84-b05d-d336584ccacd","3af2c7cc-fee6-4d77-aae4-e79ce6314273","e6171ccd-9cd9-4c32-a806-70afd511ca5e"],"failures":[],"pending":[],"skipped":[],"duration":5989,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"e92dc952-8627-4d2c-89b2-d3218dbd4637","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"c9a4d41f-4d65-4f25-88a4-e43d883deb62","title":"> [chilebit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/chilebit-test.js","file":"/test/generated/chilebit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [chilebit] connect","fullTitle":" > [chilebit] without API keys > [chilebit] connect","timedOut":false,"duration":187,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"07ec0dd3-1736-4281-9014-ae31114d5b82","isHook":false,"skipped":false},{"title":"> [chilebit] markets","fullTitle":" > [chilebit] without API keys > [chilebit] markets","timedOut":false,"duration":74,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a60ad7dd-c685-44b2-9ddd-06167f891be0","isHook":false,"skipped":false},{"title":"> [chilebit] ticker","fullTitle":" > [chilebit] without API keys > [chilebit] ticker","timedOut":false,"duration":385,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3019d8f2-1135-4c8e-881b-2b52359d739b","isHook":false,"skipped":false},{"title":"> [chilebit] tickers","fullTitle":" > [chilebit] without API keys > [chilebit] tickers","timedOut":false,"duration":101,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"652129a5-d82c-4245-a587-6b6ecf569733","isHook":false,"skipped":false},{"title":"> [chilebit] orderBook","fullTitle":" > [chilebit] without API keys > [chilebit] orderBook","timedOut":false,"duration":2302,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"34a2ec38-e953-4b17-bc67-7c5552dd1c71","isHook":false,"skipped":false},{"title":"> [chilebit] trades","fullTitle":" > [chilebit] without API keys > [chilebit] trades","timedOut":false,"duration":3872,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"344b393b-f44b-4459-934f-c5f091f336d0","isHook":false,"skipped":false}],"suites":[],"passes":["07ec0dd3-1736-4281-9014-ae31114d5b82","a60ad7dd-c685-44b2-9ddd-06167f891be0","3019d8f2-1135-4c8e-881b-2b52359d739b","652129a5-d82c-4245-a587-6b6ecf569733","34a2ec38-e953-4b17-bc67-7c5552dd1c71","344b393b-f44b-4459-934f-c5f091f336d0"],"failures":[],"pending":[],"skipped":[],"duration":6921,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ff0288e3-026f-45f2-87a2-58907c77014e","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"8f2ed16f-c831-4ee6-9a7f-1a1de9247cbe","title":"> [coinbasepro] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinbasepro-test.js","file":"/test/generated/coinbasepro-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinbasepro] connect","fullTitle":" > [coinbasepro] without API keys > [coinbasepro] connect","timedOut":false,"duration":1843,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"18c361fe-0125-4677-849b-0c790674de7f","isHook":false,"skipped":false},{"title":"> [coinbasepro] markets","fullTitle":" > [coinbasepro] without API keys > [coinbasepro] markets","timedOut":false,"duration":554,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c2be61d3-9e77-468d-a1d2-229ee6a26247","isHook":false,"skipped":false},{"title":"> [coinbasepro] ticker","fullTitle":" > [coinbasepro] without API keys > [coinbasepro] ticker","timedOut":false,"duration":1336,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bf4b0356-6ecd-41c7-a026-c470d328c9b3","isHook":false,"skipped":false},{"title":"> [coinbasepro] tickers","fullTitle":" > [coinbasepro] without API keys > [coinbasepro] tickers","timedOut":false,"duration":19,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9e28250d-91f3-4a20-a3cb-f829eb715951","isHook":false,"skipped":false},{"title":"> [coinbasepro] orderBook","fullTitle":" > [coinbasepro] without API keys > [coinbasepro] orderBook","timedOut":false,"duration":967,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ffc398c9-27c1-417c-8aad-7bbf1a327c86","isHook":false,"skipped":false},{"title":"> [coinbasepro] trades","fullTitle":" > [coinbasepro] without API keys > [coinbasepro] trades","timedOut":false,"duration":1027,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ca0a0786-ab8e-4998-a93d-058ca14d34b8","isHook":false,"skipped":false}],"suites":[],"passes":["18c361fe-0125-4677-849b-0c790674de7f","c2be61d3-9e77-468d-a1d2-229ee6a26247","bf4b0356-6ecd-41c7-a026-c470d328c9b3","9e28250d-91f3-4a20-a3cb-f829eb715951","ffc398c9-27c1-417c-8aad-7bbf1a327c86","ca0a0786-ab8e-4998-a93d-058ca14d34b8"],"failures":[],"pending":[],"skipped":[],"duration":5746,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"45b21b48-370c-4d6c-ada2-141a75cd2ac0","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"36431176-ceaf-4ab5-8193-71049b5a1ff9","title":"> [coinfloor] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinfloor-test.js","file":"/test/generated/coinfloor-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinfloor] connect","fullTitle":" > [coinfloor] without API keys > [coinfloor] connect","timedOut":false,"duration":96,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3ae2ef86-15cb-43ea-9502-dfb6bc442c96","isHook":false,"skipped":false},{"title":"> [coinfloor] markets","fullTitle":" > [coinfloor] without API keys > [coinfloor] markets","timedOut":false,"duration":15,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"af5544c7-7f0f-4878-8b43-4d3039f44bf7","isHook":false,"skipped":false},{"title":"> [coinfloor] ticker","fullTitle":" > [coinfloor] without API keys > [coinfloor] ticker","timedOut":false,"duration":504,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8d87fcfe-d892-4a5f-87a2-7083e644b8e2","isHook":false,"skipped":false},{"title":"> [coinfloor] tickers","fullTitle":" > [coinfloor] without API keys > [coinfloor] tickers","timedOut":false,"duration":5,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"edc02d1c-45ad-4910-82cd-86728dde5241","isHook":false,"skipped":false},{"title":"> [coinfloor] orderBook","fullTitle":" > [coinfloor] without API keys > [coinfloor] orderBook","timedOut":false,"duration":553,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cbaff196-cb52-4ef1-95ef-2dff144107ba","isHook":false,"skipped":false},{"title":"> [coinfloor] trades","fullTitle":" > [coinfloor] without API keys > [coinfloor] trades","timedOut":false,"duration":992,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dc67569a-e70c-4ed7-ad9e-f1eb9ffe5288","isHook":false,"skipped":false}],"suites":[],"passes":["3ae2ef86-15cb-43ea-9502-dfb6bc442c96","af5544c7-7f0f-4878-8b43-4d3039f44bf7","8d87fcfe-d892-4a5f-87a2-7083e644b8e2","edc02d1c-45ad-4910-82cd-86728dde5241","cbaff196-cb52-4ef1-95ef-2dff144107ba","dc67569a-e70c-4ed7-ad9e-f1eb9ffe5288"],"failures":[],"pending":[],"skipped":[],"duration":2165,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"b9f909d1-996c-49da-bbf3-8cf125891854","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"69c64f13-3990-4dea-8a28-b548b4a77e7d","title":"> [coinex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinex-test.js","file":"/test/generated/coinex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinex] connect","fullTitle":" > [coinex] without API keys > [coinex] connect","timedOut":false,"duration":48,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"265da4ac-8cb2-4bcc-a15e-1a6981176c24","isHook":false,"skipped":false},{"title":"> [coinex] markets","fullTitle":" > [coinex] without API keys > [coinex] markets","timedOut":false,"duration":574,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b543234f-098f-4a74-b62a-0dcb53d36a59","isHook":false,"skipped":false},{"title":"> [coinex] ticker","fullTitle":" > [coinex] without API keys > [coinex] ticker","timedOut":false,"duration":1604,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cbd01bd6-aea5-4c34-b056-7809684ae8c5","isHook":false,"skipped":false},{"title":"> [coinex] tickers","fullTitle":" > [coinex] without API keys > [coinex] tickers","timedOut":false,"duration":1045,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2a153d7b-8b21-478d-92f9-72236c2e1f97","isHook":false,"skipped":false},{"title":"> [coinex] orderBook","fullTitle":" > [coinex] without API keys > [coinex] orderBook","timedOut":false,"duration":942,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4801a2db-d3f6-47c5-8ad8-1b88749f3113","isHook":false,"skipped":false},{"title":"> [coinex] trades","fullTitle":" > [coinex] without API keys > [coinex] trades","timedOut":false,"duration":1016,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a98d44c5-a396-4d68-84fd-e51805b2f6ec","isHook":false,"skipped":false}],"suites":[],"passes":["265da4ac-8cb2-4bcc-a15e-1a6981176c24","b543234f-098f-4a74-b62a-0dcb53d36a59","cbd01bd6-aea5-4c34-b056-7809684ae8c5","2a153d7b-8b21-478d-92f9-72236c2e1f97","4801a2db-d3f6-47c5-8ad8-1b88749f3113","a98d44c5-a396-4d68-84fd-e51805b2f6ec"],"failures":[],"pending":[],"skipped":[],"duration":5229,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"421e7cfa-06c4-45f3-a7a3-d104026849fb","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"64e0ee82-88a8-483f-bd4b-072697ceaedc","title":"> [coinspot] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinspot-test.js","file":"/test/generated/coinspot-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinspot] connect","fullTitle":" > [coinspot] without API keys > [coinspot] connect","timedOut":false,"duration":134,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"145f596b-3f34-44c9-8bae-97219bf0718b","isHook":false,"skipped":false},{"title":"> [coinspot] markets","fullTitle":" > [coinspot] without API keys > [coinspot] markets","timedOut":false,"duration":11,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b59ae6d8-ae2a-4ea5-81f4-eeda8ac55f1c","isHook":false,"skipped":false},{"title":"> [coinspot] ticker","fullTitle":" > [coinspot] without API keys > [coinspot] ticker","timedOut":false,"duration":10,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cea0cd68-8bd3-4dc6-8166-7656f9e1363d","isHook":false,"skipped":false},{"title":"> [coinspot] tickers","fullTitle":" > [coinspot] without API keys > [coinspot] tickers","timedOut":false,"duration":5,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"198fe31d-bc4a-4c56-9113-493314b426fd","isHook":false,"skipped":false},{"title":"> [coinspot] orderBook","fullTitle":" > [coinspot] without API keys > [coinspot] orderBook","timedOut":false,"duration":916,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"857b09be-3b7e-44f3-9610-47c0b75cca6a","isHook":false,"skipped":false},{"title":"> [coinspot] trades","fullTitle":" > [coinspot] without API keys > [coinspot] trades","timedOut":false,"duration":1008,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b91926a6-3d55-4685-ba0b-da37b0c4e8dd","isHook":false,"skipped":false}],"suites":[],"passes":["145f596b-3f34-44c9-8bae-97219bf0718b","b59ae6d8-ae2a-4ea5-81f4-eeda8ac55f1c","cea0cd68-8bd3-4dc6-8166-7656f9e1363d","198fe31d-bc4a-4c56-9113-493314b426fd","857b09be-3b7e-44f3-9610-47c0b75cca6a","b91926a6-3d55-4685-ba0b-da37b0c4e8dd"],"failures":[],"pending":[],"skipped":[],"duration":2084,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"17d20ecc-c700-4a1a-bf68-1354ff6fc706","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"abf8dfcb-29f7-4b02-9808-dee6d611b75c","title":"> [coinfalcon] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinfalcon-test.js","file":"/test/generated/coinfalcon-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinfalcon] connect","fullTitle":" > [coinfalcon] without API keys > [coinfalcon] connect","timedOut":false,"duration":39,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a0c76a38-2ad7-4729-bbaf-0165f49b4748","isHook":false,"skipped":false},{"title":"> [coinfalcon] markets","fullTitle":" > [coinfalcon] without API keys > [coinfalcon] markets","timedOut":false,"duration":324,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"001c9325-64d0-4e03-aa5e-b49b3c96229a","isHook":false,"skipped":false},{"title":"> [coinfalcon] ticker","fullTitle":" > [coinfalcon] without API keys > [coinfalcon] ticker","timedOut":false,"duration":1835,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5fb1a42f-2010-4885-9811-6df722f9c773","isHook":false,"skipped":false},{"title":"> [coinfalcon] tickers","fullTitle":" > [coinfalcon] without API keys > [coinfalcon] tickers","timedOut":false,"duration":1033,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c992e45a-cd35-4ef4-829a-a458e8c3be00","isHook":false,"skipped":false},{"title":"> [coinfalcon] orderBook","fullTitle":" > [coinfalcon] without API keys > [coinfalcon] orderBook","timedOut":false,"duration":980,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"42ef3f83-7ea8-4356-b60f-cf3e478053ff","isHook":false,"skipped":false},{"title":"> [coinfalcon] trades","fullTitle":" > [coinfalcon] without API keys > [coinfalcon] trades","timedOut":false,"duration":1109,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"242cd9ca-4404-48f9-b96d-803cf0c1f9c2","isHook":false,"skipped":false}],"suites":[],"passes":["a0c76a38-2ad7-4729-bbaf-0165f49b4748","001c9325-64d0-4e03-aa5e-b49b3c96229a","5fb1a42f-2010-4885-9811-6df722f9c773","c992e45a-cd35-4ef4-829a-a458e8c3be00","42ef3f83-7ea8-4356-b60f-cf3e478053ff","242cd9ca-4404-48f9-b96d-803cf0c1f9c2"],"failures":[],"pending":[],"skipped":[],"duration":5320,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"a18c5818-5e8e-41f0-83de-86e1d23ff41f","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"1984b830-19cb-4f43-a0d1-7a59f5de73d7","title":"> [coingi] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coingi-test.js","file":"/test/generated/coingi-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coingi] connect","fullTitle":" > [coingi] without API keys > [coingi] connect","timedOut":false,"duration":56,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b07ed8eb-3616-487b-87d6-52c1649758f6","isHook":false,"skipped":false},{"title":"> [coingi] markets","fullTitle":" > [coingi] without API keys > [coingi] markets","timedOut":false,"duration":3102,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2ba64905-aa6f-44ab-9cba-fdad4a227c59","isHook":false,"skipped":false},{"title":"> [coingi] ticker","fullTitle":" > [coingi] without API keys > [coingi] ticker","timedOut":false,"duration":1118,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ebde56c4-c1ee-4658-99b8-9bf36a251f48","isHook":false,"skipped":false},{"title":"> [coingi] tickers","fullTitle":" > [coingi] without API keys > [coingi] tickers","timedOut":false,"duration":216,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c74b7ff1-09c5-4e74-b80a-84419fc5ae9f","isHook":false,"skipped":false},{"title":"> [coingi] orderBook","fullTitle":" > [coingi] without API keys > [coingi] orderBook","timedOut":false,"duration":70,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"27c54874-fca3-4ec0-bfce-abbc9c786427","isHook":false,"skipped":false},{"title":"> [coingi] trades","fullTitle":" > [coingi] without API keys > [coingi] trades","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"20173061-1460-4dca-93f0-ac2ae12958df","isHook":false,"skipped":false}],"suites":[],"passes":["b07ed8eb-3616-487b-87d6-52c1649758f6","2ba64905-aa6f-44ab-9cba-fdad4a227c59","ebde56c4-c1ee-4658-99b8-9bf36a251f48","c74b7ff1-09c5-4e74-b80a-84419fc5ae9f","27c54874-fca3-4ec0-bfce-abbc9c786427","20173061-1460-4dca-93f0-ac2ae12958df"],"failures":[],"pending":[],"skipped":[],"duration":4596,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"6fa349a7-e2be-4e57-98c3-77eb5ed1a990","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"7e30b6fc-f255-46d2-b3dc-010bb993faf7","title":"> [coinone] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinone-test.js","file":"/test/generated/coinone-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinone] connect","fullTitle":" > [coinone] without API keys > [coinone] connect","timedOut":false,"duration":101,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bb2456d9-e803-49b7-948b-2257395cef3b","isHook":false,"skipped":false},{"title":"> [coinone] markets","fullTitle":" > [coinone] without API keys > [coinone] markets","timedOut":false,"duration":406,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a6802eb0-8219-4d6e-bb4f-ca78e8373cf9","isHook":false,"skipped":false},{"title":"> [coinone] ticker","fullTitle":" > [coinone] without API keys > [coinone] ticker","timedOut":false,"duration":1135,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7abaf8e4-9776-4558-93ff-bd34165bd5b7","isHook":false,"skipped":false},{"title":"> [coinone] tickers","fullTitle":" > [coinone] without API keys > [coinone] tickers","timedOut":false,"duration":915,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"83972c88-c4ed-4991-92f4-af4eb1cc5da6","isHook":false,"skipped":false},{"title":"> [coinone] orderBook","fullTitle":" > [coinone] without API keys > [coinone] orderBook","timedOut":false,"duration":441,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f0c1b7f9-d60d-4e3e-b8ea-2eacc2757787","isHook":false,"skipped":false},{"title":"> [coinone] trades","fullTitle":" > [coinone] without API keys > [coinone] trades","timedOut":false,"duration":835,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6d152cb5-8657-4eca-8b1e-3439eee27330","isHook":false,"skipped":false}],"suites":[],"passes":["bb2456d9-e803-49b7-948b-2257395cef3b","a6802eb0-8219-4d6e-bb4f-ca78e8373cf9","7abaf8e4-9776-4558-93ff-bd34165bd5b7","83972c88-c4ed-4991-92f4-af4eb1cc5da6","f0c1b7f9-d60d-4e3e-b8ea-2eacc2757787","6d152cb5-8657-4eca-8b1e-3439eee27330"],"failures":[],"pending":[],"skipped":[],"duration":3833,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"85f1ebe5-07e6-4e57-b893-30258fe7e4df","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"42a91209-446d-45b2-893c-a59e72a5c6b1","title":"> [coinmate] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinmate-test.js","file":"/test/generated/coinmate-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinmate] connect","fullTitle":" > [coinmate] without API keys > [coinmate] connect","timedOut":false,"duration":75,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9427a106-2687-44b1-8b3e-f9334ce7ae6b","isHook":false,"skipped":false},{"title":"> [coinmate] markets","fullTitle":" > [coinmate] without API keys > [coinmate] markets","timedOut":false,"duration":568,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7ff69a3f-c8d1-4a5d-ae25-7a45c607d119","isHook":false,"skipped":false},{"title":"> [coinmate] ticker","fullTitle":" > [coinmate] without API keys > [coinmate] ticker","timedOut":false,"duration":1541,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"15e6c4c9-4d5b-44b9-ae4b-896934bfbcff","isHook":false,"skipped":false},{"title":"> [coinmate] tickers","fullTitle":" > [coinmate] without API keys > [coinmate] tickers","timedOut":false,"duration":12,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2a8ef1aa-eb58-4a16-8969-76029f04ea49","isHook":false,"skipped":false},{"title":"> [coinmate] orderBook","fullTitle":" > [coinmate] without API keys > [coinmate] orderBook","timedOut":false,"duration":965,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2204b41a-a95e-42a0-9b5e-df202e22aadc","isHook":false,"skipped":false},{"title":"> [coinmate] trades","fullTitle":" > [coinmate] without API keys > [coinmate] trades","timedOut":false,"duration":1007,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9054ab95-46a0-43db-ad9a-0687ee6629dd","isHook":false,"skipped":false}],"suites":[],"passes":["9427a106-2687-44b1-8b3e-f9334ce7ae6b","7ff69a3f-c8d1-4a5d-ae25-7a45c607d119","15e6c4c9-4d5b-44b9-ae4b-896934bfbcff","2a8ef1aa-eb58-4a16-8969-76029f04ea49","2204b41a-a95e-42a0-9b5e-df202e22aadc","9054ab95-46a0-43db-ad9a-0687ee6629dd"],"failures":[],"pending":[],"skipped":[],"duration":4168,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"dc0491a7-410a-4288-80a5-3df8bc69d23f","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b40f873d-e61d-4f99-9143-ba1e2efeba00","title":"> [cex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/cex-test.js","file":"/test/generated/cex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [cex] connect","fullTitle":" > [cex] without API keys > [cex] connect","timedOut":false,"duration":79,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1691595d-eccf-4732-bf71-eae760b6f72d","isHook":false,"skipped":false},{"title":"> [cex] markets","fullTitle":" > [cex] without API keys > [cex] markets","timedOut":false,"duration":1668,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bd2ad6ca-4efe-4c84-9d82-d002d40fc12a","isHook":false,"skipped":false},{"title":"> [cex] ticker","fullTitle":" > [cex] without API keys > [cex] ticker","timedOut":false,"duration":7724,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6b4ad566-a7dc-4844-bd13-db11859fca3b","isHook":false,"skipped":false},{"title":"> [cex] tickers","fullTitle":" > [cex] without API keys > [cex] tickers","timedOut":false,"duration":1553,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"812f6c48-b726-45ee-a440-0d1df17eb41f","isHook":false,"skipped":false},{"title":"> [cex] orderBook","fullTitle":" > [cex] without API keys > [cex] orderBook","timedOut":false,"duration":1447,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0965c9c2-0efd-4060-93ed-8cd1273d2722","isHook":false,"skipped":false},{"title":"> [cex] trades","fullTitle":" > [cex] without API keys > [cex] trades","timedOut":false,"duration":1907,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6572c47d-5e0b-4000-ba9e-2994885fc786","isHook":false,"skipped":false}],"suites":[],"passes":["1691595d-eccf-4732-bf71-eae760b6f72d","bd2ad6ca-4efe-4c84-9d82-d002d40fc12a","6b4ad566-a7dc-4844-bd13-db11859fca3b","812f6c48-b726-45ee-a440-0d1df17eb41f","0965c9c2-0efd-4060-93ed-8cd1273d2722","6572c47d-5e0b-4000-ba9e-2994885fc786"],"failures":[],"pending":[],"skipped":[],"duration":14378,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"1632b346-9517-4703-8adf-3ee8fd5c2c70","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"ed894726-41b7-4003-8916-137107dea8da","title":"> [coinegg] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinegg-test.js","file":"/test/generated/coinegg-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinegg] connect","fullTitle":" > [coinegg] without API keys > [coinegg] connect","timedOut":false,"duration":136,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e427cd1b-1725-49e6-92dd-d0213545b815","isHook":false,"skipped":false},{"title":"> [coinegg] markets","fullTitle":" > [coinegg] without API keys > [coinegg] markets","timedOut":false,"duration":6129,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"29cf4c18-e28d-4306-a18e-01b2fce8958d","isHook":false,"skipped":false},{"title":"> [coinegg] ticker","fullTitle":" > [coinegg] without API keys > [coinegg] ticker","timedOut":false,"duration":2371,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"681c2560-ac0a-4045-a40c-b3777dea7e9d","isHook":false,"skipped":false},{"title":"> [coinegg] tickers","fullTitle":" > [coinegg] without API keys > [coinegg] tickers","timedOut":false,"duration":50,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b4c1795a-ec39-46f5-b6e9-2bc48c5cc163","isHook":false,"skipped":false},{"title":"> [coinegg] orderBook","fullTitle":" > [coinegg] without API keys > [coinegg] orderBook","timedOut":false,"duration":151,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8ad1dfde-9643-4c7f-bf7f-c448a0d74bd7","isHook":false,"skipped":false},{"title":"> [coinegg] trades","fullTitle":" > [coinegg] without API keys > [coinegg] trades","timedOut":false,"duration":138,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9ae8d867-bdda-4073-9486-f4c23d306dd8","isHook":false,"skipped":false}],"suites":[],"passes":["e427cd1b-1725-49e6-92dd-d0213545b815","29cf4c18-e28d-4306-a18e-01b2fce8958d","681c2560-ac0a-4045-a40c-b3777dea7e9d","b4c1795a-ec39-46f5-b6e9-2bc48c5cc163","8ad1dfde-9643-4c7f-bf7f-c448a0d74bd7","9ae8d867-bdda-4073-9486-f4c23d306dd8"],"failures":[],"pending":[],"skipped":[],"duration":8975,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"6d62d26e-56c3-44a8-a8d0-3b5b2eb5bb45","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"a64f6b10-6f13-4338-9829-ba7c6d86c9d5","title":"> [coss] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coss-test.js","file":"/test/generated/coss-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coss] connect","fullTitle":" > [coss] without API keys > [coss] connect","timedOut":false,"duration":358,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6b2825c0-a3f0-445a-9cda-3058719439f8","isHook":false,"skipped":false},{"title":"> [coss] markets","fullTitle":" > [coss] without API keys > [coss] markets","timedOut":false,"duration":3882,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b9deca16-2d09-4bc8-a30b-26d3247cc152","isHook":false,"skipped":false},{"title":"> [coss] ticker","fullTitle":" > [coss] without API keys > [coss] ticker","timedOut":false,"duration":1073,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"521dc8ff-6e2d-4807-a5d1-24e533e4df19","isHook":false,"skipped":false},{"title":"> [coss] tickers","fullTitle":" > [coss] without API keys > [coss] tickers","timedOut":false,"duration":58,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8e02ce7a-4fa1-48bd-b1e3-f7a13ac343f2","isHook":false,"skipped":false},{"title":"> [coss] orderBook","fullTitle":" > [coss] without API keys > [coss] orderBook","timedOut":false,"duration":49,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f03a2473-1041-4f8e-9cb6-7c8c004e4f37","isHook":false,"skipped":false},{"title":"> [coss] trades","fullTitle":" > [coss] without API keys > [coss] trades","timedOut":false,"duration":55,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e6f261c2-168f-4aa2-b8ee-1917c83931f9","isHook":false,"skipped":false}],"suites":[],"passes":["6b2825c0-a3f0-445a-9cda-3058719439f8","b9deca16-2d09-4bc8-a30b-26d3247cc152","521dc8ff-6e2d-4807-a5d1-24e533e4df19","8e02ce7a-4fa1-48bd-b1e3-f7a13ac343f2","f03a2473-1041-4f8e-9cb6-7c8c004e4f37","e6f261c2-168f-4aa2-b8ee-1917c83931f9"],"failures":[],"pending":[],"skipped":[],"duration":5475,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"4efdc555-0f58-4e3c-9e46-db9ad938c6b3","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"34408d1a-8c29-4d03-81de-a00cdd5a611c","title":"> [eterbase] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/eterbase-test.js","file":"/test/generated/eterbase-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [eterbase] connect","fullTitle":" > [eterbase] without API keys > [eterbase] connect","timedOut":false,"duration":291,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"60752f09-178d-4124-a2fb-f56c25581bde","isHook":false,"skipped":false},{"title":"> [eterbase] markets","fullTitle":" > [eterbase] without API keys > [eterbase] markets","timedOut":false,"duration":438,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"137d4f20-31d1-4f90-89e4-4d52cff57582","isHook":false,"skipped":false},{"title":"> [eterbase] ticker","fullTitle":" > [eterbase] without API keys > [eterbase] ticker","timedOut":false,"duration":1877,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5b6701c6-d325-455b-af69-bd0d7be99116","isHook":false,"skipped":false},{"title":"> [eterbase] tickers","fullTitle":" > [eterbase] without API keys > [eterbase] tickers","timedOut":false,"duration":406,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"51ddc48d-b8a8-45a3-8d40-089e1a5be3ca","isHook":false,"skipped":false},{"title":"> [eterbase] orderBook","fullTitle":" > [eterbase] without API keys > [eterbase] orderBook","timedOut":false,"duration":561,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"98d6a0ac-53f4-4526-aa0b-f18932ec37c8","isHook":false,"skipped":false},{"title":"> [eterbase] trades","fullTitle":" > [eterbase] without API keys > [eterbase] trades","timedOut":false,"duration":776,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0652d8d9-bc84-4896-8f3e-75efb1a31701","isHook":false,"skipped":false}],"suites":[],"passes":["60752f09-178d-4124-a2fb-f56c25581bde","137d4f20-31d1-4f90-89e4-4d52cff57582","5b6701c6-d325-455b-af69-bd0d7be99116","51ddc48d-b8a8-45a3-8d40-089e1a5be3ca","98d6a0ac-53f4-4526-aa0b-f18932ec37c8","0652d8d9-bc84-4896-8f3e-75efb1a31701"],"failures":[],"pending":[],"skipped":[],"duration":4349,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ccb579ef-453a-481e-829b-6fc19136581c","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"6bdf210c-2a76-44e2-b44b-d041857d675a","title":"> [deribit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/deribit-test.js","file":"/test/generated/deribit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [deribit] connect","fullTitle":" > [deribit] without API keys > [deribit] connect","timedOut":false,"duration":203,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8e8663a1-fa5f-4439-902c-f6babef74981","isHook":false,"skipped":false},{"title":"> [deribit] markets","fullTitle":" > [deribit] without API keys > [deribit] markets","timedOut":false,"duration":2889,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7aa39d8c-5155-46e5-bbd2-25b56f3c08de","isHook":false,"skipped":false},{"title":"> [deribit] ticker","fullTitle":" > [deribit] without API keys > [deribit] ticker","timedOut":false,"duration":1663,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4565c984-9e94-4240-84e5-ca04a368408f","isHook":false,"skipped":false},{"title":"> [deribit] tickers","fullTitle":" > [deribit] without API keys > [deribit] tickers","timedOut":false,"duration":863,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"64fe9569-9c36-4825-94ab-230166c21899","isHook":false,"skipped":false},{"title":"> [deribit] orderBook","fullTitle":" > [deribit] without API keys > [deribit] orderBook","timedOut":false,"duration":307,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"040ef67b-7d57-43bb-8af6-17052512540d","isHook":false,"skipped":false},{"title":"> [deribit] trades","fullTitle":" > [deribit] without API keys > [deribit] trades","timedOut":false,"duration":496,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9b7e6117-167e-4a26-8a4d-ad0b3737979d","isHook":false,"skipped":false}],"suites":[],"passes":["8e8663a1-fa5f-4439-902c-f6babef74981","7aa39d8c-5155-46e5-bbd2-25b56f3c08de","4565c984-9e94-4240-84e5-ca04a368408f","64fe9569-9c36-4825-94ab-230166c21899","040ef67b-7d57-43bb-8af6-17052512540d","9b7e6117-167e-4a26-8a4d-ad0b3737979d"],"failures":[],"pending":[],"skipped":[],"duration":6421,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"8548da6c-68aa-49cd-9e78-c7db8e348ffe","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"95ec017f-7974-4482-ba06-c682b8875c03","title":"> [digifinex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/digifinex-test.js","file":"/test/generated/digifinex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [digifinex] connect","fullTitle":" > [digifinex] without API keys > [digifinex] connect","timedOut":false,"duration":796,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7bcc03ca-0d19-498c-a258-3f23b49bdc0d","isHook":false,"skipped":false},{"title":"> [digifinex] markets","fullTitle":" > [digifinex] without API keys > [digifinex] markets","timedOut":false,"duration":1545,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0c18e3c0-3278-4734-baa6-3c80f9db2e37","isHook":false,"skipped":false},{"title":"> [digifinex] ticker","fullTitle":" > [digifinex] without API keys > [digifinex] ticker","timedOut":false,"duration":312,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c5ae3f39-fa35-4c69-a458-b62670aa1210","isHook":false,"skipped":false},{"title":"> [digifinex] tickers","fullTitle":" > [digifinex] without API keys > [digifinex] tickers","timedOut":false,"duration":45,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"968c4abe-8e0e-4bb1-9ee0-83fc6ea1a4b5","isHook":false,"skipped":false},{"title":"> [digifinex] orderBook","fullTitle":" > [digifinex] without API keys > [digifinex] orderBook","timedOut":false,"duration":2476,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"92284b0f-9cf8-4482-9746-2e6660ecdd88","isHook":false,"skipped":false},{"title":"> [digifinex] trades","fullTitle":" > [digifinex] without API keys > [digifinex] trades","timedOut":false,"duration":1006,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"97e5e182-a0ea-4584-a49e-1e14c30d7ce8","isHook":false,"skipped":false}],"suites":[],"passes":["7bcc03ca-0d19-498c-a258-3f23b49bdc0d","0c18e3c0-3278-4734-baa6-3c80f9db2e37","c5ae3f39-fa35-4c69-a458-b62670aa1210","968c4abe-8e0e-4bb1-9ee0-83fc6ea1a4b5","92284b0f-9cf8-4482-9746-2e6660ecdd88","97e5e182-a0ea-4584-a49e-1e14c30d7ce8"],"failures":[],"pending":[],"skipped":[],"duration":6180,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"0a3a691a-94a8-4fac-bb91-d187fce99914","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"e20945b7-8fac-4e78-8237-aa16baec8cdc","title":"> [dsx] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/dsx-test.js","file":"/test/generated/dsx-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [dsx] connect","fullTitle":" > [dsx] without API keys > [dsx] connect","timedOut":false,"duration":578,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4746368d-4a6f-4632-8f07-0bedd8b686cc","isHook":false,"skipped":false},{"title":"> [dsx] markets","fullTitle":" > [dsx] without API keys > [dsx] markets","timedOut":false,"duration":899,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"81e1919a-5670-4797-b642-d572518a1f73","isHook":false,"skipped":false},{"title":"> [dsx] ticker","fullTitle":" > [dsx] without API keys > [dsx] ticker","timedOut":false,"duration":2250,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bfef7495-904c-4c65-86af-cdb0d0c945e7","isHook":false,"skipped":false},{"title":"> [dsx] tickers","fullTitle":" > [dsx] without API keys > [dsx] tickers","timedOut":false,"duration":53,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ff4051ba-f33c-44aa-9d34-595328c0d2a4","isHook":false,"skipped":false},{"title":"> [dsx] orderBook","fullTitle":" > [dsx] without API keys > [dsx] orderBook","timedOut":false,"duration":1747,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f25349c9-a2d7-4079-ad5e-f5aa7f056856","isHook":false,"skipped":false},{"title":"> [dsx] trades","fullTitle":" > [dsx] without API keys > [dsx] trades","timedOut":false,"duration":1339,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1687cc4e-d11a-4d63-9fa2-fe608cdcaf45","isHook":false,"skipped":false}],"suites":[],"passes":["4746368d-4a6f-4632-8f07-0bedd8b686cc","81e1919a-5670-4797-b642-d572518a1f73","bfef7495-904c-4c65-86af-cdb0d0c945e7","ff4051ba-f33c-44aa-9d34-595328c0d2a4","f25349c9-a2d7-4079-ad5e-f5aa7f056856","1687cc4e-d11a-4d63-9fa2-fe608cdcaf45"],"failures":[],"pending":[],"skipped":[],"duration":6866,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"b09ee256-b5f5-4324-a188-9a7513f43700","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"78572da6-f672-4f0e-8776-d0190693c9ab","title":"> [exmo] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/exmo-test.js","file":"/test/generated/exmo-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [exmo] connect","fullTitle":" > [exmo] without API keys > [exmo] connect","timedOut":false,"duration":97,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7deed976-fb05-492a-bdde-ffd6cf54b3f8","isHook":false,"skipped":false},{"title":"> [exmo] markets","fullTitle":" > [exmo] without API keys > [exmo] markets","timedOut":false,"duration":657,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b29ed00a-8302-44ff-9984-38041f766df6","isHook":false,"skipped":false},{"title":"> [exmo] ticker","fullTitle":" > [exmo] without API keys > [exmo] ticker","timedOut":false,"duration":1030,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cef978cd-fc9c-4e36-846a-88816946461a","isHook":false,"skipped":false},{"title":"> [exmo] tickers","fullTitle":" > [exmo] without API keys > [exmo] tickers","timedOut":false,"duration":282,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0e07fae0-a912-4b87-a790-d053d00d1199","isHook":false,"skipped":false},{"title":"> [exmo] orderBook","fullTitle":" > [exmo] without API keys > [exmo] orderBook","timedOut":false,"duration":226,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"af0d52b2-b232-4c13-972e-c854b2aa62e6","isHook":false,"skipped":false},{"title":"> [exmo] trades","fullTitle":" > [exmo] without API keys > [exmo] trades","timedOut":false,"duration":365,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fe7d63d8-6871-415c-abb9-1c743a3ffa57","isHook":false,"skipped":false}],"suites":[],"passes":["7deed976-fb05-492a-bdde-ffd6cf54b3f8","b29ed00a-8302-44ff-9984-38041f766df6","cef978cd-fc9c-4e36-846a-88816946461a","0e07fae0-a912-4b87-a790-d053d00d1199","af0d52b2-b232-4c13-972e-c854b2aa62e6","fe7d63d8-6871-415c-abb9-1c743a3ffa57"],"failures":[],"pending":[],"skipped":[],"duration":2657,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"2230333a-1f03-45e1-ae60-fc8bb3ba1ca7","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"269abacc-e645-488b-85ad-fa9bad7cfcf5","title":"> [exx] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/exx-test.js","file":"/test/generated/exx-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [exx] connect","fullTitle":" > [exx] without API keys > [exx] connect","timedOut":false,"duration":163,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bf18d00a-8b0c-49ec-b276-be6d63ed2629","isHook":false,"skipped":false},{"title":"> [exx] markets","fullTitle":" > [exx] without API keys > [exx] markets","timedOut":false,"duration":1263,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b1b6b4ad-0858-46d6-a645-959dad3e5d5c","isHook":false,"skipped":false},{"title":"> [exx] ticker","fullTitle":" > [exx] without API keys > [exx] ticker","timedOut":false,"duration":545,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7bd1d561-0b2b-4b35-943d-291540925b6c","isHook":false,"skipped":false},{"title":"> [exx] tickers","fullTitle":" > [exx] without API keys > [exx] tickers","timedOut":false,"duration":313,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dd7c8f93-70f0-4582-b097-4c9ebd1edae5","isHook":false,"skipped":false},{"title":"> [exx] orderBook","fullTitle":" > [exx] without API keys > [exx] orderBook","timedOut":false,"duration":279,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5b29a69b-2a04-4c9a-a63b-d4d97618b00f","isHook":false,"skipped":false},{"title":"> [exx] trades","fullTitle":" > [exx] without API keys > [exx] trades","timedOut":false,"duration":339,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2a3feb1d-dcf3-45a1-a3ac-eb6e20b53f5a","isHook":false,"skipped":false}],"suites":[],"passes":["bf18d00a-8b0c-49ec-b276-be6d63ed2629","b1b6b4ad-0858-46d6-a645-959dad3e5d5c","7bd1d561-0b2b-4b35-943d-291540925b6c","dd7c8f93-70f0-4582-b097-4c9ebd1edae5","5b29a69b-2a04-4c9a-a63b-d4d97618b00f","2a3feb1d-dcf3-45a1-a3ac-eb6e20b53f5a"],"failures":[],"pending":[],"skipped":[],"duration":2902,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"75310ad6-509d-4a93-8e23-19af4c645bd5","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"ba1c29bc-0998-43ec-adee-b7e32e76c6d9","title":"> [currencycom] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/currencycom-test.js","file":"/test/generated/currencycom-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [currencycom] connect","fullTitle":" > [currencycom] without API keys > [currencycom] connect","timedOut":false,"duration":212,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4c4a8517-b440-4ee5-aec4-ef057df68aa7","isHook":false,"skipped":false},{"title":"> [currencycom] markets","fullTitle":" > [currencycom] without API keys > [currencycom] markets","timedOut":false,"duration":2699,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8566d759-14f6-4ce3-a1d6-c27a89bff3df","isHook":false,"skipped":false},{"title":"> [currencycom] ticker","fullTitle":" > [currencycom] without API keys > [currencycom] ticker","timedOut":false,"duration":2680,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ca9a0e01-a06a-4001-8cfb-e43dc9eb7411","isHook":false,"skipped":false},{"title":"> [currencycom] tickers","fullTitle":" > [currencycom] without API keys > [currencycom] tickers","timedOut":false,"duration":1719,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5b8b77ef-1def-43c0-abee-f324ba168ba8","isHook":false,"skipped":false},{"title":"> [currencycom] orderBook","fullTitle":" > [currencycom] without API keys > [currencycom] orderBook","timedOut":false,"duration":1119,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bc3d942b-4614-457a-8131-fbd32c9a44e8","isHook":false,"skipped":false},{"title":"> [currencycom] trades","fullTitle":" > [currencycom] without API keys > [currencycom] trades","timedOut":false,"duration":1048,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bc1685a2-27bc-4cf8-b300-cde6ff30ae23","isHook":false,"skipped":false}],"suites":[],"passes":["4c4a8517-b440-4ee5-aec4-ef057df68aa7","8566d759-14f6-4ce3-a1d6-c27a89bff3df","ca9a0e01-a06a-4001-8cfb-e43dc9eb7411","5b8b77ef-1def-43c0-abee-f324ba168ba8","bc3d942b-4614-457a-8131-fbd32c9a44e8","bc1685a2-27bc-4cf8-b300-cde6ff30ae23"],"failures":[],"pending":[],"skipped":[],"duration":9477,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"eb72b61a-0623-415c-b291-f71db5aac266","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"1c29a45e-29d1-4bb8-8b71-98ececf83d3f","title":"> [crex24] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/crex24-test.js","file":"/test/generated/crex24-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [crex24] connect","fullTitle":" > [crex24] without API keys > [crex24] connect","timedOut":false,"duration":266,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"650bd11c-76a6-4735-9698-5ce9eddc7d4c","isHook":false,"skipped":false},{"title":"> [crex24] markets","fullTitle":" > [crex24] without API keys > [crex24] markets","timedOut":false,"duration":1427,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"855a81e4-0b6c-420b-96be-04dc63f8d3e4","isHook":false,"skipped":false},{"title":"> [crex24] ticker","fullTitle":" > [crex24] without API keys > [crex24] ticker","timedOut":false,"duration":3317,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6cd68e18-b7da-4473-aa24-95ed683bb89a","isHook":false,"skipped":false},{"title":"> [crex24] tickers","fullTitle":" > [crex24] without API keys > [crex24] tickers","timedOut":false,"duration":954,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"607e1438-0dd1-486a-b3d7-22e11a8b41ac","isHook":false,"skipped":false},{"title":"> [crex24] orderBook","fullTitle":" > [crex24] without API keys > [crex24] orderBook","timedOut":false,"duration":2486,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"21ab235a-060e-48a7-9aa9-6e8355a92fb5","isHook":false,"skipped":false},{"title":"> [crex24] trades","fullTitle":" > [crex24] without API keys > [crex24] trades","timedOut":false,"duration":2022,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5ac46686-3461-4665-aaf6-050adb6e3108","isHook":false,"skipped":false}],"suites":[],"passes":["650bd11c-76a6-4735-9698-5ce9eddc7d4c","855a81e4-0b6c-420b-96be-04dc63f8d3e4","6cd68e18-b7da-4473-aa24-95ed683bb89a","607e1438-0dd1-486a-b3d7-22e11a8b41ac","21ab235a-060e-48a7-9aa9-6e8355a92fb5","5ac46686-3461-4665-aaf6-050adb6e3108"],"failures":[],"pending":[],"skipped":[],"duration":10472,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"74c8da75-2564-4d23-a203-6da74ac4af40","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"717b5999-e9f1-4442-b864-4c6300237a37","title":"> [fcoin] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/fcoin-test.js","file":"/test/generated/fcoin-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [fcoin] connect","fullTitle":" > [fcoin] without API keys > [fcoin] connect","timedOut":false,"duration":349,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"26a5b232-1bd7-4e92-9f23-4889db2db74d","isHook":false,"skipped":false},{"title":"> [fcoin] markets","fullTitle":" > [fcoin] without API keys > [fcoin] markets","timedOut":false,"duration":1040,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6743b9d9-1494-42a9-aae9-23c382efa0a8","isHook":false,"skipped":false},{"title":"> [fcoin] ticker","fullTitle":" > [fcoin] without API keys > [fcoin] ticker","timedOut":false,"duration":1753,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0be07362-5f91-4fc0-b49c-6196b2b77da8","isHook":false,"skipped":false},{"title":"> [fcoin] tickers","fullTitle":" > [fcoin] without API keys > [fcoin] tickers","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"29478cf1-d1a6-47e0-869e-bfe99d7f5492","isHook":false,"skipped":false},{"title":"> [fcoin] orderBook","fullTitle":" > [fcoin] without API keys > [fcoin] orderBook","timedOut":false,"duration":40,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"35e1e392-3e27-4bc8-8c24-3bd6b1a5b3eb","isHook":false,"skipped":false},{"title":"> [fcoin] trades","fullTitle":" > [fcoin] without API keys > [fcoin] trades","timedOut":false,"duration":55,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d9360afd-a7b2-45eb-9dd1-282610a8181a","isHook":false,"skipped":false}],"suites":[],"passes":["26a5b232-1bd7-4e92-9f23-4889db2db74d","6743b9d9-1494-42a9-aae9-23c382efa0a8","0be07362-5f91-4fc0-b49c-6196b2b77da8","29478cf1-d1a6-47e0-869e-bfe99d7f5492","35e1e392-3e27-4bc8-8c24-3bd6b1a5b3eb","d9360afd-a7b2-45eb-9dd1-282610a8181a"],"failures":[],"pending":[],"skipped":[],"duration":3271,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"94698180-180c-40bf-a41d-9bfae23ee988","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"bf80b19b-8f48-4595-8e01-ed6dd65bed88","title":"> [fcoinjp] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/fcoinjp-test.js","file":"/test/generated/fcoinjp-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [fcoinjp] connect","fullTitle":" > [fcoinjp] without API keys > [fcoinjp] connect","timedOut":false,"duration":125,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a3bae64e-1c50-46ba-92b5-ed2f4b2a927b","isHook":false,"skipped":false},{"title":"> [fcoinjp] markets","fullTitle":" > [fcoinjp] without API keys > [fcoinjp] markets","timedOut":false,"duration":981,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2e0a7ebc-6964-4581-b40b-f6b474480b36","isHook":false,"skipped":false},{"title":"> [fcoinjp] ticker","fullTitle":" > [fcoinjp] without API keys > [fcoinjp] ticker","timedOut":false,"duration":1581,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d3fd650c-7d8f-4fa7-8f51-7e0d8e4992eb","isHook":false,"skipped":false},{"title":"> [fcoinjp] tickers","fullTitle":" > [fcoinjp] without API keys > [fcoinjp] tickers","timedOut":false,"duration":33,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fbce258f-0f7c-4041-a9f0-97000a0850ee","isHook":false,"skipped":false},{"title":"> [fcoinjp] orderBook","fullTitle":" > [fcoinjp] without API keys > [fcoinjp] orderBook","timedOut":false,"duration":132,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"34de0976-906b-4a08-805b-5eae64942199","isHook":false,"skipped":false},{"title":"> [fcoinjp] trades","fullTitle":" > [fcoinjp] without API keys > [fcoinjp] trades","timedOut":false,"duration":123,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"69ee88dd-a0f4-4ce1-8017-133953858555","isHook":false,"skipped":false}],"suites":[],"passes":["a3bae64e-1c50-46ba-92b5-ed2f4b2a927b","2e0a7ebc-6964-4581-b40b-f6b474480b36","d3fd650c-7d8f-4fa7-8f51-7e0d8e4992eb","fbce258f-0f7c-4041-a9f0-97000a0850ee","34de0976-906b-4a08-805b-5eae64942199","69ee88dd-a0f4-4ce1-8017-133953858555"],"failures":[],"pending":[],"skipped":[],"duration":2975,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"3cec43e9-37e1-43c2-b232-df25e4c6927e","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"7a4c981a-c7ed-43e3-9d04-0b75d7b8e5e8","title":"> [ftx] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/ftx-test.js","file":"/test/generated/ftx-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [ftx] connect","fullTitle":" > [ftx] without API keys > [ftx] connect","timedOut":false,"duration":347,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"453a282c-bdb9-4ba9-86bf-1fdf0f679937","isHook":false,"skipped":false},{"title":"> [ftx] markets","fullTitle":" > [ftx] without API keys > [ftx] markets","timedOut":false,"duration":807,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a96ed922-8293-4ce5-81ba-a977d2e4b317","isHook":false,"skipped":false},{"title":"> [ftx] ticker","fullTitle":" > [ftx] without API keys > [ftx] ticker","timedOut":false,"duration":401,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c3dbbd02-4c86-4750-b74b-15c8bcd18c0f","isHook":false,"skipped":false},{"title":"> [ftx] tickers","fullTitle":" > [ftx] without API keys > [ftx] tickers","timedOut":false,"duration":305,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8cd3bcb7-fa86-47a2-9130-ccde330a2d16","isHook":false,"skipped":false},{"title":"> [ftx] orderBook","fullTitle":" > [ftx] without API keys > [ftx] orderBook","timedOut":false,"duration":294,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"99a52aba-7246-4eca-9f84-22c60be29363","isHook":false,"skipped":false},{"title":"> [ftx] trades","fullTitle":" > [ftx] without API keys > [ftx] trades","timedOut":false,"duration":357,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"58717037-8a77-4395-b735-5081972c6933","isHook":false,"skipped":false}],"suites":[],"passes":["453a282c-bdb9-4ba9-86bf-1fdf0f679937","a96ed922-8293-4ce5-81ba-a977d2e4b317","c3dbbd02-4c86-4750-b74b-15c8bcd18c0f","8cd3bcb7-fa86-47a2-9130-ccde330a2d16","99a52aba-7246-4eca-9f84-22c60be29363","58717037-8a77-4395-b735-5081972c6933"],"failures":[],"pending":[],"skipped":[],"duration":2511,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"afa2604b-f037-45eb-accd-48a852e57285","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"f743c2e7-c00e-4d9f-96ff-cd5385f4f17e","title":"> [flowbtc] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/flowbtc-test.js","file":"/test/generated/flowbtc-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [flowbtc] connect","fullTitle":" > [flowbtc] without API keys > [flowbtc] connect","timedOut":false,"duration":124,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0d813e8c-9d9a-47c7-8201-d77703431cf1","isHook":false,"skipped":false},{"title":"> [flowbtc] markets","fullTitle":" > [flowbtc] without API keys > [flowbtc] markets","timedOut":false,"duration":3076,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"34dfbd54-d7d1-45c3-9d3c-1a89dd7dc457","isHook":false,"skipped":false},{"title":"> [flowbtc] ticker","fullTitle":" > [flowbtc] without API keys > [flowbtc] ticker","timedOut":false,"duration":1367,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"63a027e8-9e24-4820-a0fd-dcc54c174591","isHook":false,"skipped":false},{"title":"> [flowbtc] tickers","fullTitle":" > [flowbtc] without API keys > [flowbtc] tickers","timedOut":false,"duration":42,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f78016ab-a3dd-471c-a4a3-8d6f61fee512","isHook":false,"skipped":false},{"title":"> [flowbtc] orderBook","fullTitle":" > [flowbtc] without API keys > [flowbtc] orderBook","timedOut":false,"duration":77,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"745c04b1-ad95-47c0-8b97-d33ba96c1621","isHook":false,"skipped":false},{"title":"> [flowbtc] trades","fullTitle":" > [flowbtc] without API keys > [flowbtc] trades","timedOut":false,"duration":75,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"800c8dba-9d7b-43d5-a3da-579b9fec0c01","isHook":false,"skipped":false}],"suites":[],"passes":["0d813e8c-9d9a-47c7-8201-d77703431cf1","34dfbd54-d7d1-45c3-9d3c-1a89dd7dc457","63a027e8-9e24-4820-a0fd-dcc54c174591","f78016ab-a3dd-471c-a4a3-8d6f61fee512","745c04b1-ad95-47c0-8b97-d33ba96c1621","800c8dba-9d7b-43d5-a3da-579b9fec0c01"],"failures":[],"pending":[],"skipped":[],"duration":4761,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"3ab18d08-5104-497c-9c1c-113f26fcb1c3","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"9429c386-3a24-4cd2-a5a3-2d5f147db51b","title":"> [foxbit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/foxbit-test.js","file":"/test/generated/foxbit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [foxbit] connect","fullTitle":" > [foxbit] without API keys > [foxbit] connect","timedOut":false,"duration":93,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"61552902-e659-49e4-b58e-6e4363c7b129","isHook":false,"skipped":false},{"title":"> [foxbit] markets","fullTitle":" > [foxbit] without API keys > [foxbit] markets","timedOut":false,"duration":12,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e16f9205-d8b9-498b-a1a4-1cc5561d9da5","isHook":false,"skipped":false},{"title":"> [foxbit] ticker","fullTitle":" > [foxbit] without API keys > [foxbit] ticker","timedOut":false,"duration":143,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"490a4dda-d7f8-457b-8350-35fa72fdd8ff","isHook":false,"skipped":false},{"title":"> [foxbit] tickers","fullTitle":" > [foxbit] without API keys > [foxbit] tickers","timedOut":false,"duration":6,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a960a0ce-dfa1-4841-9564-a18eb675644c","isHook":false,"skipped":false},{"title":"> [foxbit] orderBook","fullTitle":" > [foxbit] without API keys > [foxbit] orderBook","timedOut":false,"duration":998,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0b139e04-0c67-47a1-93f4-f2c0f834b92e","isHook":false,"skipped":false},{"title":"> [foxbit] trades","fullTitle":" > [foxbit] without API keys > [foxbit] trades","timedOut":false,"duration":3916,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"539c9794-6384-4c05-a794-31f8dde7ba1c","isHook":false,"skipped":false}],"suites":[],"passes":["61552902-e659-49e4-b58e-6e4363c7b129","e16f9205-d8b9-498b-a1a4-1cc5561d9da5","490a4dda-d7f8-457b-8350-35fa72fdd8ff","a960a0ce-dfa1-4841-9564-a18eb675644c","0b139e04-0c67-47a1-93f4-f2c0f834b92e","539c9794-6384-4c05-a794-31f8dde7ba1c"],"failures":[],"pending":[],"skipped":[],"duration":5168,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"96e0b802-0360-4762-b50a-f0887262e538","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"bff347d4-5702-4e9c-9308-74754a6fc0a9","title":"> [hollaex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/hollaex-test.js","file":"/test/generated/hollaex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [hollaex] connect","fullTitle":" > [hollaex] without API keys > [hollaex] connect","timedOut":false,"duration":98,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ddb96a0a-a1e4-4318-adb7-8c2273b7b1da","isHook":false,"skipped":false},{"title":"> [hollaex] markets","fullTitle":" > [hollaex] without API keys > [hollaex] markets","timedOut":false,"duration":831,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2343aca1-8d84-40d8-baa2-1c23f3c124e8","isHook":false,"skipped":false},{"title":"> [hollaex] ticker","fullTitle":" > [hollaex] without API keys > [hollaex] ticker","timedOut":false,"duration":1213,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2077c21e-16fa-4d91-8d98-19e3b7240ddb","isHook":false,"skipped":false},{"title":"> [hollaex] tickers","fullTitle":" > [hollaex] without API keys > [hollaex] tickers","timedOut":false,"duration":278,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f7eeb972-9f9d-49d7-b471-4680bcceea2f","isHook":false,"skipped":false},{"title":"> [hollaex] orderBook","fullTitle":" > [hollaex] without API keys > [hollaex] orderBook","timedOut":false,"duration":218,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"018f6782-1c73-40e6-b167-4fc6c6466e89","isHook":false,"skipped":false},{"title":"> [hollaex] trades","fullTitle":" > [hollaex] without API keys > [hollaex] trades","timedOut":false,"duration":326,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"089a7bc4-b309-4058-960f-8bfb06be2121","isHook":false,"skipped":false}],"suites":[],"passes":["ddb96a0a-a1e4-4318-adb7-8c2273b7b1da","2343aca1-8d84-40d8-baa2-1c23f3c124e8","2077c21e-16fa-4d91-8d98-19e3b7240ddb","f7eeb972-9f9d-49d7-b471-4680bcceea2f","018f6782-1c73-40e6-b167-4fc6c6466e89","089a7bc4-b309-4058-960f-8bfb06be2121"],"failures":[],"pending":[],"skipped":[],"duration":2964,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"2d875d90-b9e2-42fb-93b5-7004ea992e87","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"08bdcb2d-6d6c-43cd-8442-475aedc4160c","title":"> [gateio] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/gateio-test.js","file":"/test/generated/gateio-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [gateio] connect","fullTitle":" > [gateio] without API keys > [gateio] connect","timedOut":false,"duration":134,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3aa29bac-f536-4a5c-b4d8-dc48103185e5","isHook":false,"skipped":false},{"title":"> [gateio] markets","fullTitle":" > [gateio] without API keys > [gateio] markets","timedOut":false,"duration":1716,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8dc9c4d5-1b03-465c-9455-177196c75242","isHook":false,"skipped":false},{"title":"> [gateio] ticker","fullTitle":" > [gateio] without API keys > [gateio] ticker","timedOut":false,"duration":2557,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1f87b3dc-eaac-40f9-b97e-8ff72a7da7fa","isHook":false,"skipped":false},{"title":"> [gateio] tickers","fullTitle":" > [gateio] without API keys > [gateio] tickers","timedOut":false,"duration":1470,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cd6c52d2-ddda-4a07-99d9-4381d6677eb6","isHook":false,"skipped":false},{"title":"> [gateio] orderBook","fullTitle":" > [gateio] without API keys > [gateio] orderBook","timedOut":false,"duration":527,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"08911916-2603-4da7-9f5a-ba4f57ed2dd2","isHook":false,"skipped":false},{"title":"> [gateio] trades","fullTitle":" > [gateio] without API keys > [gateio] trades","timedOut":false,"duration":992,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4fd4c3bb-04df-4174-b0b7-68e7cae9e834","isHook":false,"skipped":false}],"suites":[],"passes":["3aa29bac-f536-4a5c-b4d8-dc48103185e5","8dc9c4d5-1b03-465c-9455-177196c75242","1f87b3dc-eaac-40f9-b97e-8ff72a7da7fa","cd6c52d2-ddda-4a07-99d9-4381d6677eb6","08911916-2603-4da7-9f5a-ba4f57ed2dd2","4fd4c3bb-04df-4174-b0b7-68e7cae9e834"],"failures":[],"pending":[],"skipped":[],"duration":7396,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"fd944e0f-ea89-47f2-b311-1128203cac67","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"d7ba89e4-fca9-48ad-ad90-0a0db5c50eef","title":"> [fybse] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/fybse-test.js","file":"/test/generated/fybse-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [fybse] connect","fullTitle":" > [fybse] without API keys > [fybse] connect","timedOut":false,"duration":393,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e63fad60-7e34-4abd-9b39-0d79a2e11aa2","isHook":false,"skipped":false},{"title":"> [fybse] markets","fullTitle":" > [fybse] without API keys > [fybse] markets","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e6f3e20a-5466-48a4-a722-cc37e96c6257","isHook":false,"skipped":false},{"title":"> [fybse] ticker","fullTitle":" > [fybse] without API keys > [fybse] ticker","timedOut":false,"duration":1588,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e707ff46-e629-4cf3-92ad-ccb438faae4f","isHook":false,"skipped":false},{"title":"> [fybse] tickers","fullTitle":" > [fybse] without API keys > [fybse] tickers","timedOut":false,"duration":11,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c1690311-89e7-4e19-a64d-63723692d0a6","isHook":false,"skipped":false},{"title":"> [fybse] orderBook","fullTitle":" > [fybse] without API keys > [fybse] orderBook","timedOut":false,"duration":406,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"458b38df-5e6f-470b-af76-73d3e796362b","isHook":false,"skipped":false},{"title":"> [fybse] trades","fullTitle":" > [fybse] without API keys > [fybse] trades","timedOut":false,"duration":5878,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1472771d-d157-4c40-acfb-cf007b4c5600","isHook":false,"skipped":false}],"suites":[],"passes":["e63fad60-7e34-4abd-9b39-0d79a2e11aa2","e6f3e20a-5466-48a4-a722-cc37e96c6257","e707ff46-e629-4cf3-92ad-ccb438faae4f","c1690311-89e7-4e19-a64d-63723692d0a6","458b38df-5e6f-470b-af76-73d3e796362b","1472771d-d157-4c40-acfb-cf007b4c5600"],"failures":[],"pending":[],"skipped":[],"duration":8310,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"cc081376-c772-4a48-af0c-677939a0e8fc","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"33af70b3-d1d2-445f-9fd9-59cd9b0f0c3d","title":"> [gemini] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/gemini-test.js","file":"/test/generated/gemini-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [gemini] connect","fullTitle":" > [gemini] without API keys > [gemini] connect","timedOut":false,"duration":263,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e5f056e7-c12d-4f00-b4bb-9c360b3510f6","isHook":false,"skipped":false},{"title":"> [gemini] markets","fullTitle":" > [gemini] without API keys > [gemini] markets","timedOut":false,"duration":1556,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"12d4f2a4-745e-475e-b539-743a55019c1f","isHook":false,"skipped":false},{"title":"> [gemini] ticker","fullTitle":" > [gemini] without API keys > [gemini] ticker","timedOut":false,"duration":4825,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8624a1c7-edcd-4cc0-9a86-c851d607a862","isHook":false,"skipped":false},{"title":"> [gemini] tickers","fullTitle":" > [gemini] without API keys > [gemini] tickers","timedOut":false,"duration":9,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7404e026-de4c-44f0-abfb-8a88b16941cb","isHook":false,"skipped":false},{"title":"> [gemini] orderBook","fullTitle":" > [gemini] without API keys > [gemini] orderBook","timedOut":false,"duration":1488,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1386e9b6-f535-46cd-b368-1c5fc45924b3","isHook":false,"skipped":false},{"title":"> [gemini] trades","fullTitle":" > [gemini] without API keys > [gemini] trades","timedOut":false,"duration":1502,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2398a653-0676-465e-9787-350e63ec906d","isHook":false,"skipped":false}],"suites":[],"passes":["e5f056e7-c12d-4f00-b4bb-9c360b3510f6","12d4f2a4-745e-475e-b539-743a55019c1f","8624a1c7-edcd-4cc0-9a86-c851d607a862","7404e026-de4c-44f0-abfb-8a88b16941cb","1386e9b6-f535-46cd-b368-1c5fc45924b3","2398a653-0676-465e-9787-350e63ec906d"],"failures":[],"pending":[],"skipped":[],"duration":9643,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"625941ea-c6f2-497b-b5b2-5bebed3bb6c4","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"db9a560e-a56e-4bc6-ab5b-8ba2244e415d","title":"> [hbtc] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/hbtc-test.js","file":"/test/generated/hbtc-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [hbtc] connect","fullTitle":" > [hbtc] without API keys > [hbtc] connect","timedOut":false,"duration":511,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"601e994f-f984-443a-bd3b-16b5ae8ece65","isHook":false,"skipped":false},{"title":"> [hbtc] markets","fullTitle":" > [hbtc] without API keys > [hbtc] markets","timedOut":false,"duration":1289,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a9d17c32-0fc4-445d-8731-4d823dd9ae4e","isHook":false,"skipped":false},{"title":"> [hbtc] ticker","fullTitle":" > [hbtc] without API keys > [hbtc] ticker","timedOut":false,"duration":3125,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8298423c-6ddf-4a90-bebf-56554f099002","isHook":false,"skipped":false},{"title":"> [hbtc] tickers","fullTitle":" > [hbtc] without API keys > [hbtc] tickers","timedOut":false,"duration":1998,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"df31890d-f195-425a-9591-4a673f6c9be1","isHook":false,"skipped":false},{"title":"> [hbtc] orderBook","fullTitle":" > [hbtc] without API keys > [hbtc] orderBook","timedOut":false,"duration":1992,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6a0438ce-d979-4fa2-8f97-b90db9591db6","isHook":false,"skipped":false},{"title":"> [hbtc] trades","fullTitle":" > [hbtc] without API keys > [hbtc] trades","timedOut":false,"duration":1971,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a4b94d4a-6ff3-4d58-98aa-accc7c62e225","isHook":false,"skipped":false}],"suites":[],"passes":["601e994f-f984-443a-bd3b-16b5ae8ece65","a9d17c32-0fc4-445d-8731-4d823dd9ae4e","8298423c-6ddf-4a90-bebf-56554f099002","df31890d-f195-425a-9591-4a673f6c9be1","6a0438ce-d979-4fa2-8f97-b90db9591db6","a4b94d4a-6ff3-4d58-98aa-accc7c62e225"],"failures":[],"pending":[],"skipped":[],"duration":10886,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"4fdb013b-f8fb-459c-a1eb-648372789017","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"d7dbcdb1-cbbd-4eba-b1d0-7bd59f530b20","title":"> [hitbtc] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/hitbtc-test.js","file":"/test/generated/hitbtc-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [hitbtc] connect","fullTitle":" > [hitbtc] without API keys > [hitbtc] connect","timedOut":false,"duration":125,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6480f429-318a-4f13-afd3-d4f35bc4cc09","isHook":false,"skipped":false},{"title":"> [hitbtc] markets","fullTitle":" > [hitbtc] without API keys > [hitbtc] markets","timedOut":false,"duration":1091,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0b19bd8d-b99f-4d40-98c9-2420001d03c2","isHook":false,"skipped":false},{"title":"> [hitbtc] ticker","fullTitle":" > [hitbtc] without API keys > [hitbtc] ticker","timedOut":false,"duration":3541,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4502c441-d5b7-4194-9149-3e4c26d49dc8","isHook":false,"skipped":false},{"title":"> [hitbtc] tickers","fullTitle":" > [hitbtc] without API keys > [hitbtc] tickers","timedOut":false,"duration":1690,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3b58239e-b8e0-46d8-9656-50b47af9cc80","isHook":false,"skipped":false},{"title":"> [hitbtc] orderBook","fullTitle":" > [hitbtc] without API keys > [hitbtc] orderBook","timedOut":false,"duration":1362,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cf7282ba-6539-4c55-9ada-a706679fbc04","isHook":false,"skipped":false},{"title":"> [hitbtc] trades","fullTitle":" > [hitbtc] without API keys > [hitbtc] trades","timedOut":false,"duration":1656,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c490fc5a-b112-4187-992d-b9308173af79","isHook":false,"skipped":false}],"suites":[],"passes":["6480f429-318a-4f13-afd3-d4f35bc4cc09","0b19bd8d-b99f-4d40-98c9-2420001d03c2","4502c441-d5b7-4194-9149-3e4c26d49dc8","3b58239e-b8e0-46d8-9656-50b47af9cc80","cf7282ba-6539-4c55-9ada-a706679fbc04","c490fc5a-b112-4187-992d-b9308173af79"],"failures":[],"pending":[],"skipped":[],"duration":9465,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"21c5c4cd-ec86-4cd9-9fda-05c0d53d7e40","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"4ba8eb91-20a6-4d7b-ae3d-9bb45aa0d759","title":"> [ice3x] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/ice3x-test.js","file":"/test/generated/ice3x-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [ice3x] connect","fullTitle":" > [ice3x] without API keys > [ice3x] connect","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3519fc31-26bf-440d-ac37-60995df3c6c8","isHook":false,"skipped":false},{"title":"> [ice3x] markets","fullTitle":" > [ice3x] without API keys > [ice3x] markets","timedOut":false,"duration":1702,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f526753a-6088-4b2c-b6e6-04c6bea8f169","isHook":false,"skipped":false},{"title":"> [ice3x] ticker","fullTitle":" > [ice3x] without API keys > [ice3x] ticker","timedOut":false,"duration":2698,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a98cec91-0c2b-4c80-8887-8b71fb4d4138","isHook":false,"skipped":false},{"title":"> [ice3x] tickers","fullTitle":" > [ice3x] without API keys > [ice3x] tickers","timedOut":false,"duration":1046,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"020ec034-12e4-4a1c-ac57-e2eb40e085b1","isHook":false,"skipped":false},{"title":"> [ice3x] orderBook","fullTitle":" > [ice3x] without API keys > [ice3x] orderBook","timedOut":false,"duration":1051,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ac7be5cb-04e7-49f5-944a-c554d2c15509","isHook":false,"skipped":false},{"title":"> [ice3x] trades","fullTitle":" > [ice3x] without API keys > [ice3x] trades","timedOut":false,"duration":928,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"96880c19-a981-452a-a472-48f3defc7e08","isHook":false,"skipped":false}],"suites":[],"passes":["3519fc31-26bf-440d-ac37-60995df3c6c8","f526753a-6088-4b2c-b6e6-04c6bea8f169","a98cec91-0c2b-4c80-8887-8b71fb4d4138","020ec034-12e4-4a1c-ac57-e2eb40e085b1","ac7be5cb-04e7-49f5-944a-c554d2c15509","96880c19-a981-452a-a472-48f3defc7e08"],"failures":[],"pending":[],"skipped":[],"duration":7459,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"22390e2c-0bc6-4e09-b3a8-46e1f3a1ae61","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"1942c68c-f46f-4136-8068-9f0c272df3a0","title":"> [independentreserve] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/independentreserve-test.js","file":"/test/generated/independentreserve-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [independentreserve] connect","fullTitle":" > [independentreserve] without API keys > [independentreserve] connect","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5841d3c8-8916-4eb2-8a01-f0bfb87fcd6d","isHook":false,"skipped":false},{"title":"> [independentreserve] markets","fullTitle":" > [independentreserve] without API keys > [independentreserve] markets","timedOut":false,"duration":1198,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0b996ff2-8622-4611-87e5-63433f1c88bf","isHook":false,"skipped":false},{"title":"> [independentreserve] ticker","fullTitle":" > [independentreserve] without API keys > [independentreserve] ticker","timedOut":false,"duration":2993,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"128dd008-73c7-4983-9c69-fe13b2b0d376","isHook":false,"skipped":false},{"title":"> [independentreserve] tickers","fullTitle":" > [independentreserve] without API keys > [independentreserve] tickers","timedOut":false,"duration":11,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f6d037d3-5aae-46b2-a48e-25b7f717b991","isHook":false,"skipped":false},{"title":"> [independentreserve] orderBook","fullTitle":" > [independentreserve] without API keys > [independentreserve] orderBook","timedOut":false,"duration":1404,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ec022bf5-65ef-430c-8565-1144d341cd0e","isHook":false,"skipped":false},{"title":"> [independentreserve] trades","fullTitle":" > [independentreserve] without API keys > [independentreserve] trades","timedOut":false,"duration":584,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"64c3288a-5e2e-478c-97ea-11793d6c0ddc","isHook":false,"skipped":false}],"suites":[],"passes":["5841d3c8-8916-4eb2-8a01-f0bfb87fcd6d","0b996ff2-8622-4611-87e5-63433f1c88bf","128dd008-73c7-4983-9c69-fe13b2b0d376","f6d037d3-5aae-46b2-a48e-25b7f717b991","ec022bf5-65ef-430c-8565-1144d341cd0e","64c3288a-5e2e-478c-97ea-11793d6c0ddc"],"failures":[],"pending":[],"skipped":[],"duration":6224,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d531170a-eec3-471f-b8a1-4e7f8fa10913","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b83ddd02-49f0-46b3-a2a6-21f8dc6fc6db","title":"> [huobipro] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/huobipro-test.js","file":"/test/generated/huobipro-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [huobipro] connect","fullTitle":" > [huobipro] without API keys > [huobipro] connect","timedOut":false,"duration":100,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"47c88e88-ff71-4f72-9ff0-726b6e7e7375","isHook":false,"skipped":false},{"title":"> [huobipro] markets","fullTitle":" > [huobipro] without API keys > [huobipro] markets","timedOut":false,"duration":539,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d8c3ea79-0db8-4e39-946f-0cb13e91756f","isHook":false,"skipped":false},{"title":"> [huobipro] ticker","fullTitle":" > [huobipro] without API keys > [huobipro] ticker","timedOut":false,"duration":5588,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"30bd29e1-2196-4ccb-9a89-c031ed030d4d","isHook":false,"skipped":false},{"title":"> [huobipro] tickers","fullTitle":" > [huobipro] without API keys > [huobipro] tickers","timedOut":false,"duration":2172,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2362e6d3-2f43-4751-80a3-b65fcc2a5e2a","isHook":false,"skipped":false},{"title":"> [huobipro] orderBook","fullTitle":" > [huobipro] without API keys > [huobipro] orderBook","timedOut":false,"duration":1827,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"06fc15b5-ada2-4640-ab67-7b26724d2269","isHook":false,"skipped":false},{"title":"> [huobipro] trades","fullTitle":" > [huobipro] without API keys > [huobipro] trades","timedOut":false,"duration":2133,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dd277a09-d7f9-45d7-911b-458db044a73a","isHook":false,"skipped":false}],"suites":[],"passes":["47c88e88-ff71-4f72-9ff0-726b6e7e7375","d8c3ea79-0db8-4e39-946f-0cb13e91756f","30bd29e1-2196-4ccb-9a89-c031ed030d4d","2362e6d3-2f43-4751-80a3-b65fcc2a5e2a","06fc15b5-ada2-4640-ab67-7b26724d2269","dd277a09-d7f9-45d7-911b-458db044a73a"],"failures":[],"pending":[],"skipped":[],"duration":12359,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"0754be0d-3b8f-4aae-9eb7-61e544d09ec5","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"ee661025-ab38-4a21-8e2b-b97de657e76c","title":"> [itbit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/itbit-test.js","file":"/test/generated/itbit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [itbit] connect","fullTitle":" > [itbit] without API keys > [itbit] connect","timedOut":false,"duration":32,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"da0fa623-14af-4106-8a53-17a6c3633840","isHook":false,"skipped":false},{"title":"> [itbit] markets","fullTitle":" > [itbit] without API keys > [itbit] markets","timedOut":false,"duration":7,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ce1c8f56-4851-4981-9e19-9d819feb63cd","isHook":false,"skipped":false},{"title":"> [itbit] ticker","fullTitle":" > [itbit] without API keys > [itbit] ticker","timedOut":false,"duration":407,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"21ef94e7-5bf6-40c7-a9c5-1d775cd63d60","isHook":false,"skipped":false},{"title":"> [itbit] tickers","fullTitle":" > [itbit] without API keys > [itbit] tickers","timedOut":false,"duration":10,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5b583e10-e9f6-4fef-8440-059999b16392","isHook":false,"skipped":false},{"title":"> [itbit] orderBook","fullTitle":" > [itbit] without API keys > [itbit] orderBook","timedOut":false,"duration":1732,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dafaf720-c41c-4ea4-b413-827cee3d8faa","isHook":false,"skipped":false},{"title":"> [itbit] trades","fullTitle":" > [itbit] without API keys > [itbit] trades","timedOut":false,"duration":2225,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"31bdd3fd-f39c-4bec-9a87-ed4de3de20f9","isHook":false,"skipped":false}],"suites":[],"passes":["da0fa623-14af-4106-8a53-17a6c3633840","ce1c8f56-4851-4981-9e19-9d819feb63cd","21ef94e7-5bf6-40c7-a9c5-1d775cd63d60","5b583e10-e9f6-4fef-8440-059999b16392","dafaf720-c41c-4ea4-b413-827cee3d8faa","31bdd3fd-f39c-4bec-9a87-ed4de3de20f9"],"failures":[],"pending":[],"skipped":[],"duration":4413,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"81ec59ea-212e-4c70-841d-2fd4152580f6","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"e5124726-47fc-4f16-bdba-7abf65a6b2f5","title":"> [indodax] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/indodax-test.js","file":"/test/generated/indodax-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [indodax] connect","fullTitle":" > [indodax] without API keys > [indodax] connect","timedOut":false,"duration":145,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"27f7a2a5-3127-450d-9adc-abecd7957008","isHook":false,"skipped":false},{"title":"> [indodax] markets","fullTitle":" > [indodax] without API keys > [indodax] markets","timedOut":false,"duration":31,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f807747f-8e93-403f-8dec-fd0d7e7ef32f","isHook":false,"skipped":false},{"title":"> [indodax] ticker","fullTitle":" > [indodax] without API keys > [indodax] ticker","timedOut":false,"duration":809,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"92ab56c8-2fa5-4df7-a4bd-18785ed8e533","isHook":false,"skipped":false},{"title":"> [indodax] tickers","fullTitle":" > [indodax] without API keys > [indodax] tickers","timedOut":false,"duration":5,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8b35b1c7-db4c-44cd-aa1d-46c62e0db4da","isHook":false,"skipped":false},{"title":"> [indodax] orderBook","fullTitle":" > [indodax] without API keys > [indodax] orderBook","timedOut":false,"duration":1762,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dca35735-cae8-4f7f-9a65-c741126512ef","isHook":false,"skipped":false},{"title":"> [indodax] trades","fullTitle":" > [indodax] without API keys > [indodax] trades","timedOut":false,"duration":2307,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9199e204-472a-4c66-a606-aa71a4d5ee04","isHook":false,"skipped":false}],"suites":[],"passes":["27f7a2a5-3127-450d-9adc-abecd7957008","f807747f-8e93-403f-8dec-fd0d7e7ef32f","92ab56c8-2fa5-4df7-a4bd-18785ed8e533","8b35b1c7-db4c-44cd-aa1d-46c62e0db4da","dca35735-cae8-4f7f-9a65-c741126512ef","9199e204-472a-4c66-a606-aa71a4d5ee04"],"failures":[],"pending":[],"skipped":[],"duration":5059,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"6b7c217b-cc36-4f38-8b29-d368057ce08c","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"fa6d01dd-237b-4dc4-a294-e81bdc4fcb93","title":"> [btctradeim] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/btctradeim-test.js","file":"/test/generated/btctradeim-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [btctradeim] connect","fullTitle":" > [btctradeim] without API keys > [btctradeim] connect","timedOut":false,"duration":118,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0ebc66e7-7e67-4ed9-b610-2894377bda96","isHook":false,"skipped":false},{"title":"> [btctradeim] markets","fullTitle":" > [btctradeim] without API keys > [btctradeim] markets","timedOut":false,"duration":40038,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bfd18325-a10b-422b-b35a-c17b8f10e9c1","isHook":false,"skipped":false},{"title":"> [btctradeim] ticker","fullTitle":" > [btctradeim] without API keys > [btctradeim] ticker","timedOut":false,"duration":10027,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f587b11c-2ffd-4a05-9c65-d4410ed3aea5","isHook":false,"skipped":false},{"title":"> [btctradeim] tickers","fullTitle":" > [btctradeim] without API keys > [btctradeim] tickers","timedOut":false,"duration":7,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8e0fd086-a2f9-47b9-bd17-12974dabdba6","isHook":false,"skipped":false},{"title":"> [btctradeim] orderBook","fullTitle":" > [btctradeim] without API keys > [btctradeim] orderBook","timedOut":false,"duration":20,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0b360aff-f470-480e-81c7-5b2be08232d8","isHook":false,"skipped":false},{"title":"> [btctradeim] trades","fullTitle":" > [btctradeim] without API keys > [btctradeim] trades","timedOut":false,"duration":28,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1dda7c61-9da0-4881-9531-187c32efdb0c","isHook":false,"skipped":false}],"suites":[],"passes":["0ebc66e7-7e67-4ed9-b610-2894377bda96","bfd18325-a10b-422b-b35a-c17b8f10e9c1","f587b11c-2ffd-4a05-9c65-d4410ed3aea5","8e0fd086-a2f9-47b9-bd17-12974dabdba6","0b360aff-f470-480e-81c7-5b2be08232d8","1dda7c61-9da0-4881-9531-187c32efdb0c"],"failures":[],"pending":[],"skipped":[],"duration":50238,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"263d8062-f845-4d58-b448-d1d42eefcadc","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"91617fa5-59df-4a7d-9ee6-1b1c8958af81","title":"> [huobiru] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/huobiru-test.js","file":"/test/generated/huobiru-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [huobiru] connect","fullTitle":" > [huobiru] without API keys > [huobiru] connect","timedOut":false,"duration":41,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"42c8d4d4-9b7d-42b4-b01d-f4c7d47a74c3","isHook":false,"skipped":false},{"title":"> [huobiru] markets","fullTitle":" > [huobiru] without API keys > [huobiru] markets","timedOut":false,"duration":504,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7cf22285-886c-4968-a74e-3e33ebc614fe","isHook":false,"skipped":false},{"title":"> [huobiru] ticker","fullTitle":" > [huobiru] without API keys > [huobiru] ticker","timedOut":false,"duration":5730,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f9bf5302-e991-422d-adf2-c310370084ee","isHook":false,"skipped":false},{"title":"> [huobiru] tickers","fullTitle":" > [huobiru] without API keys > [huobiru] tickers","timedOut":false,"duration":1967,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6bea601c-3d2f-4da5-bd40-bd2bdcbcf6de","isHook":false,"skipped":false},{"title":"> [huobiru] orderBook","fullTitle":" > [huobiru] without API keys > [huobiru] orderBook","timedOut":false,"duration":2019,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1cece7d0-5a97-410e-bba0-a33245518ae4","isHook":false,"skipped":false},{"title":"> [huobiru] trades","fullTitle":" > [huobiru] without API keys > [huobiru] trades","timedOut":false,"duration":2120,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bbac17b0-7bdc-4738-ac55-92064b9fc2b1","isHook":false,"skipped":false}],"suites":[],"passes":["42c8d4d4-9b7d-42b4-b01d-f4c7d47a74c3","7cf22285-886c-4968-a74e-3e33ebc614fe","f9bf5302-e991-422d-adf2-c310370084ee","6bea601c-3d2f-4da5-bd40-bd2bdcbcf6de","1cece7d0-5a97-410e-bba0-a33245518ae4","bbac17b0-7bdc-4738-ac55-92064b9fc2b1"],"failures":[],"pending":[],"skipped":[],"duration":12381,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"06f8877d-1abb-4779-bf71-baa992c4d91c","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"42aff18f-0d03-4180-b971-3a1b40ba54c2","title":"> [kucoin] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/kucoin-test.js","file":"/test/generated/kucoin-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [kucoin] connect","fullTitle":" > [kucoin] without API keys > [kucoin] connect","timedOut":false,"duration":185,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"04f4fba8-ff42-43d9-8213-305395a4bf35","isHook":false,"skipped":false},{"title":"> [kucoin] markets","fullTitle":" > [kucoin] without API keys > [kucoin] markets","timedOut":false,"duration":498,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4d0ce6f6-4e0a-4a92-be3d-3a351219897a","isHook":false,"skipped":false},{"title":"> [kucoin] ticker","fullTitle":" > [kucoin] without API keys > [kucoin] ticker","timedOut":false,"duration":950,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e81b5612-ac03-4e82-90a9-434c76c5695e","isHook":false,"skipped":false},{"title":"> [kucoin] tickers","fullTitle":" > [kucoin] without API keys > [kucoin] tickers","timedOut":false,"duration":867,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9a67a53f-343c-4099-bdf7-539edd9b2883","isHook":false,"skipped":false},{"title":"> [kucoin] orderBook","fullTitle":" > [kucoin] without API keys > [kucoin] orderBook","timedOut":false,"duration":329,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ca25beba-98ca-40ee-9d59-536b2ab429be","isHook":false,"skipped":false},{"title":"> [kucoin] trades","fullTitle":" > [kucoin] without API keys > [kucoin] trades","timedOut":false,"duration":592,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ecb0d371-c90b-4a6d-a020-dc9ca15d128e","isHook":false,"skipped":false}],"suites":[],"passes":["04f4fba8-ff42-43d9-8213-305395a4bf35","4d0ce6f6-4e0a-4a92-be3d-3a351219897a","e81b5612-ac03-4e82-90a9-434c76c5695e","9a67a53f-343c-4099-bdf7-539edd9b2883","ca25beba-98ca-40ee-9d59-536b2ab429be","ecb0d371-c90b-4a6d-a020-dc9ca15d128e"],"failures":[],"pending":[],"skipped":[],"duration":3421,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d569fc59-8f65-4fe2-bf4c-ef692500a8c7","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"cc412da8-3701-4189-bf44-f70d7bbd1c72","title":"> [idex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/idex-test.js","file":"/test/generated/idex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [idex] connect","fullTitle":" > [idex] without API keys > [idex] connect","timedOut":false,"duration":44,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a649ded3-13d1-4dfc-905c-4484708ff4bf","isHook":false,"skipped":false},{"title":"> [idex] markets","fullTitle":" > [idex] without API keys > [idex] markets","timedOut":false,"duration":253,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0c93e354-3ea1-4be1-9b8b-90ad4e06b2ed","isHook":false,"skipped":false},{"title":"> [idex] ticker","fullTitle":" > [idex] without API keys > [idex] ticker","timedOut":false,"duration":2817,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bb7dfb83-0bfb-491f-b341-31a6085bf684","isHook":false,"skipped":false},{"title":"> [idex] tickers","fullTitle":" > [idex] without API keys > [idex] tickers","timedOut":false,"duration":1623,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b15d893c-fb62-4a06-bd2c-70111dcdd21b","isHook":false,"skipped":false},{"title":"> [idex] orderBook","fullTitle":" > [idex] without API keys > [idex] orderBook","timedOut":false,"duration":1394,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f34381ac-faa6-4354-b027-931b0d5a7649","isHook":false,"skipped":false},{"title":"> [idex] trades","fullTitle":" > [idex] without API keys > [idex] trades","timedOut":false,"duration":7405,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1a4a46a8-8332-405a-bc79-74178428cff0","isHook":false,"skipped":false}],"suites":[],"passes":["a649ded3-13d1-4dfc-905c-4484708ff4bf","0c93e354-3ea1-4be1-9b8b-90ad4e06b2ed","bb7dfb83-0bfb-491f-b341-31a6085bf684","b15d893c-fb62-4a06-bd2c-70111dcdd21b","f34381ac-faa6-4354-b027-931b0d5a7649","1a4a46a8-8332-405a-bc79-74178428cff0"],"failures":[],"pending":[],"skipped":[],"duration":13536,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"4b34dcb6-ee56-42e4-a86f-e9d6d8ba2e4c","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"a679a0ab-a576-4b46-9894-91e17d630c74","title":"> [coinmarketcap] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coinmarketcap-test.js","file":"/test/generated/coinmarketcap-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coinmarketcap] connect","fullTitle":" > [coinmarketcap] without API keys > [coinmarketcap] connect","timedOut":false,"duration":83,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0a41dd19-eabd-4c80-9d55-8845e040f329","isHook":false,"skipped":false},{"title":"> [coinmarketcap] markets","fullTitle":" > [coinmarketcap] without API keys > [coinmarketcap] markets","timedOut":false,"duration":30032,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6d7965c9-430a-415a-b913-6c222b1184de","isHook":false,"skipped":false},{"title":"> [coinmarketcap] ticker","fullTitle":" > [coinmarketcap] without API keys > [coinmarketcap] ticker","timedOut":false,"duration":10023,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4d4302c3-cb17-4a4a-9488-a5e02bfa2aee","isHook":false,"skipped":false},{"title":"> [coinmarketcap] tickers","fullTitle":" > [coinmarketcap] without API keys > [coinmarketcap] tickers","timedOut":false,"duration":23,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cfdf80f2-d4cb-47f0-86f9-0679cad20b06","isHook":false,"skipped":false},{"title":"> [coinmarketcap] orderBook","fullTitle":" > [coinmarketcap] without API keys > [coinmarketcap] orderBook","timedOut":false,"duration":5,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3e020e3a-6426-41c9-bffd-6e0f7ade4a62","isHook":false,"skipped":false},{"title":"> [coinmarketcap] trades","fullTitle":" > [coinmarketcap] without API keys > [coinmarketcap] trades","timedOut":false,"duration":5,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2a648e49-fbee-450a-bd3c-fca0babe4fb9","isHook":false,"skipped":false}],"suites":[],"passes":["0a41dd19-eabd-4c80-9d55-8845e040f329","6d7965c9-430a-415a-b913-6c222b1184de","4d4302c3-cb17-4a4a-9488-a5e02bfa2aee","cfdf80f2-d4cb-47f0-86f9-0679cad20b06","3e020e3a-6426-41c9-bffd-6e0f7ade4a62","2a648e49-fbee-450a-bd3c-fca0babe4fb9"],"failures":[],"pending":[],"skipped":[],"duration":40171,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"8b95bb7f-ebf9-4496-bb3f-a62167610765","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"81046881-be69-4402-999a-1c308f9e9ede","title":"> [kuna] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/kuna-test.js","file":"/test/generated/kuna-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [kuna] connect","fullTitle":" > [kuna] without API keys > [kuna] connect","timedOut":false,"duration":36,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"affe349d-0d3e-4673-ae7e-e60974f8f825","isHook":false,"skipped":false},{"title":"> [kuna] markets","fullTitle":" > [kuna] without API keys > [kuna] markets","timedOut":false,"duration":492,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5753f86f-cb12-43b3-b4d3-808f554d7873","isHook":false,"skipped":false},{"title":"> [kuna] ticker","fullTitle":" > [kuna] without API keys > [kuna] ticker","timedOut":false,"duration":1662,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2191bbcd-0755-401f-be98-3870c4f55daa","isHook":false,"skipped":false},{"title":"> [kuna] tickers","fullTitle":" > [kuna] without API keys > [kuna] tickers","timedOut":false,"duration":1174,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d61c336d-2f04-4696-991d-f277d87b81e9","isHook":false,"skipped":false},{"title":"> [kuna] orderBook","fullTitle":" > [kuna] without API keys > [kuna] orderBook","timedOut":false,"duration":845,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1e800db9-8bb2-49ef-b707-5a3ad53b8c0d","isHook":false,"skipped":false},{"title":"> [kuna] trades","fullTitle":" > [kuna] without API keys > [kuna] trades","timedOut":false,"duration":981,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"549a6f41-ca07-49ab-afb1-082789db17d3","isHook":false,"skipped":false}],"suites":[],"passes":["affe349d-0d3e-4673-ae7e-e60974f8f825","5753f86f-cb12-43b3-b4d3-808f554d7873","2191bbcd-0755-401f-be98-3870c4f55daa","d61c336d-2f04-4696-991d-f277d87b81e9","1e800db9-8bb2-49ef-b707-5a3ad53b8c0d","549a6f41-ca07-49ab-afb1-082789db17d3"],"failures":[],"pending":[],"skipped":[],"duration":5190,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"2694d2c4-8f94-44c9-9e98-e01c6733506a","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"fd77da61-625b-4678-b001-380425e88438","title":"> [lakebtc] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/lakebtc-test.js","file":"/test/generated/lakebtc-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [lakebtc] connect","fullTitle":" > [lakebtc] without API keys > [lakebtc] connect","timedOut":false,"duration":36,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0f9e2910-894c-4653-ba73-507fb4deb6ca","isHook":false,"skipped":false},{"title":"> [lakebtc] markets","fullTitle":" > [lakebtc] without API keys > [lakebtc] markets","timedOut":false,"duration":362,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ede91d3f-e6ab-44ba-abaf-99c2c46cf2f2","isHook":false,"skipped":false},{"title":"> [lakebtc] ticker","fullTitle":" > [lakebtc] without API keys > [lakebtc] ticker","timedOut":false,"duration":1775,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"729700b9-1980-449e-a0e8-502da2e1c3e7","isHook":false,"skipped":false},{"title":"> [lakebtc] tickers","fullTitle":" > [lakebtc] without API keys > [lakebtc] tickers","timedOut":false,"duration":1002,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"4993939f-0a1e-4c9b-b268-49572f62237f","isHook":false,"skipped":false},{"title":"> [lakebtc] orderBook","fullTitle":" > [lakebtc] without API keys > [lakebtc] orderBook","timedOut":false,"duration":995,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5fc541dc-2365-4101-acb6-3565eb1ea118","isHook":false,"skipped":false},{"title":"> [lakebtc] trades","fullTitle":" > [lakebtc] without API keys > [lakebtc] trades","timedOut":false,"duration":1127,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1894a868-a02c-4b71-a51c-66f7186acb8d","isHook":false,"skipped":false}],"suites":[],"passes":["0f9e2910-894c-4653-ba73-507fb4deb6ca","ede91d3f-e6ab-44ba-abaf-99c2c46cf2f2","729700b9-1980-449e-a0e8-502da2e1c3e7","4993939f-0a1e-4c9b-b268-49572f62237f","5fc541dc-2365-4101-acb6-3565eb1ea118","1894a868-a02c-4b71-a51c-66f7186acb8d"],"failures":[],"pending":[],"skipped":[],"duration":5297,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ca2f32b3-dfd3-4905-aaf8-c0516a8cd678","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"699a492e-1380-4e98-975b-7e0405bddb65","title":"> [kkex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/kkex-test.js","file":"/test/generated/kkex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [kkex] connect","fullTitle":" > [kkex] without API keys > [kkex] connect","timedOut":false,"duration":35,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"34253394-94c1-4732-a259-3ccf7b4496a1","isHook":false,"skipped":false},{"title":"> [kkex] markets","fullTitle":" > [kkex] without API keys > [kkex] markets","timedOut":false,"duration":2420,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"48201d7a-674b-4dd4-838c-37c9a22f50c1","isHook":false,"skipped":false},{"title":"> [kkex] ticker","fullTitle":" > [kkex] without API keys > [kkex] ticker","timedOut":false,"duration":4038,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1ab3e0fe-fe52-411e-9917-021e86e8ea37","isHook":false,"skipped":false},{"title":"> [kkex] tickers","fullTitle":" > [kkex] without API keys > [kkex] tickers","timedOut":false,"duration":1951,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8ca0ff8d-7c39-4854-86cc-815a9d86caad","isHook":false,"skipped":false},{"title":"> [kkex] orderBook","fullTitle":" > [kkex] without API keys > [kkex] orderBook","timedOut":false,"duration":31,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a6c0b779-10bc-4e08-be2d-4159cd22a863","isHook":false,"skipped":false},{"title":"> [kkex] trades","fullTitle":" > [kkex] without API keys > [kkex] trades","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"31a1ef43-c385-40e0-92a8-9f4fe9716f51","isHook":false,"skipped":false}],"suites":[],"passes":["34253394-94c1-4732-a259-3ccf7b4496a1","48201d7a-674b-4dd4-838c-37c9a22f50c1","1ab3e0fe-fe52-411e-9917-021e86e8ea37","8ca0ff8d-7c39-4854-86cc-815a9d86caad","a6c0b779-10bc-4e08-be2d-4159cd22a863","31a1ef43-c385-40e0-92a8-9f4fe9716f51"],"failures":[],"pending":[],"skipped":[],"duration":8509,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"737d97d7-7659-46a1-8ff1-094e991371b9","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"61c19e7a-9fc2-4784-81d9-b9cdfb5014d2","title":"> [mercado] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/mercado-test.js","file":"/test/generated/mercado-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [mercado] connect","fullTitle":" > [mercado] without API keys > [mercado] connect","timedOut":false,"duration":35,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6762e6a7-53cc-468e-acfd-c3d8ca132d9e","isHook":false,"skipped":false},{"title":"> [mercado] markets","fullTitle":" > [mercado] without API keys > [mercado] markets","timedOut":false,"duration":6,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e009489a-9d4b-4b70-8a30-d84ffdfdea45","isHook":false,"skipped":false},{"title":"> [mercado] ticker","fullTitle":" > [mercado] without API keys > [mercado] ticker","timedOut":false,"duration":162,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e568862a-91a0-430e-be23-4719a72b0283","isHook":false,"skipped":false},{"title":"> [mercado] tickers","fullTitle":" > [mercado] without API keys > [mercado] tickers","timedOut":false,"duration":23,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ba349ac7-d693-4ecd-aef6-33758aebc0d7","isHook":false,"skipped":false},{"title":"> [mercado] orderBook","fullTitle":" > [mercado] without API keys > [mercado] orderBook","timedOut":false,"duration":824,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9010d986-5909-432a-8df6-8d37eb015284","isHook":false,"skipped":false},{"title":"> [mercado] trades","fullTitle":" > [mercado] without API keys > [mercado] trades","timedOut":false,"duration":1051,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1155ef88-c349-4f1c-8f8a-11d8cdef0ff5","isHook":false,"skipped":false}],"suites":[],"passes":["6762e6a7-53cc-468e-acfd-c3d8ca132d9e","e009489a-9d4b-4b70-8a30-d84ffdfdea45","e568862a-91a0-430e-be23-4719a72b0283","ba349ac7-d693-4ecd-aef6-33758aebc0d7","9010d986-5909-432a-8df6-8d37eb015284","1155ef88-c349-4f1c-8f8a-11d8cdef0ff5"],"failures":[],"pending":[],"skipped":[],"duration":2101,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"81b5ca91-a39d-47f0-a5fc-1271f14409ac","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"88196109-d850-4cd1-a24e-2322ad16f57c","title":"> [lykke] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/lykke-test.js","file":"/test/generated/lykke-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [lykke] connect","fullTitle":" > [lykke] without API keys > [lykke] connect","timedOut":false,"duration":125,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a630bba2-c275-4f88-8e33-f7f63c5f129c","isHook":false,"skipped":false},{"title":"> [lykke] markets","fullTitle":" > [lykke] without API keys > [lykke] markets","timedOut":false,"duration":686,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"38168e23-db2f-4c44-b732-b0dc63269768","isHook":false,"skipped":false},{"title":"> [lykke] ticker","fullTitle":" > [lykke] without API keys > [lykke] ticker","timedOut":false,"duration":660,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7bd520f5-09c2-414f-bda9-dbbb9c77597a","isHook":false,"skipped":false},{"title":"> [lykke] tickers","fullTitle":" > [lykke] without API keys > [lykke] tickers","timedOut":false,"duration":10,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"34464aed-c0b4-41bc-a8bd-e640cc6136d8","isHook":false,"skipped":false},{"title":"> [lykke] orderBook","fullTitle":" > [lykke] without API keys > [lykke] orderBook","timedOut":false,"duration":107,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2448bca9-d2ac-4865-82dc-3ff0db19b67a","isHook":false,"skipped":false},{"title":"> [lykke] trades","fullTitle":" > [lykke] without API keys > [lykke] trades","timedOut":false,"duration":1019,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"248f3752-294e-4cc9-b81e-ca56484137f4","isHook":false,"skipped":false}],"suites":[],"passes":["a630bba2-c275-4f88-8e33-f7f63c5f129c","38168e23-db2f-4c44-b732-b0dc63269768","7bd520f5-09c2-414f-bda9-dbbb9c77597a","34464aed-c0b4-41bc-a8bd-e640cc6136d8","2448bca9-d2ac-4865-82dc-3ff0db19b67a","248f3752-294e-4cc9-b81e-ca56484137f4"],"failures":[],"pending":[],"skipped":[],"duration":2607,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"30e271a6-3045-4ce1-a18b-7ad2b83a800b","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"3f7b192f-582d-4cb7-910b-75883bac7b1f","title":"> [mixcoins] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/mixcoins-test.js","file":"/test/generated/mixcoins-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [mixcoins] connect","fullTitle":" > [mixcoins] without API keys > [mixcoins] connect","timedOut":false,"duration":33,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3b65ac56-873f-4ff0-a06b-58906825370c","isHook":false,"skipped":false},{"title":"> [mixcoins] markets","fullTitle":" > [mixcoins] without API keys > [mixcoins] markets","timedOut":false,"duration":4,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c2430813-565e-4512-bf9f-04250770b1c7","isHook":false,"skipped":false},{"title":"> [mixcoins] ticker","fullTitle":" > [mixcoins] without API keys > [mixcoins] ticker","timedOut":false,"duration":306,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"776812c4-c1f9-4fea-9345-62ed509f641c","isHook":false,"skipped":false},{"title":"> [mixcoins] tickers","fullTitle":" > [mixcoins] without API keys > [mixcoins] tickers","timedOut":false,"duration":15,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5cb5eb49-199d-41be-8789-751d3260e25d","isHook":false,"skipped":false},{"title":"> [mixcoins] orderBook","fullTitle":" > [mixcoins] without API keys > [mixcoins] orderBook","timedOut":false,"duration":1379,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"17d61c30-ec70-4b42-8b34-eeafbd1335a9","isHook":false,"skipped":false},{"title":"> [mixcoins] trades","fullTitle":" > [mixcoins] without API keys > [mixcoins] trades","timedOut":false,"duration":1511,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ec28e1aa-6b55-4a2a-85be-ef0510718284","isHook":false,"skipped":false}],"suites":[],"passes":["3b65ac56-873f-4ff0-a06b-58906825370c","c2430813-565e-4512-bf9f-04250770b1c7","776812c4-c1f9-4fea-9345-62ed509f641c","5cb5eb49-199d-41be-8789-751d3260e25d","17d61c30-ec70-4b42-8b34-eeafbd1335a9","ec28e1aa-6b55-4a2a-85be-ef0510718284"],"failures":[],"pending":[],"skipped":[],"duration":3248,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ee1dbb2a-d03e-4bcf-bc47-abaa412dfe6d","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"f790cd7e-f28d-4ce5-9f74-e355a515f75b","title":"> [luno] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/luno-test.js","file":"/test/generated/luno-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [luno] connect","fullTitle":" > [luno] without API keys > [luno] connect","timedOut":false,"duration":37,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7799a18c-f6f5-46ef-96c7-e23566695b59","isHook":false,"skipped":false},{"title":"> [luno] markets","fullTitle":" > [luno] without API keys > [luno] markets","timedOut":false,"duration":763,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"525c4d69-4d54-4fa8-9df7-6d2aff85461c","isHook":false,"skipped":false},{"title":"> [luno] ticker","fullTitle":" > [luno] without API keys > [luno] ticker","timedOut":false,"duration":1327,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6a9baf86-e88f-49c0-a230-11a6c8ee0dfd","isHook":false,"skipped":false},{"title":"> [luno] tickers","fullTitle":" > [luno] without API keys > [luno] tickers","timedOut":false,"duration":1019,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"14128366-8d74-4a7a-aec1-f85306dd6a42","isHook":false,"skipped":false},{"title":"> [luno] orderBook","fullTitle":" > [luno] without API keys > [luno] orderBook","timedOut":false,"duration":992,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"edc2ff9b-70ce-4d65-a04f-47f65aa8a82f","isHook":false,"skipped":false},{"title":"> [luno] trades","fullTitle":" > [luno] without API keys > [luno] trades","timedOut":false,"duration":1052,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2b01bed4-d43c-4874-b34a-8d9e87f23089","isHook":false,"skipped":false}],"suites":[],"passes":["7799a18c-f6f5-46ef-96c7-e23566695b59","525c4d69-4d54-4fa8-9df7-6d2aff85461c","6a9baf86-e88f-49c0-a230-11a6c8ee0dfd","14128366-8d74-4a7a-aec1-f85306dd6a42","edc2ff9b-70ce-4d65-a04f-47f65aa8a82f","2b01bed4-d43c-4874-b34a-8d9e87f23089"],"failures":[],"pending":[],"skipped":[],"duration":5190,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"63730e88-8697-4d57-9772-f89a6f05067f","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"cc01cc1c-cac2-4779-aa92-2142af5bf742","title":"> [lbank] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/lbank-test.js","file":"/test/generated/lbank-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [lbank] connect","fullTitle":" > [lbank] without API keys > [lbank] connect","timedOut":false,"duration":32,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c5de44d0-f774-49e5-a56f-b4abd9f15d3a","isHook":false,"skipped":false},{"title":"> [lbank] markets","fullTitle":" > [lbank] without API keys > [lbank] markets","timedOut":false,"duration":1440,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b8d2bdec-4fd9-4ae2-a3b5-c3f8fb98df78","isHook":false,"skipped":false},{"title":"> [lbank] ticker","fullTitle":" > [lbank] without API keys > [lbank] ticker","timedOut":false,"duration":2770,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6684b656-8124-4812-87e0-0957c880a565","isHook":false,"skipped":false},{"title":"> [lbank] tickers","fullTitle":" > [lbank] without API keys > [lbank] tickers","timedOut":false,"duration":2245,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3d8986b6-0b5c-49ae-8b87-9c9168d36bf0","isHook":false,"skipped":false},{"title":"> [lbank] orderBook","fullTitle":" > [lbank] without API keys > [lbank] orderBook","timedOut":false,"duration":1758,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"19c9c76a-4c18-4150-9dca-20dcbb9408c2","isHook":false,"skipped":false},{"title":"> [lbank] trades","fullTitle":" > [lbank] without API keys > [lbank] trades","timedOut":false,"duration":2012,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"78a0f01e-2800-4760-b828-089c90d3d0f1","isHook":false,"skipped":false}],"suites":[],"passes":["c5de44d0-f774-49e5-a56f-b4abd9f15d3a","b8d2bdec-4fd9-4ae2-a3b5-c3f8fb98df78","6684b656-8124-4812-87e0-0957c880a565","3d8986b6-0b5c-49ae-8b87-9c9168d36bf0","19c9c76a-4c18-4150-9dca-20dcbb9408c2","78a0f01e-2800-4760-b828-089c90d3d0f1"],"failures":[],"pending":[],"skipped":[],"duration":10257,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"6b1f1bbd-615e-4d77-ac6b-25320dbee5d2","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"73ba438a-b9f9-48ca-81ef-e95eca95c510","title":"> [livecoin] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/livecoin-test.js","file":"/test/generated/livecoin-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [livecoin] connect","fullTitle":" > [livecoin] without API keys > [livecoin] connect","timedOut":false,"duration":37,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ee0d7e18-3802-46a3-8f34-4e4e683e7010","isHook":false,"skipped":false},{"title":"> [livecoin] markets","fullTitle":" > [livecoin] without API keys > [livecoin] markets","timedOut":false,"duration":1309,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e1471de6-62a9-4e03-9cfe-62b29212f5dc","isHook":false,"skipped":false},{"title":"> [livecoin] ticker","fullTitle":" > [livecoin] without API keys > [livecoin] ticker","timedOut":false,"duration":4051,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d10c0ee8-525c-43a1-ba6b-1e0481e097fe","isHook":false,"skipped":false},{"title":"> [livecoin] tickers","fullTitle":" > [livecoin] without API keys > [livecoin] tickers","timedOut":false,"duration":1047,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"688c84b5-3f1f-499a-993e-55eb6abd3c86","isHook":false,"skipped":false},{"title":"> [livecoin] orderBook","fullTitle":" > [livecoin] without API keys > [livecoin] orderBook","timedOut":false,"duration":960,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1836f917-4da6-439b-bb29-312c30d6465d","isHook":false,"skipped":false},{"title":"> [livecoin] trades","fullTitle":" > [livecoin] without API keys > [livecoin] trades","timedOut":false,"duration":1125,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b71fb6c0-5d05-4489-99e1-6bf9a39f76dd","isHook":false,"skipped":false}],"suites":[],"passes":["ee0d7e18-3802-46a3-8f34-4e4e683e7010","e1471de6-62a9-4e03-9cfe-62b29212f5dc","d10c0ee8-525c-43a1-ba6b-1e0481e097fe","688c84b5-3f1f-499a-993e-55eb6abd3c86","1836f917-4da6-439b-bb29-312c30d6465d","b71fb6c0-5d05-4489-99e1-6bf9a39f76dd"],"failures":[],"pending":[],"skipped":[],"duration":8529,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"cf71f1b4-77a9-4a38-8cf1-1a467b8fcbbb","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"fd0a7a83-f7eb-49da-b5fd-5257e688d1b6","title":"> [liquid] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/liquid-test.js","file":"/test/generated/liquid-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [liquid] connect","fullTitle":" > [liquid] without API keys > [liquid] connect","timedOut":false,"duration":38,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"16dc900d-2893-4782-b757-5d34de5482e8","isHook":false,"skipped":false},{"title":"> [liquid] markets","fullTitle":" > [liquid] without API keys > [liquid] markets","timedOut":false,"duration":2287,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5fd7cc42-1442-43cb-b57f-206f0212338a","isHook":false,"skipped":false},{"title":"> [liquid] ticker","fullTitle":" > [liquid] without API keys > [liquid] ticker","timedOut":false,"duration":5040,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7f7e79b5-c996-4b11-ae7e-23a1aa5aea18","isHook":false,"skipped":false},{"title":"> [liquid] tickers","fullTitle":" > [liquid] without API keys > [liquid] tickers","timedOut":false,"duration":1353,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6de99ffe-dde4-40d9-878e-6a965dff8f98","isHook":false,"skipped":false},{"title":"> [liquid] orderBook","fullTitle":" > [liquid] without API keys > [liquid] orderBook","timedOut":false,"duration":334,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"14441539-14d7-439d-b5e2-2b3ee3c47f18","isHook":false,"skipped":false},{"title":"> [liquid] trades","fullTitle":" > [liquid] without API keys > [liquid] trades","timedOut":false,"duration":1171,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"49e4071b-d8bb-433e-bf78-550ce710a111","isHook":false,"skipped":false}],"suites":[],"passes":["16dc900d-2893-4782-b757-5d34de5482e8","5fd7cc42-1442-43cb-b57f-206f0212338a","7f7e79b5-c996-4b11-ae7e-23a1aa5aea18","6de99ffe-dde4-40d9-878e-6a965dff8f98","14441539-14d7-439d-b5e2-2b3ee3c47f18","49e4071b-d8bb-433e-bf78-550ce710a111"],"failures":[],"pending":[],"skipped":[],"duration":10223,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"7511e5a7-a892-4f19-bfed-063675a5a9d3","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"c3e04a03-bc58-4c78-822b-0207d3982766","title":"> [latoken] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/latoken-test.js","file":"/test/generated/latoken-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [latoken] connect","fullTitle":" > [latoken] without API keys > [latoken] connect","timedOut":false,"duration":45,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b0ada7cd-dc0e-4f47-8e03-366d01848777","isHook":false,"skipped":false},{"title":"> [latoken] markets","fullTitle":" > [latoken] without API keys > [latoken] markets","timedOut":false,"duration":899,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"987b3f4f-1898-45aa-860f-73213da093a8","isHook":false,"skipped":false},{"title":"> [latoken] ticker","fullTitle":" > [latoken] without API keys > [latoken] ticker","timedOut":false,"duration":5274,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f0e3436c-ac31-4541-9d71-4ac1b2d7c1db","isHook":false,"skipped":false},{"title":"> [latoken] tickers","fullTitle":" > [latoken] without API keys > [latoken] tickers","timedOut":false,"duration":2466,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2b2fc15b-fbfd-4081-82ff-386734a2d8e1","isHook":false,"skipped":false},{"title":"> [latoken] orderBook","fullTitle":" > [latoken] without API keys > [latoken] orderBook","timedOut":false,"duration":1636,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"84395492-8c6e-43c5-8a58-5fcc2a576bbe","isHook":false,"skipped":false},{"title":"> [latoken] trades","fullTitle":" > [latoken] without API keys > [latoken] trades","timedOut":false,"duration":2017,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"083ebc02-a8f9-4edb-8962-acf51b638b3d","isHook":false,"skipped":false}],"suites":[],"passes":["b0ada7cd-dc0e-4f47-8e03-366d01848777","987b3f4f-1898-45aa-860f-73213da093a8","f0e3436c-ac31-4541-9d71-4ac1b2d7c1db","2b2fc15b-fbfd-4081-82ff-386734a2d8e1","84395492-8c6e-43c5-8a58-5fcc2a576bbe","083ebc02-a8f9-4edb-8962-acf51b638b3d"],"failures":[],"pending":[],"skipped":[],"duration":12337,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ebe0e3ac-75c3-4238-ad30-78d64e35ad24","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"0e4e599a-d7e2-4e5d-8c0b-1e362ad135ca","title":"> [okcoin] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/okcoin-test.js","file":"/test/generated/okcoin-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [okcoin] connect","fullTitle":" > [okcoin] without API keys > [okcoin] connect","timedOut":false,"duration":94,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"88bfa765-792e-41ee-ba96-33dd406811ea","isHook":false,"skipped":false},{"title":"> [okcoin] markets","fullTitle":" > [okcoin] without API keys > [okcoin] markets","timedOut":false,"duration":344,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"47f2b677-f76c-41a1-b6ee-a97bd4f269b4","isHook":false,"skipped":false},{"title":"> [okcoin] ticker","fullTitle":" > [okcoin] without API keys > [okcoin] ticker","timedOut":false,"duration":1866,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8383d64d-2c66-46aa-bf4c-a9805951efee","isHook":false,"skipped":false},{"title":"> [okcoin] tickers","fullTitle":" > [okcoin] without API keys > [okcoin] tickers","timedOut":false,"duration":1014,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"17be5495-2e3a-419b-b231-7a0574c25b18","isHook":false,"skipped":false},{"title":"> [okcoin] orderBook","fullTitle":" > [okcoin] without API keys > [okcoin] orderBook","timedOut":false,"duration":977,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3a25562f-bea7-45f1-b69d-90173f643cad","isHook":false,"skipped":false},{"title":"> [okcoin] trades","fullTitle":" > [okcoin] without API keys > [okcoin] trades","timedOut":false,"duration":1027,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"96f08ee4-0da2-451a-a32e-7b1adebd204a","isHook":false,"skipped":false}],"suites":[],"passes":["88bfa765-792e-41ee-ba96-33dd406811ea","47f2b677-f76c-41a1-b6ee-a97bd4f269b4","8383d64d-2c66-46aa-bf4c-a9805951efee","17be5495-2e3a-419b-b231-7a0574c25b18","3a25562f-bea7-45f1-b69d-90173f643cad","96f08ee4-0da2-451a-a32e-7b1adebd204a"],"failures":[],"pending":[],"skipped":[],"duration":5322,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"2c137a14-a07c-4ef5-8087-d6cbf9e396c7","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b47e1d01-0c43-4962-aa64-fb23d82f98ab","title":"> [paymium] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/paymium-test.js","file":"/test/generated/paymium-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [paymium] connect","fullTitle":" > [paymium] without API keys > [paymium] connect","timedOut":false,"duration":40,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a46d176a-f405-4fc8-bb9a-c96a5247124c","isHook":false,"skipped":false},{"title":"> [paymium] markets","fullTitle":" > [paymium] without API keys > [paymium] markets","timedOut":false,"duration":82,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"432a115e-52d0-4298-921c-f21613ee1740","isHook":false,"skipped":false},{"title":"> [paymium] ticker","fullTitle":" > [paymium] without API keys > [paymium] ticker","timedOut":false,"duration":629,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ecbd43da-9697-4efc-866c-0c44bb62e5fc","isHook":false,"skipped":false},{"title":"> [paymium] tickers","fullTitle":" > [paymium] without API keys > [paymium] tickers","timedOut":false,"duration":13,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c7993e13-8da8-426f-ad62-8973a7fddc06","isHook":false,"skipped":false},{"title":"> [paymium] orderBook","fullTitle":" > [paymium] without API keys > [paymium] orderBook","timedOut":false,"duration":2836,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bc8cf023-f930-4161-aea0-fdbefe14b09b","isHook":false,"skipped":false},{"title":"> [paymium] trades","fullTitle":" > [paymium] without API keys > [paymium] trades","timedOut":false,"duration":784,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"edd5953e-77e7-4172-8be8-1f1a63ce0caa","isHook":false,"skipped":false}],"suites":[],"passes":["a46d176a-f405-4fc8-bb9a-c96a5247124c","432a115e-52d0-4298-921c-f21613ee1740","ecbd43da-9697-4efc-866c-0c44bb62e5fc","c7993e13-8da8-426f-ad62-8973a7fddc06","bc8cf023-f930-4161-aea0-fdbefe14b09b","edd5953e-77e7-4172-8be8-1f1a63ce0caa"],"failures":[],"pending":[],"skipped":[],"duration":4384,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"322b3423-f3f4-424d-b162-abe1f9e12b74","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"cee0bd4f-7101-4fe9-8836-224897f3070d","title":"> [probit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/probit-test.js","file":"/test/generated/probit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [probit] connect","fullTitle":" > [probit] without API keys > [probit] connect","timedOut":false,"duration":43,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0617718b-9aff-4e0f-88c1-b8fb0d663b04","isHook":false,"skipped":false},{"title":"> [probit] markets","fullTitle":" > [probit] without API keys > [probit] markets","timedOut":false,"duration":1225,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"19d099af-6e36-4896-a2ef-b0cbe1344a34","isHook":false,"skipped":false},{"title":"> [probit] ticker","fullTitle":" > [probit] without API keys > [probit] ticker","timedOut":false,"duration":2536,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"42226fa1-58bf-43cb-8d7a-4d4aa6f7b7a0","isHook":false,"skipped":false},{"title":"> [probit] tickers","fullTitle":" > [probit] without API keys > [probit] tickers","timedOut":false,"duration":294,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a2c3d991-7d4a-42d9-ab6c-7305322fc8a9","isHook":false,"skipped":false},{"title":"> [probit] orderBook","fullTitle":" > [probit] without API keys > [probit] orderBook","timedOut":false,"duration":285,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c8906d12-8691-41ae-ba92-aad5cbad1617","isHook":false,"skipped":false},{"title":"> [probit] trades","fullTitle":" > [probit] without API keys > [probit] trades","timedOut":false,"duration":282,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c7466ec2-6c9e-45c6-9c1b-be0367068d81","isHook":false,"skipped":false}],"suites":[],"passes":["0617718b-9aff-4e0f-88c1-b8fb0d663b04","19d099af-6e36-4896-a2ef-b0cbe1344a34","42226fa1-58bf-43cb-8d7a-4d4aa6f7b7a0","a2c3d991-7d4a-42d9-ab6c-7305322fc8a9","c8906d12-8691-41ae-ba92-aad5cbad1617","c7466ec2-6c9e-45c6-9c1b-be0367068d81"],"failures":[],"pending":[],"skipped":[],"duration":4665,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"35d29322-ff2c-4727-ae13-8967e0833c9d","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"9f440937-af6b-4ed8-bc9f-af1d6ef773ae","title":"> [poloniex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/poloniex-test.js","file":"/test/generated/poloniex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [poloniex] connect","fullTitle":" > [poloniex] without API keys > [poloniex] connect","timedOut":false,"duration":42,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"843e7932-4621-498f-8a45-78335f446cb6","isHook":false,"skipped":false},{"title":"> [poloniex] markets","fullTitle":" > [poloniex] without API keys > [poloniex] markets","timedOut":false,"duration":356,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"37c7792b-b13c-49a8-b3d4-81b2c1996045","isHook":false,"skipped":false},{"title":"> [poloniex] ticker","fullTitle":" > [poloniex] without API keys > [poloniex] ticker","timedOut":false,"duration":3182,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a2382950-14d2-429f-ab45-a78386fc7ff4","isHook":false,"skipped":false},{"title":"> [poloniex] tickers","fullTitle":" > [poloniex] without API keys > [poloniex] tickers","timedOut":false,"duration":1079,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9b09117b-0f75-400e-8408-06e43cb11b32","isHook":false,"skipped":false},{"title":"> [poloniex] orderBook","fullTitle":" > [poloniex] without API keys > [poloniex] orderBook","timedOut":false,"duration":991,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"43d17459-88b7-42fb-abb8-d95fd4a79b09","isHook":false,"skipped":false},{"title":"> [poloniex] trades","fullTitle":" > [poloniex] without API keys > [poloniex] trades","timedOut":false,"duration":645,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fb2d9b05-a0b7-4ff6-a030-3284ec85e907","isHook":false,"skipped":false}],"suites":[],"passes":["843e7932-4621-498f-8a45-78335f446cb6","37c7792b-b13c-49a8-b3d4-81b2c1996045","a2382950-14d2-429f-ab45-a78386fc7ff4","9b09117b-0f75-400e-8408-06e43cb11b32","43d17459-88b7-42fb-abb8-d95fd4a79b09","fb2d9b05-a0b7-4ff6-a030-3284ec85e907"],"failures":[],"pending":[],"skipped":[],"duration":6295,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"c6e3fc37-04a5-4bb6-90b8-19de19de07dc","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b7976a2b-c760-4855-a444-f577fc039073","title":"> [stex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/stex-test.js","file":"/test/generated/stex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [stex] connect","fullTitle":" > [stex] without API keys > [stex] connect","timedOut":false,"duration":45,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"be31933e-60dd-4497-9da6-d2aec0bf606a","isHook":false,"skipped":false},{"title":"> [stex] markets","fullTitle":" > [stex] without API keys > [stex] markets","timedOut":false,"duration":458,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"712e0212-f3dc-42e7-b8c0-88daead20492","isHook":false,"skipped":false},{"title":"> [stex] ticker","fullTitle":" > [stex] without API keys > [stex] ticker","timedOut":false,"duration":1648,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c928cc98-ca55-4555-bd08-019e7d3548d6","isHook":false,"skipped":false},{"title":"> [stex] tickers","fullTitle":" > [stex] without API keys > [stex] tickers","timedOut":false,"duration":513,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b3edeb54-8111-47b9-962e-4c90cf76c9b8","isHook":false,"skipped":false},{"title":"> [stex] orderBook","fullTitle":" > [stex] without API keys > [stex] orderBook","timedOut":false,"duration":242,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"53e48ce2-81f6-4af8-b8f5-09dcdecf2fcf","isHook":false,"skipped":false},{"title":"> [stex] trades","fullTitle":" > [stex] without API keys > [stex] trades","timedOut":false,"duration":459,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cfc0b732-9398-42c2-b32a-76e18aacb780","isHook":false,"skipped":false}],"suites":[],"passes":["be31933e-60dd-4497-9da6-d2aec0bf606a","712e0212-f3dc-42e7-b8c0-88daead20492","c928cc98-ca55-4555-bd08-019e7d3548d6","b3edeb54-8111-47b9-962e-4c90cf76c9b8","53e48ce2-81f6-4af8-b8f5-09dcdecf2fcf","cfc0b732-9398-42c2-b32a-76e18aacb780"],"failures":[],"pending":[],"skipped":[],"duration":3365,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"76be08c4-ac0e-4046-b49e-c3cb2f6538c4","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"c49b8d1f-1bb6-469b-8752-c64a0ad3b5b5","title":"> [coolcoin] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/coolcoin-test.js","file":"/test/generated/coolcoin-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [coolcoin] connect","fullTitle":" > [coolcoin] without API keys > [coolcoin] connect","timedOut":false,"duration":196,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5e9c0c96-88e9-4df9-ab65-7191fb2c167c","isHook":false,"skipped":false},{"title":"> [coolcoin] markets","fullTitle":" > [coolcoin] without API keys > [coolcoin] markets","timedOut":false,"duration":40014,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a79492a6-7b84-4eec-b39b-3a96d2dd228a","isHook":false,"skipped":false},{"title":"> [coolcoin] ticker","fullTitle":" > [coolcoin] without API keys > [coolcoin] ticker","timedOut":false,"duration":10088,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fd108cc6-bc56-4be5-83f0-d2a342d3e51f","isHook":false,"skipped":false},{"title":"> [coolcoin] tickers","fullTitle":" > [coolcoin] without API keys > [coolcoin] tickers","timedOut":false,"duration":17,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b4ade2ac-95e9-4910-98b4-621859c1a187","isHook":false,"skipped":false},{"title":"> [coolcoin] orderBook","fullTitle":" > [coolcoin] without API keys > [coolcoin] orderBook","timedOut":false,"duration":55,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3403bdba-162d-446e-a1f5-f5bebf4171f6","isHook":false,"skipped":false},{"title":"> [coolcoin] trades","fullTitle":" > [coolcoin] without API keys > [coolcoin] trades","timedOut":false,"duration":37,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f7d1ba12-6452-4df4-a780-33e89817bb2a","isHook":false,"skipped":false}],"suites":[],"passes":["5e9c0c96-88e9-4df9-ab65-7191fb2c167c","a79492a6-7b84-4eec-b39b-3a96d2dd228a","fd108cc6-bc56-4be5-83f0-d2a342d3e51f","b4ade2ac-95e9-4910-98b4-621859c1a187","3403bdba-162d-446e-a1f5-f5bebf4171f6","f7d1ba12-6452-4df4-a780-33e89817bb2a"],"failures":[],"pending":[],"skipped":[],"duration":50407,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"8cb848c2-04f0-4864-98dd-3132c2d20df7","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"a32ccaf8-4a21-4942-9c89-a1c0bd88a5ee","title":"> [southxchange] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/southxchange-test.js","file":"/test/generated/southxchange-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [southxchange] connect","fullTitle":" > [southxchange] without API keys > [southxchange] connect","timedOut":false,"duration":35,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"44a827d6-9ef4-4930-b29a-81aa602b21b9","isHook":false,"skipped":false},{"title":"> [southxchange] markets","fullTitle":" > [southxchange] without API keys > [southxchange] markets","timedOut":false,"duration":239,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"9fabe968-1045-4dbd-9bd5-f78dbf918d67","isHook":false,"skipped":false},{"title":"> [southxchange] ticker","fullTitle":" > [southxchange] without API keys > [southxchange] ticker","timedOut":false,"duration":1799,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"26a8e09a-29ce-4077-b4d5-c7bda7c10a50","isHook":false,"skipped":false},{"title":"> [southxchange] tickers","fullTitle":" > [southxchange] without API keys > [southxchange] tickers","timedOut":false,"duration":1039,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ac035c54-732c-4e8e-9e6c-681b64b19410","isHook":false,"skipped":false},{"title":"> [southxchange] orderBook","fullTitle":" > [southxchange] without API keys > [southxchange] orderBook","timedOut":false,"duration":932,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3bb2fa46-4be2-4f20-bea3-7851020c5099","isHook":false,"skipped":false},{"title":"> [southxchange] trades","fullTitle":" > [southxchange] without API keys > [southxchange] trades","timedOut":false,"duration":1015,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"33c2c5e2-c93a-462f-b263-c527e32f1493","isHook":false,"skipped":false}],"suites":[],"passes":["44a827d6-9ef4-4930-b29a-81aa602b21b9","9fabe968-1045-4dbd-9bd5-f78dbf918d67","26a8e09a-29ce-4077-b4d5-c7bda7c10a50","ac035c54-732c-4e8e-9e6c-681b64b19410","3bb2fa46-4be2-4f20-bea3-7851020c5099","33c2c5e2-c93a-462f-b263-c527e32f1493"],"failures":[],"pending":[],"skipped":[],"duration":5059,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"86fd67b6-44c3-482f-926f-4af245445935","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"9c354ac0-2baf-4db2-99e4-88496620cedf","title":"> [qtrade] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/qtrade-test.js","file":"/test/generated/qtrade-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [qtrade] connect","fullTitle":" > [qtrade] without API keys > [qtrade] connect","timedOut":false,"duration":41,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6c74819e-3d47-4846-9520-5ee361cef8f2","isHook":false,"skipped":false},{"title":"> [qtrade] markets","fullTitle":" > [qtrade] without API keys > [qtrade] markets","timedOut":false,"duration":265,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"042e7c2d-9e50-4737-980b-a5e78cc5655c","isHook":false,"skipped":false},{"title":"> [qtrade] ticker","fullTitle":" > [qtrade] without API keys > [qtrade] ticker","timedOut":false,"duration":2766,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f793d67f-a8c1-4864-8f04-47f81ca4978b","isHook":false,"skipped":false},{"title":"> [qtrade] tickers","fullTitle":" > [qtrade] without API keys > [qtrade] tickers","timedOut":false,"duration":1120,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f99c2c26-1499-49ba-a8ea-e8e7ea879b53","isHook":false,"skipped":false},{"title":"> [qtrade] orderBook","fullTitle":" > [qtrade] without API keys > [qtrade] orderBook","timedOut":false,"duration":883,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"934ce979-a893-4b13-a03a-9634e1616d62","isHook":false,"skipped":false},{"title":"> [qtrade] trades","fullTitle":" > [qtrade] without API keys > [qtrade] trades","timedOut":false,"duration":1187,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"55ef37c0-db78-47be-865e-09ba66505871","isHook":false,"skipped":false}],"suites":[],"passes":["6c74819e-3d47-4846-9520-5ee361cef8f2","042e7c2d-9e50-4737-980b-a5e78cc5655c","f793d67f-a8c1-4864-8f04-47f81ca4978b","f99c2c26-1499-49ba-a8ea-e8e7ea879b53","934ce979-a893-4b13-a03a-9634e1616d62","55ef37c0-db78-47be-865e-09ba66505871"],"failures":[],"pending":[],"skipped":[],"duration":6262,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"d6d133de-3348-45fa-ae18-f1679f0dcb0c","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"3f4f8ec7-3bf3-4f85-8cb4-a6de9474fb09","title":"> [stronghold] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/stronghold-test.js","file":"/test/generated/stronghold-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [stronghold] connect","fullTitle":" > [stronghold] without API keys > [stronghold] connect","timedOut":false,"duration":46,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"40302149-839d-4f9e-a8a2-8d2298d618ef","isHook":false,"skipped":false},{"title":"> [stronghold] markets","fullTitle":" > [stronghold] without API keys > [stronghold] markets","timedOut":false,"duration":3057,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5cefea60-6aca-446b-b475-5a06b4dfc264","isHook":false,"skipped":false},{"title":"> [stronghold] ticker","fullTitle":" > [stronghold] without API keys > [stronghold] ticker","timedOut":false,"duration":8,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2b58f87b-dfdb-48cf-bec5-5d99f77079fb","isHook":false,"skipped":false},{"title":"> [stronghold] tickers","fullTitle":" > [stronghold] without API keys > [stronghold] tickers","timedOut":false,"duration":8,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"203d75a7-1bb3-4110-9a14-e9229de6834f","isHook":false,"skipped":false},{"title":"> [stronghold] orderBook","fullTitle":" > [stronghold] without API keys > [stronghold] orderBook","timedOut":false,"duration":2006,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e08f4301-b0c9-49d3-9b0a-e85e7b649140","isHook":false,"skipped":false},{"title":"> [stronghold] trades","fullTitle":" > [stronghold] without API keys > [stronghold] trades","timedOut":false,"duration":30,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"25322adc-08a8-4a4f-84e2-b23a1da9cd9e","isHook":false,"skipped":false}],"suites":[],"passes":["40302149-839d-4f9e-a8a2-8d2298d618ef","5cefea60-6aca-446b-b475-5a06b4dfc264","2b58f87b-dfdb-48cf-bec5-5d99f77079fb","203d75a7-1bb3-4110-9a14-e9229de6834f","e08f4301-b0c9-49d3-9b0a-e85e7b649140","25322adc-08a8-4a4f-84e2-b23a1da9cd9e"],"failures":[],"pending":[],"skipped":[],"duration":5155,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"dcc2a425-a153-4057-8d30-6327fdbe2523","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"667075d6-fa67-41e5-a631-5d9fa6487d56","title":"> [oceanex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/oceanex-test.js","file":"/test/generated/oceanex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [oceanex] connect","fullTitle":" > [oceanex] without API keys > [oceanex] connect","timedOut":false,"duration":292,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"94feba6a-6574-4b5e-8e59-dfdf03ce1788","isHook":false,"skipped":false},{"title":"> [oceanex] markets","fullTitle":" > [oceanex] without API keys > [oceanex] markets","timedOut":false,"duration":420,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"593e6d88-8f64-44d5-9c04-2e83e2037de1","isHook":false,"skipped":false},{"title":"> [oceanex] ticker","fullTitle":" > [oceanex] without API keys > [oceanex] ticker","timedOut":false,"duration":6237,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"120262bf-6c5c-4951-81bb-5d85f5b9b142","isHook":false,"skipped":false},{"title":"> [oceanex] tickers","fullTitle":" > [oceanex] without API keys > [oceanex] tickers","timedOut":false,"duration":3296,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1859dcf1-ca7a-4bf6-9940-862219bb420f","isHook":false,"skipped":false},{"title":"> [oceanex] orderBook","fullTitle":" > [oceanex] without API keys > [oceanex] orderBook","timedOut":false,"duration":2261,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"212e5779-07ee-490b-ad89-eac040df1fc6","isHook":false,"skipped":false},{"title":"> [oceanex] trades","fullTitle":" > [oceanex] without API keys > [oceanex] trades","timedOut":false,"duration":3002,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"900166f3-62a8-4bd5-a57f-6cbee4049538","isHook":false,"skipped":false}],"suites":[],"passes":["94feba6a-6574-4b5e-8e59-dfdf03ce1788","593e6d88-8f64-44d5-9c04-2e83e2037de1","120262bf-6c5c-4951-81bb-5d85f5b9b142","1859dcf1-ca7a-4bf6-9940-862219bb420f","212e5779-07ee-490b-ad89-eac040df1fc6","900166f3-62a8-4bd5-a57f-6cbee4049538"],"failures":[],"pending":[],"skipped":[],"duration":15508,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"ae35bb57-556f-49d9-9000-a2bc890807ed","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b8d68afe-1513-40b5-8853-884b34c7a62c","title":"> [surbitcoin] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/surbitcoin-test.js","file":"/test/generated/surbitcoin-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [surbitcoin] connect","fullTitle":" > [surbitcoin] without API keys > [surbitcoin] connect","timedOut":false,"duration":60,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a313a540-9315-4d97-a7c5-0fa6241cf62e","isHook":false,"skipped":false},{"title":"> [surbitcoin] markets","fullTitle":" > [surbitcoin] without API keys > [surbitcoin] markets","timedOut":false,"duration":17,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c85b8d6f-b7a2-4c60-9ca3-a7b645e14c82","isHook":false,"skipped":false},{"title":"> [surbitcoin] ticker","fullTitle":" > [surbitcoin] without API keys > [surbitcoin] ticker","timedOut":false,"duration":188,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6847f03f-352a-4014-bef0-8ab63df4e4db","isHook":false,"skipped":false},{"title":"> [surbitcoin] tickers","fullTitle":" > [surbitcoin] without API keys > [surbitcoin] tickers","timedOut":false,"duration":48,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1d5980bf-41c2-43db-ae53-97ae4b091531","isHook":false,"skipped":false},{"title":"> [surbitcoin] orderBook","fullTitle":" > [surbitcoin] without API keys > [surbitcoin] orderBook","timedOut":false,"duration":753,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a749aed3-a79d-4511-8886-7237db6a552a","isHook":false,"skipped":false},{"title":"> [surbitcoin] trades","fullTitle":" > [surbitcoin] without API keys > [surbitcoin] trades","timedOut":false,"duration":4026,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b003ee74-c227-4095-b22d-cc40c330d98c","isHook":false,"skipped":false}],"suites":[],"passes":["a313a540-9315-4d97-a7c5-0fa6241cf62e","c85b8d6f-b7a2-4c60-9ca3-a7b645e14c82","6847f03f-352a-4014-bef0-8ab63df4e4db","1d5980bf-41c2-43db-ae53-97ae4b091531","a749aed3-a79d-4511-8886-7237db6a552a","b003ee74-c227-4095-b22d-cc40c330d98c"],"failures":[],"pending":[],"skipped":[],"duration":5092,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"2eebe041-e4a9-4d24-8ae8-ff232a666e24","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"546f46a0-34b2-4b75-9fe9-f697ea9cbf26","title":"> [therock] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/therock-test.js","file":"/test/generated/therock-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [therock] connect","fullTitle":" > [therock] without API keys > [therock] connect","timedOut":false,"duration":46,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e10bfe1d-c79b-4280-b3f0-6d750a44e9e2","isHook":false,"skipped":false},{"title":"> [therock] markets","fullTitle":" > [therock] without API keys > [therock] markets","timedOut":false,"duration":488,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f639528f-73e1-4bd6-b162-730b505e7ba3","isHook":false,"skipped":false},{"title":"> [therock] ticker","fullTitle":" > [therock] without API keys > [therock] ticker","timedOut":false,"duration":1598,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2c47755d-c241-4152-ac52-db019ae74f49","isHook":false,"skipped":false},{"title":"> [therock] tickers","fullTitle":" > [therock] without API keys > [therock] tickers","timedOut":false,"duration":1056,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"d2892b9c-6ccc-4fd4-94a9-99e2cef89e8f","isHook":false,"skipped":false},{"title":"> [therock] orderBook","fullTitle":" > [therock] without API keys > [therock] orderBook","timedOut":false,"duration":1196,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2446c3df-46ba-479c-a879-0e9148d229cb","isHook":false,"skipped":false},{"title":"> [therock] trades","fullTitle":" > [therock] without API keys > [therock] trades","timedOut":false,"duration":822,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"aa7a1bec-a8db-4e42-9b14-42479cab7524","isHook":false,"skipped":false}],"suites":[],"passes":["e10bfe1d-c79b-4280-b3f0-6d750a44e9e2","f639528f-73e1-4bd6-b162-730b505e7ba3","2c47755d-c241-4152-ac52-db019ae74f49","d2892b9c-6ccc-4fd4-94a9-99e2cef89e8f","2446c3df-46ba-479c-a879-0e9148d229cb","aa7a1bec-a8db-4e42-9b14-42479cab7524"],"failures":[],"pending":[],"skipped":[],"duration":5206,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"cebfb8e7-bbac-42d2-8dae-c7d7368b190c","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"fe3995af-40b1-422a-a62c-02fe1b264255","title":"> [tidebit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/tidebit-test.js","file":"/test/generated/tidebit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [tidebit] connect","fullTitle":" > [tidebit] without API keys > [tidebit] connect","timedOut":false,"duration":37,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"72ab00c8-ea8a-41dd-8d71-dd52bad11b29","isHook":false,"skipped":false},{"title":"> [tidebit] markets","fullTitle":" > [tidebit] without API keys > [tidebit] markets","timedOut":false,"duration":894,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6e77943a-9ece-4339-b4e3-d0444d1185c1","isHook":false,"skipped":false},{"title":"> [tidebit] ticker","fullTitle":" > [tidebit] without API keys > [tidebit] ticker","timedOut":false,"duration":2166,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"37626d1b-f3d8-4689-880d-82b6f6429507","isHook":false,"skipped":false},{"title":"> [tidebit] tickers","fullTitle":" > [tidebit] without API keys > [tidebit] tickers","timedOut":false,"duration":908,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ca273ee7-b3df-4d2c-82b7-d8ba97876163","isHook":false,"skipped":false},{"title":"> [tidebit] orderBook","fullTitle":" > [tidebit] without API keys > [tidebit] orderBook","timedOut":false,"duration":928,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"85c27553-1148-4b7f-9fff-bbe5e3ff5b82","isHook":false,"skipped":false},{"title":"> [tidebit] trades","fullTitle":" > [tidebit] without API keys > [tidebit] trades","timedOut":false,"duration":1195,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"440b923a-7530-4431-aae0-d2c48e69b6cf","isHook":false,"skipped":false}],"suites":[],"passes":["72ab00c8-ea8a-41dd-8d71-dd52bad11b29","6e77943a-9ece-4339-b4e3-d0444d1185c1","37626d1b-f3d8-4689-880d-82b6f6429507","ca273ee7-b3df-4d2c-82b7-d8ba97876163","85c27553-1148-4b7f-9fff-bbe5e3ff5b82","440b923a-7530-4431-aae0-d2c48e69b6cf"],"failures":[],"pending":[],"skipped":[],"duration":6128,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"051f72df-b519-4f79-88bc-5b21e5b03bd1","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"00dd906b-9a9b-4a14-a32a-1e3598179463","title":"> [okex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/okex-test.js","file":"/test/generated/okex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [okex] connect","fullTitle":" > [okex] without API keys > [okex] connect","timedOut":false,"duration":39,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8f6c9310-93dc-4238-81c3-28c05ad5af9b","isHook":false,"skipped":false},{"title":"> [okex] markets","fullTitle":" > [okex] without API keys > [okex] markets","timedOut":false,"duration":6307,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2afad9ed-0d34-42d1-848a-2d8a3904dc26","isHook":false,"skipped":false},{"title":"> [okex] ticker","fullTitle":" > [okex] without API keys > [okex] ticker","timedOut":false,"duration":7984,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"abd9e088-253f-4f2e-acdc-b246e653275d","isHook":false,"skipped":false},{"title":"> [okex] tickers","fullTitle":" > [okex] without API keys > [okex] tickers","timedOut":false,"duration":973,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"58c07f48-69d2-4064-b9ad-b719da1faaa6","isHook":false,"skipped":false},{"title":"> [okex] orderBook","fullTitle":" > [okex] without API keys > [okex] orderBook","timedOut":false,"duration":941,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"90a4dfb0-2113-4419-b02c-118f3841a320","isHook":false,"skipped":false},{"title":"> [okex] trades","fullTitle":" > [okex] without API keys > [okex] trades","timedOut":false,"duration":1011,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e18f55cb-78ae-4103-86d0-93343abb1097","isHook":false,"skipped":false}],"suites":[],"passes":["8f6c9310-93dc-4238-81c3-28c05ad5af9b","2afad9ed-0d34-42d1-848a-2d8a3904dc26","abd9e088-253f-4f2e-acdc-b246e653275d","58c07f48-69d2-4064-b9ad-b719da1faaa6","90a4dfb0-2113-4419-b02c-118f3841a320","e18f55cb-78ae-4103-86d0-93343abb1097"],"failures":[],"pending":[],"skipped":[],"duration":17255,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"259ec145-0801-436a-af3a-1b129b5b7f47","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"0f906118-a630-43a9-93ef-de7111d6cc2b","title":"> [vaultoro] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/vaultoro-test.js","file":"/test/generated/vaultoro-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [vaultoro] connect","fullTitle":" > [vaultoro] without API keys > [vaultoro] connect","timedOut":false,"duration":36,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2dad91bf-7b2b-4ce7-8a82-21d835f59f3f","isHook":false,"skipped":false},{"title":"> [vaultoro] markets","fullTitle":" > [vaultoro] without API keys > [vaultoro] markets","timedOut":false,"duration":3031,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1235a909-f160-48e0-9cab-156bfedc597d","isHook":false,"skipped":false},{"title":"> [vaultoro] ticker","fullTitle":" > [vaultoro] without API keys > [vaultoro] ticker","timedOut":false,"duration":6,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e7ae4578-0341-4281-9341-3af6f52fd90e","isHook":false,"skipped":false},{"title":"> [vaultoro] tickers","fullTitle":" > [vaultoro] without API keys > [vaultoro] tickers","timedOut":false,"duration":4,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"eb70a612-385e-4d99-888c-b9e628a10198","isHook":false,"skipped":false},{"title":"> [vaultoro] orderBook","fullTitle":" > [vaultoro] without API keys > [vaultoro] orderBook","timedOut":false,"duration":1000,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f9289314-a14b-4b9e-8730-16bc6b2fd4d8","isHook":false,"skipped":false},{"title":"> [vaultoro] trades","fullTitle":" > [vaultoro] without API keys > [vaultoro] trades","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"8565ec9c-aa4e-4b98-93b4-5c88ba830594","isHook":false,"skipped":false}],"suites":[],"passes":["2dad91bf-7b2b-4ce7-8a82-21d835f59f3f","1235a909-f160-48e0-9cab-156bfedc597d","e7ae4578-0341-4281-9341-3af6f52fd90e","eb70a612-385e-4d99-888c-b9e628a10198","f9289314-a14b-4b9e-8730-16bc6b2fd4d8","8565ec9c-aa4e-4b98-93b4-5c88ba830594"],"failures":[],"pending":[],"skipped":[],"duration":4111,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"bcf3bbe2-e16c-4336-8d37-73eb6818f048","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"dca4cc2a-1d71-4774-b14f-2ae47c594c27","title":"> [upbit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/upbit-test.js","file":"/test/generated/upbit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [upbit] connect","fullTitle":" > [upbit] without API keys > [upbit] connect","timedOut":false,"duration":55,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2f9acc14-5e28-45b8-9dc6-e776f34317e0","isHook":false,"skipped":false},{"title":"> [upbit] markets","fullTitle":" > [upbit] without API keys > [upbit] markets","timedOut":false,"duration":1200,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"fff063b7-7782-455e-a936-7e966d22d309","isHook":false,"skipped":false},{"title":"> [upbit] ticker","fullTitle":" > [upbit] without API keys > [upbit] ticker","timedOut":false,"duration":1205,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e8858ff4-4954-49de-8396-10d1ee0dea55","isHook":false,"skipped":false},{"title":"> [upbit] tickers","fullTitle":" > [upbit] without API keys > [upbit] tickers","timedOut":false,"duration":1425,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cd07fd7f-13e9-4645-b322-529366f695e9","isHook":false,"skipped":false},{"title":"> [upbit] orderBook","fullTitle":" > [upbit] without API keys > [upbit] orderBook","timedOut":false,"duration":586,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6e1d4fa8-f3c6-4e32-92eb-65d9de8a547f","isHook":false,"skipped":false},{"title":"> [upbit] trades","fullTitle":" > [upbit] without API keys > [upbit] trades","timedOut":false,"duration":991,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ab2ba1b8-a371-4905-8874-06420b203e6c","isHook":false,"skipped":false}],"suites":[],"passes":["2f9acc14-5e28-45b8-9dc6-e776f34317e0","fff063b7-7782-455e-a936-7e966d22d309","e8858ff4-4954-49de-8396-10d1ee0dea55","cd07fd7f-13e9-4645-b322-529366f695e9","6e1d4fa8-f3c6-4e32-92eb-65d9de8a547f","ab2ba1b8-a371-4905-8874-06420b203e6c"],"failures":[],"pending":[],"skipped":[],"duration":5462,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"535634d0-dbaf-4447-be8c-3a0f9b05f5a2","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"b8a2b5b0-10e9-4814-aa64-4ff898b2b762","title":"> [kraken] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/kraken-test.js","file":"/test/generated/kraken-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [kraken] connect","fullTitle":" > [kraken] without API keys > [kraken] connect","timedOut":false,"duration":350,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"65480cb2-d781-4ddc-af56-210fa3d459a4","isHook":false,"skipped":false},{"title":"> [kraken] markets","fullTitle":" > [kraken] without API keys > [kraken] markets","timedOut":false,"duration":21109,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0d825bff-d2e2-4088-b894-b5c77d5387b9","isHook":false,"skipped":false},{"title":"> [kraken] ticker","fullTitle":" > [kraken] without API keys > [kraken] ticker","timedOut":false,"duration":9078,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"00d88cec-964f-4e12-a4a9-717128d28681","isHook":false,"skipped":false},{"title":"> [kraken] tickers","fullTitle":" > [kraken] without API keys > [kraken] tickers","timedOut":false,"duration":18,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a30b9e96-60f6-451d-a960-15d7a3c297e1","isHook":false,"skipped":false},{"title":"> [kraken] orderBook","fullTitle":" > [kraken] without API keys > [kraken] orderBook","timedOut":false,"duration":12,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"63bc7405-0049-448c-9314-6ad025a883c0","isHook":false,"skipped":false},{"title":"> [kraken] trades","fullTitle":" > [kraken] without API keys > [kraken] trades","timedOut":false,"duration":10,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bee9aa55-82af-4b72-9b37-e4d6b2ed9634","isHook":false,"skipped":false}],"suites":[],"passes":["65480cb2-d781-4ddc-af56-210fa3d459a4","0d825bff-d2e2-4088-b894-b5c77d5387b9","00d88cec-964f-4e12-a4a9-717128d28681","a30b9e96-60f6-451d-a960-15d7a3c297e1","63bc7405-0049-448c-9314-6ad025a883c0","bee9aa55-82af-4b72-9b37-e4d6b2ed9634"],"failures":[],"pending":[],"skipped":[],"duration":30577,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"b5259bbc-f9df-4f5c-ab57-d63bcc61fe70","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"9e14aa95-92cd-4c2d-8b51-476b52192077","title":"> [tidex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/tidex-test.js","file":"/test/generated/tidex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [tidex] connect","fullTitle":" > [tidex] without API keys > [tidex] connect","timedOut":false,"duration":38,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"26eef12d-fdaa-40df-981d-82f6f9a78c00","isHook":false,"skipped":false},{"title":"> [tidex] markets","fullTitle":" > [tidex] without API keys > [tidex] markets","timedOut":false,"duration":269,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5422c86b-15c3-48cc-96f4-f30aaa03cff9","isHook":false,"skipped":false},{"title":"> [tidex] ticker","fullTitle":" > [tidex] without API keys > [tidex] ticker","timedOut":false,"duration":5841,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7bf7327a-c8f4-4aa9-9e07-92fabc438f0d","isHook":false,"skipped":false},{"title":"> [tidex] tickers","fullTitle":" > [tidex] without API keys > [tidex] tickers","timedOut":false,"duration":25,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5b538f95-aac9-4187-b722-fdbfd04c7295","isHook":false,"skipped":false},{"title":"> [tidex] orderBook","fullTitle":" > [tidex] without API keys > [tidex] orderBook","timedOut":false,"duration":1956,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a556e5f7-5c08-43da-8768-8b50988f4a10","isHook":false,"skipped":false},{"title":"> [tidex] trades","fullTitle":" > [tidex] without API keys > [tidex] trades","timedOut":false,"duration":2006,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f655d8f3-57e9-40f5-946f-3b4b8090ef6b","isHook":false,"skipped":false}],"suites":[],"passes":["26eef12d-fdaa-40df-981d-82f6f9a78c00","5422c86b-15c3-48cc-96f4-f30aaa03cff9","7bf7327a-c8f4-4aa9-9e07-92fabc438f0d","5b538f95-aac9-4187-b722-fdbfd04c7295","a556e5f7-5c08-43da-8768-8b50988f4a10","f655d8f3-57e9-40f5-946f-3b4b8090ef6b"],"failures":[],"pending":[],"skipped":[],"duration":10135,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"a5498668-df64-45b5-97cb-a555ed4b578f","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"4ce3ca5b-bbd0-4d5b-a679-b8073c1f3b4c","title":"> [xbtce] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/xbtce-test.js","file":"/test/generated/xbtce-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [xbtce] connect","fullTitle":" > [xbtce] without API keys > [xbtce] connect","timedOut":false,"duration":35,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6de64d64-5d9c-4530-ae4b-08da4244b764","isHook":false,"skipped":false},{"title":"> [xbtce] markets","fullTitle":" > [xbtce] without API keys > [xbtce] markets","timedOut":false,"duration":17,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"dddc35c0-f443-4301-ac8f-b9a510897168","isHook":false,"skipped":false},{"title":"> [xbtce] ticker","fullTitle":" > [xbtce] without API keys > [xbtce] ticker","timedOut":false,"duration":2385,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"804f7a8a-5f96-427e-bb23-67a93faa3282","isHook":false,"skipped":false},{"title":"> [xbtce] tickers","fullTitle":" > [xbtce] without API keys > [xbtce] tickers","timedOut":false,"duration":32,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3ee1c8ea-3075-4807-a7ba-83295221732d","isHook":false,"skipped":false},{"title":"> [xbtce] orderBook","fullTitle":" > [xbtce] without API keys > [xbtce] orderBook","timedOut":false,"duration":8,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0c9df472-c6db-49c7-9517-d70f63b4ff9e","isHook":false,"skipped":false},{"title":"> [xbtce] trades","fullTitle":" > [xbtce] without API keys > [xbtce] trades","timedOut":false,"duration":7,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1a573b16-d01c-4caf-88cc-a8365876689e","isHook":false,"skipped":false}],"suites":[],"passes":["6de64d64-5d9c-4530-ae4b-08da4244b764","dddc35c0-f443-4301-ac8f-b9a510897168","804f7a8a-5f96-427e-bb23-67a93faa3282","3ee1c8ea-3075-4807-a7ba-83295221732d","0c9df472-c6db-49c7-9517-d70f63b4ff9e","1a573b16-d01c-4caf-88cc-a8365876689e"],"failures":[],"pending":[],"skipped":[],"duration":2484,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"44493d99-3cd6-4f95-a904-05a9d8e3971b","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"941440ea-88ad-496c-99e4-4e1ff4878ac9","title":"> [vbtc] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/vbtc-test.js","file":"/test/generated/vbtc-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [vbtc] connect","fullTitle":" > [vbtc] without API keys > [vbtc] connect","timedOut":false,"duration":39,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"54feda21-f957-48cb-afe4-b4bcac52c0d9","isHook":false,"skipped":false},{"title":"> [vbtc] markets","fullTitle":" > [vbtc] without API keys > [vbtc] markets","timedOut":false,"duration":4,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b3b7aae8-6958-4f8b-8264-f7a86273da2e","isHook":false,"skipped":false},{"title":"> [vbtc] ticker","fullTitle":" > [vbtc] without API keys > [vbtc] ticker","timedOut":false,"duration":151,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cb402f49-3aa0-40a3-822e-6574a932e0e2","isHook":false,"skipped":false},{"title":"> [vbtc] tickers","fullTitle":" > [vbtc] without API keys > [vbtc] tickers","timedOut":false,"duration":14,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6a3a7c9c-c5bb-4388-ace1-95d836a6ccf4","isHook":false,"skipped":false},{"title":"> [vbtc] orderBook","fullTitle":" > [vbtc] without API keys > [vbtc] orderBook","timedOut":false,"duration":847,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"90ef16ba-d4a2-4cdb-9083-a50788a3d80b","isHook":false,"skipped":false},{"title":"> [vbtc] trades","fullTitle":" > [vbtc] without API keys > [vbtc] trades","timedOut":false,"duration":4694,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"375b204b-5fee-421d-a26f-58c4b78a5649","isHook":false,"skipped":false}],"suites":[],"passes":["54feda21-f957-48cb-afe4-b4bcac52c0d9","b3b7aae8-6958-4f8b-8264-f7a86273da2e","cb402f49-3aa0-40a3-822e-6574a932e0e2","6a3a7c9c-c5bb-4388-ace1-95d836a6ccf4","90ef16ba-d4a2-4cdb-9083-a50788a3d80b","375b204b-5fee-421d-a26f-58c4b78a5649"],"failures":[],"pending":[],"skipped":[],"duration":5749,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"dbd5fa53-493f-4874-9fd0-8ab1f64b2399","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"dd6642d1-cfc1-4bbf-801f-ad4d9b228cee","title":"> [theocean] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/theocean-test.js","file":"/test/generated/theocean-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [theocean] connect","fullTitle":" > [theocean] without API keys > [theocean] connect","timedOut":false,"duration":100,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"939850a2-d1a3-4ecf-b821-76231e864957","isHook":false,"skipped":false},{"title":"> [theocean] markets","fullTitle":" > [theocean] without API keys > [theocean] markets","timedOut":false,"duration":9007,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"01a58dfe-6d85-41aa-a332-22061844635a","isHook":false,"skipped":false},{"title":"> [theocean] ticker","fullTitle":" > [theocean] without API keys > [theocean] ticker","timedOut":false,"duration":3858,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f8274538-de5d-46bf-9047-ab3982bc3a9c","isHook":false,"skipped":false},{"title":"> [theocean] tickers","fullTitle":" > [theocean] without API keys > [theocean] tickers","timedOut":false,"duration":44,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e7c442d5-b025-4888-810d-602f0f2d6445","isHook":false,"skipped":false},{"title":"> [theocean] orderBook","fullTitle":" > [theocean] without API keys > [theocean] orderBook","timedOut":false,"duration":36,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"6f89dc1b-8f3b-45b7-a240-2fe142b4e87a","isHook":false,"skipped":false},{"title":"> [theocean] trades","fullTitle":" > [theocean] without API keys > [theocean] trades","timedOut":false,"duration":176,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"21ca1350-d175-42e3-a330-bd81cdfa4086","isHook":false,"skipped":false}],"suites":[],"passes":["939850a2-d1a3-4ecf-b821-76231e864957","01a58dfe-6d85-41aa-a332-22061844635a","f8274538-de5d-46bf-9047-ab3982bc3a9c","e7c442d5-b025-4888-810d-602f0f2d6445","6f89dc1b-8f3b-45b7-a240-2fe142b4e87a","21ca1350-d175-42e3-a330-bd81cdfa4086"],"failures":[],"pending":[],"skipped":[],"duration":13221,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"13977e49-8000-4747-8bfb-8e2a8a0dc934","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"e132cbb4-b11c-4507-8195-ed88143ef25c","title":"> [timex] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/timex-test.js","file":"/test/generated/timex-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [timex] connect","fullTitle":" > [timex] without API keys > [timex] connect","timedOut":false,"duration":35,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0f594675-1ee8-4698-8668-a6f2591c8330","isHook":false,"skipped":false},{"title":"> [timex] markets","fullTitle":" > [timex] without API keys > [timex] markets","timedOut":false,"duration":188,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"90595341-cfa0-422b-a96c-3c139354ba48","isHook":false,"skipped":false},{"title":"> [timex] ticker","fullTitle":" > [timex] without API keys > [timex] ticker","timedOut":false,"duration":4359,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b005f31c-65d1-466e-a074-34fdc0ffaf52","isHook":false,"skipped":false},{"title":"> [timex] tickers","fullTitle":" > [timex] without API keys > [timex] tickers","timedOut":false,"duration":1520,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"597c756d-a4c9-489a-9be0-629d723b75d7","isHook":false,"skipped":false},{"title":"> [timex] orderBook","fullTitle":" > [timex] without API keys > [timex] orderBook","timedOut":false,"duration":2251,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"67d2a025-a85b-422a-a27c-74e019a2127d","isHook":false,"skipped":false},{"title":"> [timex] trades","fullTitle":" > [timex] without API keys > [timex] trades","timedOut":false,"duration":6942,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cace9d65-002e-4bc2-9f20-b9ee217dd80e","isHook":false,"skipped":false}],"suites":[],"passes":["0f594675-1ee8-4698-8668-a6f2591c8330","90595341-cfa0-422b-a96c-3c139354ba48","b005f31c-65d1-466e-a074-34fdc0ffaf52","597c756d-a4c9-489a-9be0-629d723b75d7","67d2a025-a85b-422a-a27c-74e019a2127d","cace9d65-002e-4bc2-9f20-b9ee217dd80e"],"failures":[],"pending":[],"skipped":[],"duration":15295,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"a9584155-d0cd-43f5-92c7-2a5397b98f51","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"0f49dc13-3b53-4356-9790-43db3fde62b5","title":"> [rightbtc] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/rightbtc-test.js","file":"/test/generated/rightbtc-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [rightbtc] connect","fullTitle":" > [rightbtc] without API keys > [rightbtc] connect","timedOut":false,"duration":65,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"bc20d1cf-460a-4f63-b2e4-18322ff4164d","isHook":false,"skipped":false},{"title":"> [rightbtc] markets","fullTitle":" > [rightbtc] without API keys > [rightbtc] markets","timedOut":false,"duration":167,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"03cac1d0-8fe7-46ba-9172-2b04c818cda0","isHook":false,"skipped":false},{"title":"> [rightbtc] ticker","fullTitle":" > [rightbtc] without API keys > [rightbtc] ticker","timedOut":false,"duration":3862,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"10619a46-75aa-4d04-9756-d5e89ca56867","isHook":false,"skipped":false},{"title":"> [rightbtc] tickers","fullTitle":" > [rightbtc] without API keys > [rightbtc] tickers","timedOut":false,"duration":2019,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f9000b88-2d42-47c5-9ac0-0c4996362051","isHook":false,"skipped":false},{"title":"> [rightbtc] orderBook","fullTitle":" > [rightbtc] without API keys > [rightbtc] orderBook","timedOut":false,"duration":7990,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"7f6882e8-fb43-4eff-a80e-e270ce0a6565","isHook":false,"skipped":false},{"title":"> [rightbtc] trades","fullTitle":" > [rightbtc] without API keys > [rightbtc] trades","timedOut":false,"duration":12536,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"cda26f84-36b6-41d6-9d57-c79950d21245","isHook":false,"skipped":false}],"suites":[],"passes":["bc20d1cf-460a-4f63-b2e4-18322ff4164d","03cac1d0-8fe7-46ba-9172-2b04c818cda0","10619a46-75aa-4d04-9756-d5e89ca56867","f9000b88-2d42-47c5-9ac0-0c4996362051","7f6882e8-fb43-4eff-a80e-e270ce0a6565","cda26f84-36b6-41d6-9d57-c79950d21245"],"failures":[],"pending":[],"skipped":[],"duration":26639,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"684e9aff-683f-44d5-92c9-08d341d03419","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"1868dd0f-3400-41e4-8500-ce20ab5e358a","title":"> [whitebit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/whitebit-test.js","file":"/test/generated/whitebit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [whitebit] connect","fullTitle":" > [whitebit] without API keys > [whitebit] connect","timedOut":false,"duration":34,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"603e6497-159c-42c5-9b2d-8eb47db4215f","isHook":false,"skipped":false},{"title":"> [whitebit] markets","fullTitle":" > [whitebit] without API keys > [whitebit] markets","timedOut":false,"duration":343,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"f232cf7e-fbd9-4748-abdd-871c20d84615","isHook":false,"skipped":false},{"title":"> [whitebit] ticker","fullTitle":" > [whitebit] without API keys > [whitebit] ticker","timedOut":false,"duration":3963,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0e3ef7a7-b7c3-43dc-b083-b275e6bc1691","isHook":false,"skipped":false},{"title":"> [whitebit] tickers","fullTitle":" > [whitebit] without API keys > [whitebit] tickers","timedOut":false,"duration":314,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5aec25f8-df58-40a6-b745-0b8a51c92196","isHook":false,"skipped":false},{"title":"> [whitebit] orderBook","fullTitle":" > [whitebit] without API keys > [whitebit] orderBook","timedOut":false,"duration":6727,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"83acb924-fafe-41a7-b60f-9d8e15ea945f","isHook":false,"skipped":false},{"title":"> [whitebit] trades","fullTitle":" > [whitebit] without API keys > [whitebit] trades","timedOut":false,"duration":2350,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0b6a97f1-8209-424d-9182-18e2a1800f01","isHook":false,"skipped":false}],"suites":[],"passes":["603e6497-159c-42c5-9b2d-8eb47db4215f","f232cf7e-fbd9-4748-abdd-871c20d84615","0e3ef7a7-b7c3-43dc-b083-b275e6bc1691","5aec25f8-df58-40a6-b745-0b8a51c92196","83acb924-fafe-41a7-b60f-9d8e15ea945f","0b6a97f1-8209-424d-9182-18e2a1800f01"],"failures":[],"pending":[],"skipped":[],"duration":13731,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"098ce60a-f140-4d7c-8eda-4c66500db975","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"c27b5c31-e282-473f-9467-8e3ec7a1ed73","title":"> [zaif] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/zaif-test.js","file":"/test/generated/zaif-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [zaif] connect","fullTitle":" > [zaif] without API keys > [zaif] connect","timedOut":false,"duration":38,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"11c735ff-9f3b-42a4-b4b1-cf13c139680c","isHook":false,"skipped":false},{"title":"> [zaif] markets","fullTitle":" > [zaif] without API keys > [zaif] markets","timedOut":false,"duration":1716,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"417bc2bc-9991-4e39-ae2f-aba86261ffd5","isHook":false,"skipped":false},{"title":"> [zaif] ticker","fullTitle":" > [zaif] without API keys > [zaif] ticker","timedOut":false,"duration":6857,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"b3ef7216-66cf-437b-9507-475b8e5250d3","isHook":false,"skipped":false},{"title":"> [zaif] tickers","fullTitle":" > [zaif] without API keys > [zaif] tickers","timedOut":false,"duration":12,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0dd85a7e-ee01-44eb-b0ad-686c7513c0bd","isHook":false,"skipped":false},{"title":"> [zaif] orderBook","fullTitle":" > [zaif] without API keys > [zaif] orderBook","timedOut":false,"duration":1982,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"c179af40-77d6-489c-87c9-c349426259c1","isHook":false,"skipped":false},{"title":"> [zaif] trades","fullTitle":" > [zaif] without API keys > [zaif] trades","timedOut":false,"duration":1998,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"61a2afa0-1f80-4a27-b670-70b3aa58e058","isHook":false,"skipped":false}],"suites":[],"passes":["11c735ff-9f3b-42a4-b4b1-cf13c139680c","417bc2bc-9991-4e39-ae2f-aba86261ffd5","b3ef7216-66cf-437b-9507-475b8e5250d3","0dd85a7e-ee01-44eb-b0ad-686c7513c0bd","c179af40-77d6-489c-87c9-c349426259c1","61a2afa0-1f80-4a27-b670-70b3aa58e058"],"failures":[],"pending":[],"skipped":[],"duration":12603,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"8cbb8095-7725-4b01-82d0-e96e341e39f8","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"9d4e9d65-7195-46f0-b5af-adb8f5643891","title":"> [topq] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/topq-test.js","file":"/test/generated/topq-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [topq] connect","fullTitle":" > [topq] without API keys > [topq] connect","timedOut":false,"duration":72,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"596ab065-bfbe-4585-9401-cbb21d16af1d","isHook":false,"skipped":false},{"title":"> [topq] markets","fullTitle":" > [topq] without API keys > [topq] markets","timedOut":false,"duration":17656,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"19b8108a-731b-4ab3-8a73-63e0bb88b677","isHook":false,"skipped":false},{"title":"> [topq] ticker","fullTitle":" > [topq] without API keys > [topq] ticker","timedOut":false,"duration":6057,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e7e01ab9-3930-49f6-baee-d5654a7c88e8","isHook":false,"skipped":false},{"title":"> [topq] tickers","fullTitle":" > [topq] without API keys > [topq] tickers","timedOut":false,"duration":115,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ea991fa9-d228-4f8d-a688-fd4814541e62","isHook":false,"skipped":false},{"title":"> [topq] orderBook","fullTitle":" > [topq] without API keys > [topq] orderBook","timedOut":false,"duration":181,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"e6b31024-c44f-4a02-9cc8-edfe094152a3","isHook":false,"skipped":false},{"title":"> [topq] trades","fullTitle":" > [topq] without API keys > [topq] trades","timedOut":false,"duration":93,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"3165c1ff-5682-4004-bfd8-17e031dad013","isHook":false,"skipped":false}],"suites":[],"passes":["596ab065-bfbe-4585-9401-cbb21d16af1d","19b8108a-731b-4ab3-8a73-63e0bb88b677","e7e01ab9-3930-49f6-baee-d5654a7c88e8","ea991fa9-d228-4f8d-a688-fd4814541e62","e6b31024-c44f-4a02-9cc8-edfe094152a3","3165c1ff-5682-4004-bfd8-17e031dad013"],"failures":[],"pending":[],"skipped":[],"duration":24174,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"940f48ea-2e00-42da-8120-0e1f5b452e51","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"97d6a7cc-55d5-42c0-9565-d1ced761fe91","title":"> [yobit] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/yobit-test.js","file":"/test/generated/yobit-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [yobit] connect","fullTitle":" > [yobit] without API keys > [yobit] connect","timedOut":false,"duration":55,"state":"passed","speed":"medium","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"da41aff8-7404-4856-bd6b-6c4ea2db0204","isHook":false,"skipped":false},{"title":"> [yobit] markets","fullTitle":" > [yobit] without API keys > [yobit] markets","timedOut":false,"duration":1704,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"ccf9fb16-da31-4327-875b-d075cd1ec082","isHook":false,"skipped":false},{"title":"> [yobit] ticker","fullTitle":" > [yobit] without API keys > [yobit] ticker","timedOut":false,"duration":7120,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"2ebd5546-0187-4892-a49d-b8a9c993a402","isHook":false,"skipped":false},{"title":"> [yobit] tickers","fullTitle":" > [yobit] without API keys > [yobit] tickers","timedOut":false,"duration":184,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"0fe879bc-dea1-425d-8010-0f684583c3ca","isHook":false,"skipped":false},{"title":"> [yobit] orderBook","fullTitle":" > [yobit] without API keys > [yobit] orderBook","timedOut":false,"duration":2624,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"5bd8dc84-35a9-42d5-8d9e-a26a0b448fb4","isHook":false,"skipped":false},{"title":"> [yobit] trades","fullTitle":" > [yobit] without API keys > [yobit] trades","timedOut":false,"duration":6600,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"a304bb98-aa33-4582-9f5a-69566121e6ea","isHook":false,"skipped":false}],"suites":[],"passes":["da41aff8-7404-4856-bd6b-6c4ea2db0204","ccf9fb16-da31-4327-875b-d075cd1ec082","2ebd5546-0187-4892-a49d-b8a9c993a402","0fe879bc-dea1-425d-8010-0f684583c3ca","5bd8dc84-35a9-42d5-8d9e-a26a0b448fb4","a304bb98-aa33-4582-9f5a-69566121e6ea"],"failures":[],"pending":[],"skipped":[],"duration":18287,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000},{"uuid":"dccdde40-a3fc-42ec-8701-fbb312fc5af8","title":"","fullFile":"","file":"","beforeHooks":[],"afterHooks":[],"tests":[],"suites":[{"uuid":"08002089-6eff-4039-aa92-093803dbd23d","title":"> [zb] without API keys","fullFile":"/home/travis/build/ccxt-rest/ccxt-rest/test/generated/zb-test.js","file":"/test/generated/zb-test.js","beforeHooks":[],"afterHooks":[],"tests":[{"title":"> [zb] connect","fullTitle":" > [zb] without API keys > [zb] connect","timedOut":false,"duration":32,"state":"passed","speed":"fast","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1da008c4-0c41-4530-aa7e-3425e23f075d","isHook":false,"skipped":false},{"title":"> [zb] markets","fullTitle":" > [zb] without API keys > [zb] markets","timedOut":false,"duration":8477,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"939c844c-9c82-4a84-a60b-8eb9a35ec5b5","isHook":false,"skipped":false},{"title":"> [zb] ticker","fullTitle":" > [zb] without API keys > [zb] ticker","timedOut":false,"duration":3044,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"00e2e2ba-a318-4174-9694-fdcf9df73b8a","isHook":false,"skipped":false},{"title":"> [zb] tickers","fullTitle":" > [zb] without API keys > [zb] tickers","timedOut":false,"duration":6564,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"65665075-f961-4ce7-ba97-926f16e3b80f","isHook":false,"skipped":false},{"title":"> [zb] orderBook","fullTitle":" > [zb] without API keys > [zb] orderBook","timedOut":false,"duration":5349,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"1cdb16f7-230b-4e47-866c-282a8da728b2","isHook":false,"skipped":false},{"title":"> [zb] trades","fullTitle":" > [zb] without API keys > [zb] trades","timedOut":false,"duration":4058,"state":"passed","speed":"slow","pass":true,"fail":false,"pending":false,"code":"if (config.canExecute(_ctx)) {\n this.timeout(0)\n const query = config.queryBuilder ? config.queryBuilder(_ctx) : undefined\n const url = `${_ctx.baseUrl}/exchange/${_ctx.exchangeName}/${subPath}`\n superagent\n .get(url)\n .query(query)\n .retry(3)\n .timeout(TIMEOUT_MS)\n .end((err, res) => {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = (res && res.status) || 408\n exchangeDetail[property].response = res && res.body\n })\n if (config.successCallback) {\n config.successCallback(_ctx, res)\n }\n assertResponse(res)\n done();\n });\n} else {\n logExchangeDetail(_ctx.exchangeName, exchangeDetail => {\n exchangeDetail[property] = exchangeDetail[property] || {}\n exchangeDetail[property].statusCode = 'n/a'\n })\n if (!REPORT_ONLY) {\n this.skip()\n }\n done()\n}","err":{},"isRoot":false,"uuid":"12672873-acf7-42b6-8496-92e1e45a9735","isHook":false,"skipped":false}],"suites":[],"passes":["1da008c4-0c41-4530-aa7e-3425e23f075d","939c844c-9c82-4a84-a60b-8eb9a35ec5b5","00e2e2ba-a318-4174-9694-fdcf9df73b8a","65665075-f961-4ce7-ba97-926f16e3b80f","1cdb16f7-230b-4e47-866c-282a8da728b2","12672873-acf7-42b6-8496-92e1e45a9735"],"failures":[],"pending":[],"skipped":[],"duration":27524,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":false,"rootEmpty":false,"_timeout":2000}],"passes":[],"failures":[],"pending":[],"skipped":[],"duration":0,"root":true,"rootEmpty":true,"_timeout":2000},"copyrightYear":2020}" data-config="{"reportFilename":"mochawesome","reportDir":"./out/exchange-summary-dashboard","reportTitle":"CCXT-REST Exchange Summary Dashboard","reportPageTitle":"CCXT-REST Exchange Summary Dashboard","inline":false,"inlineAssets":false,"cdn":false,"charts":true,"enableCharts":true,"code":true,"enableCode":true,"autoOpen":false,"overwrite":true,"timestamp":false,"ts":false,"showPassed":true,"showFailed":true,"showPending":true,"showSkipped":false,"showHooks":"failed","saveJson":true,"saveHtml":true,"dev":false,"assetsDir":"out/exchange-summary-dashboard/assets","jsonFile":"/home/travis/build/ccxt-rest/ccxt-rest/out/exchange-summary-dashboard/mochawesome.json","htmlFile":"/home/travis/build/ccxt-rest/ccxt-rest/out/exchange-summary-dashboard/mochawesome.html"}"><div id="report"></div><script src="assets/app.js"></script></body></html>