schrodinger.test.stu.client module¶
Client for communication with STU server. The core functionality is in
TestClient
and ResultReporter
, but most is accessible from the module
level convenience functions create
, retrieve
, update
, delete
, and
download
, which allow modification of the tests in the database.
@copyright: (c) Schrodinger, LLC. All rights reserved.
- exception schrodinger.test.stu.client.ClientError[source]¶
Bases:
Exception
Generic STU client error.
- __init__(*args, **kwargs)¶
- args¶
- with_traceback()¶
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- exception schrodinger.test.stu.client.ClientValueError[source]¶
Bases:
ValueError
Arguments to a client function are incorrect, or not fully determined.
- __init__(*args, **kwargs)¶
- args¶
- with_traceback()¶
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- class schrodinger.test.stu.client.ResultReporter(buildtype, build_id, mmshare, local_system, remote_system, username=None, release=None, build_log_address=None, comment=None, base_url=None, api_version=1)[source]¶
Bases:
object
Reporter that will upload results and files for a specific test run. (This is the
report
method.) Also marks runs as complete, with the option to send an email about test failures to the interested users (thecompleteRun
method).- __init__(buildtype, build_id, mmshare, local_system, remote_system, username=None, release=None, build_log_address=None, comment=None, base_url=None, api_version=1)[source]¶
- completeRun(duration, email=False)[source]¶
Record that the run is complete, and include the total duration. If email is True, trigger an email about test failures.
- property localhost¶
- property remotehost¶
- schrodinger.test.stu.client.set_failure_data(data, error_name, error_message)[source]¶
Modify test data in-place to indicate a test failure to the STU API.
- schrodinger.test.stu.client.raise_for_status(response)[source]¶
If
response
has a bad status, raise an Exception. First, however, be sure to print any data available from the exception.- Parameters
response (requests.models.Response) – Response to check for exit status problems.
- schrodinger.test.stu.client.check_status(response, required_statuses)[source]¶
Raise an error if the status does not match
required_status
. :type required_status: int :param required_status: Status to match
- schrodinger.test.stu.client.fatal_status(exception)[source]¶
This method should return True only if exception is an HTTPError, and the status code is NOT retriable.
- class schrodinger.test.stu.client.ApiKeyAuth(username)[source]¶
Bases:
requests.auth.AuthBase
An authorization method that uses an api key.
- class schrodinger.test.stu.client.TestClient(username=None, base_url=None, api_version=1)[source]¶
Bases:
schrodinger.test.stu.client._BaseClient
Interact with the Test server. Create, Retrieve, Update, and Delete tests. Also upload and download the associated files.
- retrieve(test_ids=None, products=None, components=None, priorities=None, tags=None, not_products=(), not_components=(), not_tags=())[source]¶
Retrieve tests based on some limiting criteria. The only method that operates on more than one test at a time. A bit weird?
- find_one(criteria)[source]¶
Find a single STU test that matches the search criteria.
- Parameters
criteria (dict) – Search criteria, uses the exact names of parameters on the server. (does not interpret them in the way that retrieve does)
- Raises
ClientError – If more than one test is found.
IndexError – If no tests are found.
- get_or_create(search_criteria, creation_data=None)[source]¶
Find a test corresponding to search_criteria. If no test is found, create a test using creation_data.
- Parameters
search_criteria (dict) – Search criteria.
creation_data (dict) – Data to be used to create the test if none exists.
- download(test, directory=None, overwrite=True)[source]¶
Download and extract the files associated with
test
. Overwrites existing contents of the directory.
- upload(test, directory=None)[source]¶
Upload a directory to the server. If the test has a directory attribute, use that. Otherwise, based on the test number.
- property auth¶
- property fullapi¶
- get(uri, **kwargs)¶
- getResourceURI(response=None)¶
Get an API rooted address from a full address.
- classmethod instance(username, base_url=None, api_version=1)¶
- item_uri(item)¶
- list2str(items)¶
- patch(uri, required_statuses=(202,), **kwargs)¶
- post(uri, required_statuses=(201,), **kwargs)¶
- put(uri, **kwargs)¶
- safename(oldname)¶
Ensure that the name is safe and that path separators are consistent on Linux and Windows.
- Parameters
oldname (str) – String to be protected
- Return type
str
- Returns
String with with all path separators replaced by / and all non-URL-safe characters protected.