Esempio n. 1
0
    def test_push(self):
        connection = Connection(
            [LOCK_RESPONSE_OK, EMPTY_RESPONSE_OK, EMPTY_RESPONSE_OK])
        victory = DummyADTObject(connection=connection,
                                 name='SOFTWARE_ENGINEER')

        with victory.open_editor() as editor:
            editor.push()

        self.assertEqual(
            connection.mock_methods(),
            [('POST', '/sap/bc/adt/awesome/success/software_engineer'),
             ('PUT', '/sap/bc/adt/awesome/success/software_engineer'),
             ('POST', '/sap/bc/adt/awesome/success/software_engineer')])

        request = connection.execs[1]

        self.assertEqual(sorted(request.headers.keys()), ['Content-Type'])
        self.assertEqual(request.headers['Content-Type'],
                         'application/vnd.sap.super.cool.txt+xml')

        self.assertEqual(sorted(request.params.keys()), ['lockHandle'])
        self.assertEqual(request.params['lockHandle'], 'win')

        self.maxDiff = None
        self.assertEqual(
            request.body, '''<?xml version="1.0" encoding="UTF-8"?>
<win:dummies xmlns:win="http://www.example.com/never/lose" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:type="DUMMY/S" adtcore:description="adt fixtures dummy object" adtcore:name="SOFTWARE_ENGINEER">
<adtcore:packageRef/>
</win:dummies>''')
Esempio n. 2
0
    def test_2_reportes_2_classes(self):
        connection = Connection([
            Response(
                status_code=200,
                content_type=
                'application/vnd.sap.adt.checkmessages+xml; charset=utf-8',
                text=ADT_XML_RUN_CHECK_2_REPORTERS)
        ])

        reporter = sap.adt.checks.Reporter('abapCheckRun')
        reporter.supported_types = '*'

        reports = sap.adt.checks.run_for_supported_objects(
            connection, reporter, [
                sap.adt.Class(connection, 'CL_FIRST'),
                sap.adt.Class(connection, 'CL_SECOND')
            ])

        self.assertEqual(connection.mock_methods(),
                         [('POST', '/sap/bc/adt/checkruns')])
        self.assertEqual(connection.execs[0].body, FIXTURE_TWO_CLASSES_REQUEST)

        self.assertEqual(['abapCheckRun', 'tableStatusCheck'],
                         [report.reporter for report in reports])
        self.assertEqual(['First', 'Second'],
                         [msg.short_text for msg in reports[0].messages])
        self.assertEqual(['Third', 'Fourth'],
                         [msg.short_text for msg in reports[1].messages])
    def read_package_node(self, responses, nodekeys):
        connection = Connection(responses)

        mypkg = sap.adt.Package(connection, '$VICTORY')

        repository = sap.adt.Repository(connection)

        if nodekeys is None:
            node = repository.read_node(mypkg)
        else:
            node = repository.read_node(mypkg, nodekeys=nodekeys)

        self.assertEqual(connection.mock_methods(),
                         [('POST', '/sap/bc/adt/repository/nodestructure')])

        self.assertEqual(
            connection.execs[0].headers, {
                'Accept':
                'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.RepositoryObjectTreeContent',
                'Content-Type':
                'application/vnd.sap.as+xml; charset=UTF-8; dataname=null'
            })

        self.assertEqual(
            connection.execs[0].params, {
                'parent_name': '$VICTORY',
                'parent_tech_name': '$VICTORY',
                'parent_type': 'DEVC/K',
                'withShortDescriptions': 'false'
            })

        return (node, connection)
    def test_adt_include_serialize(self):
        conn = Connection()

        metadata = sap.adt.ADTCoreData(language='EN',
                                       master_language='EN',
                                       master_system='NPL',
                                       responsible='FILAK')
        include = sap.adt.Include(conn,
                                  'ZHELLO_INCLUDE',
                                  package='$TEST',
                                  metadata=metadata)
        include.description = 'Hello include!'
        include.create()

        self.assertEqual(conn.mock_methods(),
                         [('POST', '/sap/bc/adt/programs/includes')])
        self.assertEqual(
            conn.execs[0].headers, {
                'Content-Type':
                'application/vnd.sap.adt.programs.includes.v2+xml; charset=utf-8'
            })
        self.assertIsNone(conn.execs[0].params)

        self.maxDiff = None
        self.assertEqual(conn.execs[0].body.decode('utf-8'),
                         CREATE_INCLUDE_PROGRAM_ADT_XML)
    def test_adt_package_fetch(self):
        conn = Connection([Response(text=GET_PACKAGE_ADT_XML,
                                    status_code=200,
                                    headers={'Content-Type': 'application/vnd.sap.adt.packages.v1+xml; charset=utf-8'})])

        package = sap.adt.Package(conn, '$IAMTHEKING')
        package.fetch()

        self.assertEqual(len(conn.execs), 1)

        self.assertEqual(conn.mock_methods(), [('GET', '/sap/bc/adt/packages/%24iamtheking')])

        self.maxDiff = None
        self.assertEqual(package.description, 'This is a package')
