def test_givenFilterInstance_whenGettingFilters_thenReturnFilterInstanceAsIs(self): instance = mock.create_autospec(Filter) rule = FilteringRule("/*", [instance]) filters = rule.get_filters(ServiceLocator()) self.assertEqual(1, len(filters)) self.assertEqual(instance, filters[0])
def test_givenSavedFilterClass_whenGettingFilters_thenGetInstanceFromServiceLocator(self): rule = FilteringRule("/*", [Filter]) service_locator = ServiceLocator() filter_instance = object() service_locator.bind(Filter, filter_instance) filters = rule.get_filters(service_locator) self.assertEqual(1, len(filters)) self.assertEqual(filter_instance, filters[0])
def create_router_config(self) -> RouterBuilder: config = super().create_router_config() \ .add_rule(FilteringRule("*", [TemporaryFileCleanupFilter])) \ .add_rule(RoutingRule("/static/", StaticFileRoutingTable(os.path.dirname(static.__file__), allowed_extensions=[".png", ".ico", ".html", ".css"]))) prometheus_endpoint = os.environ.get("PROMETHEUS_GATEWAY_ENDPOINT") if prometheus_endpoint: InvertPdfContext.LOGGER.info( f"Using prometheus pushgateway endpoint {prometheus_endpoint}") config.add_rule(FilteringRule("*", [RequestMetricsFilter])) return config
def create_router_config(self) -> RouterBuilder: return RouterBuilder() \ .add_rule(FilteringRule("*", self.get_default_filters())) \ .add_rule(AutoDiscoveringFilteringRule("*", self.registry, self.root_package_name)) \ .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'])))
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 create_router_config(self) -> RouterBuilder: return RouterBuilder() \ .add_rule(FilteringRule("*", JIVAGO_DEFAULT_FILTERS)) \ .add_rule(AutoDiscoveringFilteringRule("*", self.registry, self.root_package_name)) \ .add_rule(RoutingRule("/", AutoDiscoveringRoutingTable(self.registry, self.root_package_name)))
from jivago.config.router.filtering.filtering_rule import FilteringRule # Applies to all subpaths of "/users/". DOES NOT apply to "/users" itself. FilteringRule("/users/*", [MyFilter]) # Only applies to "/users", and nothing else. FilteringRule("/users", [MyFilter]) # Applies to "/users" and subpaths of "/users/...". FilteringRule("/users*", [MyFilter]) # Applies to all requests matching regexp. # First parameter is not used when regex_pattern is supplied. FilteringRule(None, [MySpecialFilter], regex_pattern=r"^/users.*$")
def create_router_config(self) -> RouterBuilder: return RouterBuilder() \ .add_rule(FilteringRule("*", self.get_default_filters())) \ .add_rule(AutoDiscoveringFilteringRule("*", self.registry, self.root_package_name)) \ .add_rule(RoutingRule("/api", AutoDiscoveringRoutingTable(self.registry, self.root_package_name)))
def test_givenRuleWithPeriod_whenMatchingRule_thenTreatAsLiteralPeriod(self): rule = FilteringRule("/users.hello", []) self.assertTrue(rule.matches("/users.hello")) self.assertFalse(rule.matches("/users_hello"))
def test_givenRegexString_whenMatchingRule_thenUseRegexpAsIs(self): rule = FilteringRule("", [], regex_pattern=r"^/users/.*/delete$") self.assertTrue(rule.matches("/users/foo/delete")) self.assertFalse(rule.matches("/users/foo"))
def test_givenSpecificPath_whenMatchingRule_thenPathMustMatchRuleExactly(self): rule = FilteringRule("/users", []) self.assertTrue(rule.matches("/users")) self.assertFalse(rule.matches("/users/foobar"))
def test_givenTrailingWildcardPattern_whenMatchingRule_thenMatchForAllPathsWhichStartWithPrefix(self): rule = FilteringRule("/users/*", []) self.assertTrue(rule.matches("/users/foo/bar")) self.assertFalse(rule.matches("/users"))
def test_givenWildcardPattern_thenMatchAnyLevelsOfDepth(self): rule = FilteringRule("/users/*/delete", []) self.assertTrue(rule.matches("/users/foo/bar/delete")) self.assertFalse(rule.matches("/users/foo/bar")) self.assertFalse(rule.matches("/users"))
def setUp(self): self.route_handler_factory_mock = mock.create_autospec(RouteHandlerFactory) self.filter_chain_factory = FilterChainFactory([ FilteringRule("*", [DEFAULT_FILTER]), FilteringRule("/foo/bar*", [SPECIFIC_FILTER]) ], ServiceLocator(), self.route_handler_factory_mock)