def test_lock_modify_invalid(self): response = Response(text='invalid', status_code=200, headers={'Content-Type': 'text/plain'}) connection = Connection([response, response]) victory = DummyADTObject(connection=connection) try: victory.lock() self.assertFail('Exception was expected') except SAPCliError as ex: self.assertEquals( str(ex), f'Object {victory.uri}: lock response does not have lock result\ninvalid' ) try: victory.lock() self.assertFail('Exception was expected') except SAPCliError as ex: self.assertEquals( str(ex), f'Object {victory.uri}: lock response does not have lock result\ninvalid' )
def test_lock_modify_ok(self): connection = Connection([LOCK_RESPONSE_OK, LOCK_RESPONSE_OK]) victory = DummyADTObject(connection=connection) handle = victory.lock() self.assertEquals(handle, 'win') self.assertEqual([(e.method, e.adt_uri) for e in connection.execs], [('POST', '/sap/bc/adt/awesome/success/noobject')]) lock_request = connection.execs[0] self.assertEqual(sorted(lock_request.params.keys()), ['_action', 'accessMode']) self.assertEqual(lock_request.params['_action'], 'LOCK') self.assertEqual(lock_request.params['accessMode'], 'MODIFY') self.assertEqual(sorted(lock_request.headers.keys()), ['Accept', 'X-sap-adt-sessiontype']) self.assertEqual(lock_request.headers['X-sap-adt-sessiontype'], 'stateful') self.assertEqual( lock_request.headers['Accept'], 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result;q=0.8, application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result2;q=0.9' ) handle = victory.lock() self.assertEquals(handle, 'win')
def test_lock_modify_ok(self): connection = Connection([LOCK_RESPONSE_OK]) victory = DummyADTObject(connection=connection) victory.lock() self.assertEquals(victory._lock, 'win') self.assertEqual([(e.method, e.adt_uri) for e in connection.execs], [('POST', '/sap/bc/adt/awesome/success/noobject')]) lock_request = connection.execs[0] self.assertEqual(sorted(lock_request.params.keys()), ['_action', 'accessMode']) self.assertEqual(lock_request.params['_action'], 'LOCK') self.assertEqual(lock_request.params['accessMode'], 'MODIFY') self.assertEqual(sorted(lock_request.headers.keys()), ['Accept', 'X-sap-adt-sessiontype']) self.assertEqual(lock_request.headers['X-sap-adt-sessiontype'], 'stateful') self.assertEqual( lock_request.headers['Accept'], 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result;q=0.8, application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result2;q=0.9' ) try: victory.lock() self.assertFail('Exception was expected') except SAPCliError as ex: self.assertEquals(str(ex), f'Object {victory.uri}: already locked')
def test_unlock_ok(self): connection = Connection([LOCK_RESPONSE_OK, None]) victory = DummyADTObject(connection=connection) victory.lock() victory.unlock() self.assertIsNone(victory._lock) self.assertEqual([(e.method, e.adt_uri) for e in connection.execs], 2 * [('POST', '/sap/bc/adt/awesome/success/noobject')]) unlock_request = connection.execs[1] self.assertEqual(sorted(unlock_request.params.keys()), ['_action', 'lockHandle']) self.assertEqual(unlock_request.params['_action'], 'UNLOCK') self.assertEqual(unlock_request.params['lockHandle'], 'win') self.assertEqual(sorted(unlock_request.headers.keys()), ['X-sap-adt-sessiontype']) self.assertEqual(unlock_request.headers['X-sap-adt-sessiontype'], 'stateful')