def setUp(self): self.variant = 'ACT_VARIANT' self.worklist_id = 'WORKLIST_ID' self.request_create_worklist = Request( method='POST', adt_uri='/sap/bc/adt/atc/worklists', params={'checkVariant': self.variant}, headers={'Accept': 'text/plain'}, body=None) self.request_run_worklist = Request( method='POST', adt_uri='/sap/bc/adt/atc/runs', params={'worklistId': self.worklist_id}, headers={ 'Accept': 'application/xml', 'Content-Type': 'application/xml' }, body=ADT_XML_ATC_RUN_REQUEST_PACKAGE) self.request_get_worklist = Request( method='GET', adt_uri=f'/sap/bc/adt/atc/worklists/{self.worklist_id}', params={'includeExemptedFindings': 'false'}, headers={'Accept': 'application/atc.worklist.v1+xml'}, body=None) self.conn = Connection([ Response(status_code=200, text=self.worklist_id, headers={'Content-Type': 'text/plain'}), Response(status_code=200, text=ADT_XML_ATC_RUN_RESPONSE_NO_OBJECTS, headers={'Content-Type': 'application/xml'}), Response( status_code=200, text=ADT_XML_ATC_WORKLIST_EMPTY, headers={'Content-Type': 'application/atc.worklist.v1+xml'}) ]) self.checks_runner = sap.adt.atc.ChecksRunner(self.conn, self.variant)
def test_not_json_response(self): req = Request(method='GET', adt_uri='/epic/success', headers=None, body=None, params=None) res = Response(status_code=401, text='Not JSON') orig_error = UnauthorizedError(req, res, 'foo') new_error = sap.rest.gcts.exception_from_http_error(orig_error) self.assertEqual(new_error, orig_error)
def test_get_transport_requests(self): connection = Connection([Response(SHORTENED_WORKBENCH_XML, 200, {})]) workbench = sap.adt.cts.Workbench(connection) transport = workbench.get_transport_requests(user='******') self.assertEqual(connection.execs, [ Request('GET', f'/sap/bc/adt/cts/transportrequests', { 'Accept': 'application/vnd.sap.adt.transportorganizer.v1+xml' }, None, sap.adt.cts.workbench_params('FILAK')) ]) self.assert_trasport_equal(transport[0], connection) self.assert_task_equal(transport[0].tasks[0], connection)
def test_repository_does_not_exist(self): messages = {'exception': 'No relation between system and repository'} req = Request(method='GET', adt_uri='/epic/success', headers=None, body=None, params=None) res = Response.with_json(status_code=500, json=messages) orig_error = HTTPRequestError(req, res) new_error = sap.rest.gcts.exception_from_http_error(orig_error) expected_error = sap.rest.gcts.GCTSRepoNotExistsError(messages) self.assertEqual(str(new_error), str(expected_error))
def test_delete_ok(self): repo = sap.rest.gcts.Repository(self.conn, self.repo_name, data=self.repo_server_data) repo.delete() self.assertIsNone(repo._data) self.assertEqual(len(self.conn.execs), 1) self.conn.execs[0].assertEqual( Request(method='DELETE', adt_uri=f'repository/{self.repo_name}', params=None, headers=None, body=None), self)
def do_check_release(self, factory): """Check it correctly builds the URL with parameters and returns the expected data. """ connection = Connection([Response(TASK_RELEASE_OK_RESPONSE, 200, {})]) wbr = factory(connection, TASK_NUMBER) resp = wbr.release() self.assertEqual(connection.execs, [ Request( 'POST', f'/sap/bc/adt/cts/transportrequests/{TASK_NUMBER}/newreleasejobs', { 'Accept': 'application/vnd.sap.adt.transportorganizer.v1+xml' }, None, None) ]) self.assertEqual(resp, TASK_RELEASE_OK_RESPONSE)
import sap.adt import sap.adt.atc import sap.adt.objects from sap.adt.marshalling import Marshal from mock import Connection, Response, Request from fixtures_adt_atc import ADT_XML_ATC_CUSTOMIZING, ADT_XML_ATC_CUSTOMIZING_ATTRIBUTES, ADT_XML_ATC_RUN_REQUEST_CLASS, \ ADT_XML_ATC_RUN_RESPONSE_FAILURES, ADT_XML_ATC_RUN_RESPONSE_NO_OBJECTS, \ ADT_XML_ATC_WORKLIST_EMPTY, ADT_XML_ATC_WORKLIST_CLASS, ADT_XML_ATC_RUN_REQUEST_PACKAGE, \ ADT_XML_PROFILES_TABLE, ADT_XML_PROFILES_TRAN_TABLE, ADT_XML_PROFILES_CHECKS_TABLE, \ ADT_XML_PROFILES_CHKMSG_LOCAL_TABLE HEADER_ACCEPT = f'application/xml, {sap.adt.atc.CUSTOMIZING_MIME_TYPE_V1}' ATC_CUSTOMIZIN_REQUEST = Request('GET', '/sap/bc/adt/atc/customizing', headers={'Accept': HEADER_ACCEPT}, body=None, params=None) class TestCustomizing(unittest.TestCase): def test_fetch_response_customizing(self): conn = Connection([ Response(status_code=200, content_type=sap.adt.atc.CUSTOMIZING_MIME_TYPE_V1, text=ADT_XML_ATC_CUSTOMIZING_ATTRIBUTES) ]) customizing = sap.adt.atc.fetch_customizing(conn) self.assertEqual(customizing.system_check_variant, 'OPENABAPCHECKS')