Exemple #1
0
    def test_whenComparingCorsRules_thenLongerPathRulesTakePrecedenceOverShorterOnes(
            self):
        self.longer_rule = CorsRule("/foobar", {})

        takes_precedence = self.longer_rule.takes_precedence_over(self.rule)

        self.assertTrue(takes_precedence)
Exemple #2
0
    def setUp(self):
        self.rules = [
            CorsRule("/", {"value": "default_rule"}),
            CorsRule("/foo/bar", {"value": "specialized_rule"})
        ]

        self.cors_request_handler_factory = CorsRequestHandlerFactory(
            self.rules)
 def create_router_config(self) -> RouterBuilder:
     return super().create_router_config().add_rule(
         CorsRule(
             "/", {
                 "Access-Control-Allow-Origin": '*',
                 'Access-Control-Allow-Headers': '*'
             }))
Exemple #4
0
 def create_router_config(self) -> RouterBuilder:
     return RouterBuilder() \
         .add_rule(FilteringRule("*", JIVAGO_DEFAULT_FILTERS)) \
         .add_rule(RoutingRule("/api", AutoDiscoveringRoutingTable(self.registry, self.root_package_name))) \
         .add_rule(RoutingRule("/static", StaticFileRoutingTable(os.path.dirname(e2e_test.app.static.__file__),
                                                                 allowed_extensions=['.txt']))) \
         .add_rule(CorsRule("/", {'Access-Control-Allow-Origin': 'http://jivago.io',
                                  'Access-Control-Allow-Headers': '*',
                                  'Access-Control-Allow-Methods': '*'}))
    def setUp(self):
        self.routing_table = TreeRoutingTable()
        self.routing_table.register_route(GET, PATH, RESOURCE_CLASS,
                                          ROUTE_METHOD)
        self.route_handler_factory = RouteHandlerFactory(
            ServiceLocator(), Deserializer(Registry()),
            [RoutingRule("/", self.routing_table)],
            CorsRequestHandlerFactory([CorsRule("/", {})]))

        self.request_builder = RequestBuilder().method("GET").path(PATH)
Exemple #6
0
class CorsRuleTest(unittest.TestCase):
    def setUp(self):
        self.rule = CorsRule("/", {})

    def test_givenRootPathRule_whenMatching_thenRuleMatchesAnyRequest(self):
        self.assertTrue(self.rule.matches("/"))
        self.assertTrue(self.rule.matches("/foo/bar"))

    def test_whenComparingCorsRules_thenLongerPathRulesTakePrecedenceOverShorterOnes(
            self):
        self.longer_rule = CorsRule("/foobar", {})

        takes_precedence = self.longer_rule.takes_precedence_over(self.rule)

        self.assertTrue(takes_precedence)

    def test_givenSameLengthRule_whenComparingCorsRules_thenPriorityIsGivenToMostRecentRule(
            self):
        takes_precedence = self.rule.takes_precedence_over(self.rule)

        self.assertTrue(takes_precedence)
    def test_givenPrefixedRule_whenCreatingRouteHandlers_thenCreateResourceInvokerWithTruncatedPathForEveryRoute(
            self):
        request = self.request_builder.path("/prefix" + PATH).build()
        rule = RoutingRule("/prefix", self.routing_table)
        self.route_handler_factory = RouteHandlerFactory(
            ServiceLocator(), Deserializer(Registry()), [rule],
            CorsHandler([CorsRule("/", {})]))

        handlers: List[PathRewritingRouteHandlerDecorator] = [
            x
            for x in self.route_handler_factory.create_route_handlers(request)
        ]

        self.assertEqual(1, len(handlers))
        self.assertEqual(PATH, handlers[0].new_path)
Exemple #8
0
 def setUp(self):
     self.rule = CorsRule("/", {})