コード例 #1
0
    def test_register_rules(self):
        app = Mock()
        controller = WorkController()
        url_rules = [['/work/request', 'work_request', {'type_is': 'decorated_view',
                                                        'name': 'work_request',
                                                        'co_filename': '{}'.format(rapid.lib.__file__.replace('.pyc', '.py'))}],
                     ['/work/execute', 'work_execute', {'type_is': 'decorated_view',
                                                        'name': 'work_execute',
                                                        'co_filename': '{}'.format(rapid.lib.__file__.replace('.pyc', '.py'))}, {'methods': ['POST']}]]
        registered_rules = {}

        def set_url(*args, **kwargs):
            arguments = list(args)
            if sys.version.startswith('2'):  # TODO: Remove after moved to python3
                arguments[2] = {'type_is': args[2].func_code.co_name, 'name': args[2].func_name, 'co_filename': args[2].func_code.co_filename}
            else:
                arguments[2] = {'type_is': args[2].__code__.co_name,
                                'name': args[2].__wrapped__.__func__.__name__,
                                'co_filename': args[2].__code__.co_filename}
            if kwargs:
                arguments.append(kwargs)
            registered_rules[args[0]] = arguments

        app.add_url_rule = set_url

        controller.register_url_rules(app)
        for assertions in url_rules:
            eq_(registered_rules[assertions[0]], assertions)
コード例 #2
0
    def test_register_url_rules(self):
        mock_app = Mock()
        mock_app.add_url_rule = self._register_helper
        self.dal.register_url_rules(mock_app)

        eq_(self.dal.app, mock_app)
        eq_(
            self.registry['/api/pipelines/create'], {
                'name': 'create_pipeline',
                'func': 'create_pipeline',
                'methods': ['POST']
            })
        eq_(
            self.registry['/api/pipelines/<int:pipeline_id>/start'], {
                'name': 'start_pipeline_instance',
                'func': 'start_pipeline_instance',
                'methods': ['POST']
            })