Example #1
0
    def runTest(self):
        logging.info('  -- Test PEP03: PEP happy cycle')
        repo_dir = 'work/PEP/03/policyDirectory_basic_' + localconfig.AODS_INDICATOR
        pepoutdir = make_dirs('work/PEP/03/pepout/', dir=True)
        request_queue = os.path.join(repo_dir, constants.GIT_REQUESTQUEUE)
        cliClient = CliPep(['--verbose',
                            '--aods', os.path.join(repo_dir, constants.GIT_POLICYDIR, 'pol_journal.xml'), 
                            '--pepoutdir', pepoutdir,
                            '--repodir', os.path.abspath(repo_dir),
                            '--trustedcerts', os.path.abspath('testdata/trustedcerts.json')])
        logging.debug('    - creating fresh git repo in ' + repo_dir + ', adding test data')
        gitHandler = githandler.GitHandler(cliClient.args.repodir,
                                           pepoutdir,
                                           init=True,
                                           verbose=cliClient.args.verbose)
        gitHandler.reset_repo_with_defined_testdata(
                'testdata/PEP/03/policyDirectory_basic_%s' % localconfig.AODS_INDICATOR, repo_dir)
        logging.debug('    - processing request queue')
        PEP.run_me(cliClient)

        for fn in ('gondorWienGvAt_idp.xml',
                   'redmineIdentineticsCom_idp.xml',
                   'wwwTestPortalverbundGvAt.xml'):
            requ1_source = os.path.join(request_queue, fn)
            requ1_result = os.path.join(pepoutdir, fn)
            assert os.path.isfile(requ1_result), 'expected %s in pepoutdir directory: ' % requ1_result
            assert not os.path.isfile(requ1_source), 'expected %s not to be in request_queue: ' % requ1_result
Example #2
0
    def runTest(self):
        logging.info("  -- Test PEP05: PEP delete ok cycle")
        repo_dir = "work/PEP/03/policyDirectory_basic_" + localconfig.AODS_INDICATOR
        pepoutdir = "work/PEP/03/pepout/"
        cliClient = CliPep(
            [
                "--verbose",
                "--aods",
                os.path.join(repo_dir, constants.GIT_POLICYDIR, "pol_journal.xml"),
                "--pepoutdir",
                pepoutdir,
                "--repodir",
                os.path.abspath(repo_dir),
                "--trustedcerts",
                os.path.abspath("testdata/trustedcerts.json"),
            ]
        )
        logging.debug("    - adding to test 03 git repo in " + repo_dir)
        gitHandler = githandler.GitHandler(
            cliClient.args.repodir, pepoutdir, init=False, verbose=cliClient.args.verbose
        )
        gitHandler.add_request_message("testdata/PEP/05/wwwTestPortalverbundGvAt.xml")
        logging.debug("    - processing request queue")
        PEP.run_me(cliClient)

        for fn in ("wwwTestPortalverbundGvAt.xml",):
            requ1_result = os.path.join(pepoutdir, fn)
            assert not os.path.isfile(requ1_result), "expected %s not to be in pepoutdir directory: " % requ1_result
            requ2_result = os.path.join(repo_dir, constants.GIT_DELETED, fn)
            assert os.path.isfile(requ2_result), 'expected %s in "deleted" repo sub-directory: ' % requ2_result