Esempio n. 6
0
    def test_fetch(self):
        connection = Connection([Response(text=GET_DUMMY_OBJECT_ADT_XML, status_code=200, headers={})])
        victory = DummyADTObject(connection=connection, name='SOFTWARE_ENGINEER')
        victory.fetch()

        self.assertEqual(connection.mock_methods(), [('GET', '/sap/bc/adt/awesome/success/software_engineer')])

        self.assertEqual(victory.description, 'You cannot stop me!')
        self.assertEqual(victory.language, 'CZ')
        self.assertEqual(victory.name, 'SOFTWARE_ENGINEER')
        self.assertEqual(victory.master_language, 'EN')
        self.assertEqual(victory.master_system, 'NPL')
        self.assertEqual(victory.responsible, 'DEVELOPER')
        self.assertEqual(victory.active, 'active')
        self.assertEqual(victory.reference.name, 'UNIVERSE')
Esempio n. 7
0
    def test_adt_include_fetch(self):
        conn = Connection([Response(text=GET_INCLUDE_PROGRAM_ADT_XML, status_code=200, headers={})])
        include = sap.adt.Include(conn, 'ZHELLO_INCLUDE')
        include.fetch()

        self.assertEqual(conn.mock_methods(), [('GET', '/sap/bc/adt/programs/includes/zhello_include')])

        get_request = conn.execs[0]
        self.assertIsNone(get_request.params)
        self.assertIsNone(get_request.headers)

        self.assertEqual(include.name, 'ZHELLO_INCLUDE')
        self.assertEqual(include.active, 'inactive')
        self.assertEqual(include.master_language, 'EN')
        self.assertEqual(include.description, 'Hello include!')
        self.assertEqual(include.fix_point_arithmetic, False)
Esempio n. 8
0
    def write_test_with_activation(self, typ):
        args = parse_args(['write', 'ZCL_WRITER', '--type', typ, '-', '--activate'])

        conn = Connection([LOCK_RESPONSE_OK, EMPTY_RESPONSE_OK, EMPTY_RESPONSE_OK, EMPTY_RESPONSE_OK])

        with patch('sys.stdin', StringIO('* new content')):
            args.execute(conn, args)

        self.assertEqual(conn.mock_methods(),
                         [('POST', f'/sap/bc/adt/oo/classes/zcl_writer'),
                          ('PUT', f'/sap/bc/adt/oo/classes/zcl_writer/includes/{typ}'),
                          ('POST', f'/sap/bc/adt/oo/classes/zcl_writer'),
                          ('POST', f'/sap/bc/adt/activation')])

        activate_request = conn.execs[3]
        self.assertIn('adtcore:uri="/sap/bc/adt/oo/classes/zcl_writer"', activate_request.body)
        self.assertIn('adtcore:name="ZCL_WRITER"', activate_request.body)
Esempio n. 9
0
    def test_adt_ddl_activate(self):
        conn = Connection([EMPTY_RESPONSE_OK])

        ddl = sap.adt.DataDefinition(conn, name='MyUsers')
        sap.adt.wb.activate(ddl)

        self.assertEqual(conn.mock_methods(), [('POST', '/sap/bc/adt/activation')])

        get_request = conn.execs[0]
        self.assertEqual(sorted(get_request.headers), ['Accept', 'Content-Type'])
        self.assertEqual(get_request.headers['Accept'], 'application/xml')
        self.assertEqual(get_request.headers['Content-Type'], 'application/xml')

        self.assertEqual(sorted(get_request.params), ['method', 'preauditRequested'])
        self.assertEqual(get_request.params['method'], 'activate')
        self.assertEqual(get_request.params['preauditRequested'], 'true')

        self.assertEqual(get_request.body, FIXTURE_ACTIVATION_REQUEST_XML)
Esempio n. 10
0
    def test_adt_ddl_read(self):
        conn = Connection([Response(text=FIXTURE_CDS_CODE,
                                 status_code=200,
                                 headers={'Content-Type': 'text/plain; charset=utf-8'})])

        ddl = sap.adt.DataDefinition(conn, name='MyUsers')
        code = ddl.text

        self.assertEqual(conn.mock_methods(), [('GET', '/sap/bc/adt/ddic/ddl/sources/myusers/source/main')])

        get_request = conn.execs[0]
        self.assertEqual(sorted(get_request.headers), ['Accept'])
        self.assertEqual(get_request.headers['Accept'], 'text/plain')

        self.assertIsNone(get_request.params)
        self.assertIsNone(get_request.body)

        self.maxDiff = None
        self.assertEqual(code, FIXTURE_CDS_CODE)