示例#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_app_is_tracked(self):
        app = Mock()
        controller = WorkController()

        controller.register_url_rules(app)
        eq_(app, controller.app)