Example #3
0
    def runTest(self):
        logging.info("  -- Test PEP03: PEP happy cycle")
        repo_dir = "work/PEP/03/policyDirectory_basic_" + localconfig.AODS_INDICATOR
        pepoutdir = make_dirs("work/PEP/03/pepout/", dir=True)
        request_queue = os.path.join(repo_dir, constants.GIT_REQUESTQUEUE)
        cliClient = CliPep(
            [
                "--verbose",
                "--aods",
                os.path.join(repo_dir, constants.GIT_POLICYDIR, "pol_journal.xml"),
                "--pepoutdir",
                pepoutdir,
                "--repodir",
                os.path.abspath(repo_dir),
                "--trustedcerts",
                os.path.abspath("testdata/trustedcerts.json"),
            ]
        )
        logging.debug("    - creating fresh git repo in " + repo_dir + ", adding test data")
        gitHandler = githandler.GitHandler(cliClient.args.repodir, pepoutdir, init=True, verbose=cliClient.args.verbose)
        gitHandler.reset_repo_with_defined_testdata(
            "testdata/PEP/03/policyDirectory_basic_%s" % localconfig.AODS_INDICATOR, repo_dir
        )
        logging.debug("    - processing request queue")
        PEP.run_me(cliClient)

        for fn in ("gondorWienGvAt_idp.xml", "redmineIdentineticsCom_idp.xml", "wwwTestPortalverbundGvAt.xml"):
            requ1_source = os.path.join(request_queue, fn)
            requ1_result = os.path.join(pepoutdir, fn)
            assert os.path.isfile(requ1_result), "expected %s in pepoutdir directory: " % requ1_result
            assert not os.path.isfile(requ1_source), "expected %s not to be in request_queue: " % requ1_result
Example #4
0
    def runTest(self):
        logging.info("  -- Test PEP04: reject a batch of invalid/unauthorized requests")
        repo_dir = "work/PEP/04/policyDirectory_unauth_" + localconfig.AODS_INDICATOR
        request_queue = os.path.join(repo_dir, constants.GIT_REQUESTQUEUE)
        pepoutdir = make_dirs("work/PEP/04/pepout/", dir=True)
        cliClient = CliPep(
            [
                "--verbose",
                "--aods",
                os.path.join(repo_dir, constants.GIT_POLICYDIR, "pol_journal.xml"),
                "--pepoutdir",
                pepoutdir,
                "--repodir",
                os.path.abspath(repo_dir),
                "--trustedcerts",
                os.path.abspath("testdata/trustedcerts.json"),
            ]
        )
        logging.debug("    - creating fresh git repo in " + repo_dir + ", adding test data")
        gitHandler = githandler.GitHandler(cliClient.args.repodir, pepoutdir, init=True, verbose=cliClient.args.verbose)
        gitHandler.reset_repo_with_defined_testdata(
            "testdata/PEP/04/policyDirectory_unauthz_%s" % localconfig.AODS_INDICATOR, repo_dir
        )

        logging.debug("    - processing request queue")
        PEP.run_me(cliClient)

        # ttab is a list of 2-tuples containing file expected in the reject dir, and
        # the start of the accompaning error message
        ttab = (
            ("fatamorganaIdentineticsCom.xml", "rejected deletion request for non existing EntityDescriptor"),
            ("gondorWienGvAt_delete.xml", "Invalid format for EntitiyDescriptor filename"),
            ("idpExampleCom_idpXmlUnsigned.xml", "Signature verification failed"),
            ("idpExampleCom_idpXml.xml", "Signer certificate not found in policy directory"),
            ("redmineIdentineticsOrg_req.xml", "Invalid format for EntitiyDescriptor filename"),
        )

        for (fn, requ_errmsg) in ttab:
            requ_srcpath = os.path.join(request_queue, fn)
            requ_destpath = os.path.join(repo_dir, constants.GIT_REJECTED, fn)
            assert os.path.isfile(requ_destpath), "expected %s in rejected directory: " % requ_destpath
            assert not os.path.isfile(requ_srcpath), "%s should not be left in request_queue: " % requ_destpath
            with open(requ_destpath + ".err") as f:
                assert f.read().startswith(requ_errmsg), (
                    'expected error log to contain "' + requ_errmsg + '" for file ' + fn
                )
