Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

testspace-python

Python module to use Testspace API and client. Provides a python object that can manage the following Testspace items: url, token, project name and space name. It also provides functions to push results and handle most common API requests.

Usage

To use the module the items listed below are needed.

  • Organization url (organization.testspace.com)
  • Testspace token
  • Project name (optional)
  • Space name (optional)

Project and Space names do not have to be set on instantiation of the Testspace object and can be passed as parameters to any function call that requires them. They can also be passed into any of the functions to override, but not update the objects stored values, otherwise the stored values for project and space will be used.

from testspace import testspace as ts
token = "access token"
url = "organization.testspace.com"
project = "project name"
space= "space name"
testspace = ts.Testspace(token=token, url=url, project=project, space=space)

Testspace Client

Provides a python wrapper to use the Testspace client for pushing content to Testspace. Optional parameters to this function are available to provide the name of file to push, name of the result set and how.

Example

testspace = ts.Testspace(token=token, url=url, project=project, space=space)
testspace.push(file="testresults.xml", result_name="build.1", how="full")

The following Testspace client options are also supported as parameters to the push function.

Client OptionFunction Parameter
build-urlbuild_url
reporepo
linklink
messagemessage

Testspace API

Provides a python wrapper for the Testspace API. The available functions mirror the structure of the documented API endpoints, with GET, POST, PATCH, and DELETE options available as appropriate for the endpoint. Where names in addition to id's are supported in the API, they can be used interchangably here as well. All functions return any JSON response as a result of the request, see Testspace API help for details of each response. For any Testspace API that returns a list, the page size default limit of 30 is used, for any of these function the limit parameter can be added with an integer value for the desired maximum number of returned items. All requests are checked with raise_for_status with the expectation that any exceptions will be appropriately handled by user of the module.

Projects

Get List of Projects
testspace.get_projects(limit=30)
Get a Project
testspace.get_project(project=None)
Create a Project
payload = {"name": "new project name"}
testspace.post_projects(payload=payload)
Update a Project
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None):
Delete a Project
testspace.delete_project(project=None)

Spaces

Get List of Spaces for a Project
testspace.get_spaces(project=None, limit=30)
Get specific space
testspace.get_space(project=None, space=None)
Create a Space
payload = {"name": "new space name"}
testspace.post_spaces(payload=payload, project=None)
Update a Space
payload = {"description": "Awesome project"}
testspace.patch_project(payload, project=None, space=None):
Delete a Space
testspace.delete_space(project=None, space=None)

Results

Get list of Results
testspace.get_results(project=None, space=None, limit=30)

Get Result

testspace.get_result(result, project=None, space=None)

Failures

Get list of Result Failures
testspace.get_result_failures(result, project=None, space=None, limit=30)

Contents

Get Result Contents
# contents_path is used to obtain contents that are not at the root of the result
testspace.get_result_contents(result, contents_path=None, project=None, space=None, limit=30)

Metric Dataset

Get Metric Dataset
# Id must be as name resolution is not supported for metrics.
testspace.get_metric_datasets(metric, project=None, space=None, limit=30)

Metrics

Get List of Metrics for a Space
testspace.get_metrics(project=None, space=None, limit=30)
Get Metric for a Space
# metric must be id as name resolution is not supported for this.
testspace.get_metric(metric, project=None, space=None)
Create a Space Metric
payload = {
"name": "MyMetric",
"data_source": "/path/to/suite[dataset_label]"
}
testspace.post_metrics(payload, project=None, space=None)
Update a Space Metric
payload = {
"data_source": "/path/to/suite[dataset_label]"
}
testspace.patch_metrics(payload, metric, project=None, space=None)
Delete a Space Metric
testspace.delete_metric(metric, project=None, space=None)

About

Library to interact with Testspace API.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages