Ejemplo n.º 1
0
def directory(environ, start_response):
    """ directory listing """
    direct_tory = Directory(DEBUG, get_url(environ), LOGGER)
    start_response('200 OK', [('Content-Type', 'application/json')])

    # logging
    logger_info(LOGGER, environ['REMOTE_ADDR'], environ['PATH_INFO'], '')
    return [json.dumps(direct_tory.directory_get()).encode('utf-8')]
Ejemplo n.º 2
0
 def setUp(self):
     """ setup unittest """
     models_mock = MagicMock()
     models_mock.acme.db_handler.DBstore.return_value = FakeDBStore
     modules = {'acme.db_handler': models_mock}
     patch.dict('sys.modules', modules).start()
     import logging
     logging.basicConfig(level=logging.CRITICAL)
     self.logger = logging.getLogger('test_a2c')
     from acme.directory import Directory
     self.directory = Directory(False, 'http://tester.local', self.logger)
Ejemplo n.º 3
0
class TestACMEHandler(unittest.TestCase):
    """ test class for ACMEHandler """
    acme = None
    def setUp(self):
        """ setup unittest """
        models_mock = MagicMock()
        models_mock.acme.db_handler.DBstore.return_value = FakeDBStore
        modules = {'acme.db_handler': models_mock}
        patch.dict('sys.modules', modules).start()
        import logging
        logging.basicConfig(level=logging.CRITICAL)
        self.logger = logging.getLogger('test_a2c')
        from acme.directory import Directory
        self.directory = Directory(False, 'http://tester.local', self.logger)

    def test_001_directory_servername_get(self):
        """ test Directory.get_server_name() method """
        self.assertEqual('http://tester.local', self.directory.servername_get())

    def test_002_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "newnonce" tag in output"""
        output_dic = {'newNonce': 'http://tester.local/acme/newnonce'}
        self.assertTrue(output_dic.items() <= self.directory.directory_get().items())

    def test_003_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "newnonce" tag in output"""
        output_dic = {'newAccount': 'http://tester.local/acme/newaccount'}
        self.assertTrue(output_dic.items() <= self.directory.directory_get().items())

    def test_004_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.supress_version = True
        output_dic = {'meta': {'home': 'https://github.com/grindsa/acme2certifier', 'author': 'grindsa <*****@*****.**>', 'name': 'acme2certifier'}}
        self.assertTrue(output_dic.items() <= self.directory.directory_get().items())

    def test_005_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.tos_url = 'foo'
        self.directory.supress_version = True
        output_dic = {'meta': {'home': 'https://github.com/grindsa/acme2certifier', 'author': 'grindsa <*****@*****.**>', 'name': 'acme2certifier', 'termsOfService': 'foo'}}
        self.assertTrue(output_dic.items() <= self.directory.directory_get().items())

    def test_006_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.version = '0.1'
        output_dic = {'meta': {'home': 'https://github.com/grindsa/acme2certifier', 'author': 'grindsa <*****@*****.**>', 'name': 'acme2certifier', 'version': '0.1'}}
        self.assertTrue(output_dic.items() <= self.directory.directory_get().items())

    def test_007_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.version = '0.1'
        self.directory.tos_url = 'foo'
        output_dic = {'meta': {'home': 'https://github.com/grindsa/acme2certifier', 'author': 'grindsa <*****@*****.**>', 'name': 'acme2certifier', 'version': '0.1', 'termsOfService': 'foo'}}
        self.assertTrue(output_dic.items() <= self.directory.directory_get().items())
Ejemplo n.º 4
0
def directory(request):
    """ get directory """
    with Directory(DEBUG, get_url(request.META), LOGGER) as cfg_dir:
        return JsonResponse(cfg_dir.directory_get())
Ejemplo n.º 5
0
def servername_get(request):
    """ get server name """
    with Directory(DEBUG, get_url(request.META), LOGGER) as cfg_dir:
        return JsonResponse({'server_name': cfg_dir.servername_get()})