Example #5
0
    def runTest(self):
        logging.info('  -- Test PEP04: reject a batch of invalid/unauthorized requests')
        repo_dir = 'work/PEP/04/policyDirectory_unauth_' + localconfig.AODS_INDICATOR
        request_queue = os.path.join(repo_dir, constants.GIT_REQUESTQUEUE)
        pepoutdir = make_dirs('work/PEP/04/pepout/', dir=True)
        cliClient = CliPep(['--verbose',
                            '--aods', os.path.join(repo_dir, constants.GIT_POLICYDIR, 'pol_journal.xml'), 
                            '--pepoutdir', pepoutdir,
                            '--repodir', os.path.abspath(repo_dir),
                            '--trustedcerts', os.path.abspath('testdata/trustedcerts.json')])
        logging.debug('    - creating fresh git repo in ' + repo_dir + ', adding test data')
        gitHandler = githandler.GitHandler(cliClient.args.repodir,
                                           pepoutdir,
                                           init=True,
                                           verbose=cliClient.args.verbose)
        gitHandler.reset_repo_with_defined_testdata(
                'testdata/PEP/04/policyDirectory_unauthz_%s' % localconfig.AODS_INDICATOR, repo_dir)

        logging.debug('    - processing request queue')
        PEP.run_me(cliClient)

        # ttab is a list of 2-tuples containing file expected in the reject dir, and
        # the start of the accompaning error message
        ttab = (('fatamorganaIdentineticsCom.xml','rejected deletion request for non existing EntityDescriptor'),
                ('gondorWienGvAt_delete.xml','Invalid format for EntitiyDescriptor filename'),
                ('idpExampleCom_idpXmlUnsigned.xml','Signature verification failed'),
                ('idpExampleCom_idpXml.xml','Signer certificate not found in policy directory'),
                ('redmineIdentineticsOrg_req.xml', 'Invalid format for EntitiyDescriptor filename'),
                )

        for (fn, requ_errmsg) in ttab:
            requ_srcpath = os.path.join(request_queue, fn)
            requ_destpath = os.path.join(repo_dir, constants.GIT_REJECTED, fn)
            assert os.path.isfile(requ_destpath), 'expected %s in rejected directory: ' % requ_destpath
            assert not os.path.isfile(requ_srcpath), '%s should not be left in request_queue: ' % requ_destpath
            with open(requ_destpath + '.err') as f:
                assert f.read().startswith(requ_errmsg), 'expected error log to contain "' + \
                                                         requ_errmsg + '" for file ' + fn
Example #6
0
    def runTest(self):
        logging.info('  -- Test PEP05: PEP delete ok cycle')
        repo_dir = 'work/PEP/03/policyDirectory_basic_' + localconfig.AODS_INDICATOR
        pepoutdir = 'work/PEP/03/pepout/'
        cliClient = CliPep(['--verbose',
                            '--aods', os.path.join(repo_dir, constants.GIT_POLICYDIR, 'pol_journal.xml'),
                            '--pepoutdir', pepoutdir,
                            '--repodir', os.path.abspath(repo_dir),
                            '--trustedcerts', os.path.abspath('testdata/trustedcerts.json')])
        logging.debug('    - adding to test 03 git repo in ' + repo_dir)
        gitHandler = githandler.GitHandler(cliClient.args.repodir,
                                           pepoutdir,
                                           init=False,
                                           verbose=cliClient.args.verbose)
        gitHandler.add_request_message('testdata/PEP/05/wwwTestPortalverbundGvAt.xml')
        logging.debug('    - processing request queue')
        PEP.run_me(cliClient)

        for fn in ('wwwTestPortalverbundGvAt.xml', ):
            requ1_result = os.path.join(pepoutdir, fn)
            assert not os.path.isfile(requ1_result), 'expected %s not to be in pepoutdir directory: ' % requ1_result
            requ2_result = os.path.join(repo_dir, constants.GIT_DELETED, fn)
            assert os.path.isfile(requ2_result), 'expected %s in "deleted" repo sub-directory: ' % requ2_result