Пример #1
0
    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'
            )
Пример #2
0
    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')
Пример #3
0
    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')
Пример #4
0
    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')