Ejemplo n.º 6
0
class TestACMEHandler(unittest.TestCase):
    """ test class for ACMEHandler """
    acme = None

    def setUp(self):
        """ setup unittest """
        models_mock = MagicMock()
        models_mock.acme.db_handler.DBstore.return_value = FakeDBStore
        modules = {'acme.db_handler': models_mock}
        patch.dict('sys.modules', modules).start()
        import logging
        logging.basicConfig(level=logging.CRITICAL)
        self.logger = logging.getLogger('test_a2c')
        from acme.directory import Directory
        self.directory = Directory(False, 'http://tester.local', self.logger)

    def test_001_directory_servername_get(self):
        """ test Directory.get_server_name() method """
        self.assertEqual('http://tester.local',
                         self.directory.servername_get())

    def test_002_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "newnonce" tag in output"""
        output_dic = {'newNonce': 'http://tester.local/acme/newnonce'}
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    def test_003_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "newnonce" tag in output"""
        output_dic = {'newAccount': 'http://tester.local/acme/newaccount'}
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    def test_004_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.supress_version = True
        output_dic = {
            'meta': {
                'home': 'https://github.com/grindsa/acme2certifier',
                'author': 'grindsa <*****@*****.**>',
                'name': 'acme2certifier'
            }
        }
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    def test_005_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.tos_url = 'foo'
        self.directory.supress_version = True
        output_dic = {
            'meta': {
                'home': 'https://github.com/grindsa/acme2certifier',
                'author': 'grindsa <*****@*****.**>',
                'name': 'acme2certifier',
                'termsOfService': 'foo'
            }
        }
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    def test_006_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.version = '0.1'
        output_dic = {
            'meta': {
                'home': 'https://github.com/grindsa/acme2certifier',
                'author': 'grindsa <*****@*****.**>',
                'name': 'acme2certifier',
                'version': '0.1'
            }
        }
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    def test_007_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "meta" tag in output"""
        self.directory.version = '0.1'
        self.directory.tos_url = 'foo'
        output_dic = {
            'meta': {
                'home': 'https://github.com/grindsa/acme2certifier',
                'author': 'grindsa <*****@*****.**>',
                'name': 'acme2certifier',
                'version': '0.1',
                'termsOfService': 'foo'
            }
        }
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    def test_008_directory_directory_get(self):
        """ test Directory.get_directory() method and check for "eab" key in meta tag"""
        self.directory.version = '0.1'
        self.directory.eab = 'foo'
        output_dic = {
            'meta': {
                'home': 'https://github.com/grindsa/acme2certifier',
                'author': 'grindsa <*****@*****.**>',
                'name': 'acme2certifier',
                'version': '0.1',
                'externalAccountRequired': True
            }
        }
        self.assertTrue(
            output_dic.items() <= self.directory.directory_get().items())

    @patch('acme.directory.load_config')
    def test_009_config_load(self, mock_load_cfg):
        """ test _config_load empty config """
        parser = configparser.ConfigParser()
        # parser['Account'] = {'foo': 'bar'}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertFalse(self.directory.supress_version)
        self.assertFalse(self.directory.tos_url)
        self.assertFalse(self.directory.eab)

    @patch('acme.directory.load_config')
    def test_010_config_load(self, mock_load_cfg):
        """ test _config_load with unknown values config """
        parser = configparser.ConfigParser()
        parser['Account'] = {'foo': 'bar'}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertFalse(self.directory.supress_version)
        self.assertFalse(self.directory.tos_url)
        self.assertFalse(self.directory.eab)

    @patch('acme.directory.load_config')
    def test_011_config_load(self, mock_load_cfg):
        """ test _config_load with unknown values config """
        parser = configparser.ConfigParser()
        parser['Directory'] = {'foo': 'bar'}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertFalse(self.directory.supress_version)
        self.assertFalse(self.directory.tos_url)
        self.assertFalse(self.directory.eab)

    @patch('acme.directory.load_config')
    def test_012_config_load(self, mock_load_cfg):
        """ test _config_load supress version number """
        parser = configparser.ConfigParser()
        parser['Directory'] = {'supress_version': True}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertTrue(self.directory.supress_version)
        self.assertFalse(self.directory.tos_url)
        self.assertFalse(self.directory.eab)

    @patch('acme.directory.load_config')
    def test_013_config_load(self, mock_load_cfg):
        """ test _config_load tos url """
        parser = configparser.ConfigParser()
        parser['Directory'] = {'tos_url': 'tos_url'}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertFalse(self.directory.supress_version)
        self.assertEqual('tos_url', self.directory.tos_url)
        self.assertFalse(self.directory.eab)

    @patch('acme.directory.load_config')
    def test_014_config_load(self, mock_load_cfg):
        """ test _config_load eab """
        parser = configparser.ConfigParser()
        parser['EABhandler'] = {'eab_handler_file': 'eab_handler_file'}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertFalse(self.directory.supress_version)
        self.assertFalse(self.directory.tos_url)
        self.assertTrue(self.directory.eab)

    @patch('acme.directory.load_config')
    def test_015_config_load(self, mock_load_cfg):
        """ test _config_load all parameters set """
        parser = configparser.ConfigParser()
        parser['EABhandler'] = {'eab_handler_file': 'eab_handler_file'}
        parser['Directory'] = {'tos_url': 'tos_url', 'supress_version': True}
        mock_load_cfg.return_value = parser
        self.directory._config_load()
        self.assertTrue(self.directory.supress_version)
        self.assertEqual('tos_url', self.directory.tos_url)
        self.assertTrue(self.directory.eab)