...

Text file src/github.com/datawire/ambassador/v2/python/tests/kat/t_headerswithunderscoresaction.py

Documentation: github.com/datawire/ambassador/v2/python/tests/kat

     1from typing import Generator, Tuple, Union
     2
     3from abstract_tests import HTTP, AmbassadorTest, Node, ServiceType
     4from kat.harness import Query
     5
     6
     7class AllowHeadersWithUnderscoresTest(AmbassadorTest):
     8    target: ServiceType
     9
    10    def init(self):
    11        self.target = HTTP(name="target")
    12
    13    def config(self) -> Generator[Union[str, Tuple[Node, str]], None, None]:
    14        yield self, self.format(
    15            """
    16---
    17apiVersion: getambassador.io/v3alpha1
    18kind: Mapping
    19name:  config__dump
    20ambassador_id: [{self.ambassador_id}]
    21hostname: "*"
    22prefix: /target/
    23service: http://{self.target.path.fqdn}
    24"""
    25        )
    26
    27    def queries(self):
    28        yield Query(self.url("target/"), expected=200, headers={"t_underscore": "foo"})
    29
    30    def check(self):
    31        assert self.results[0].status == 200
    32
    33
    34class RejectHeadersWithUnderscoresTest(AmbassadorTest):
    35    target: ServiceType
    36
    37    def init(self):
    38        self.target = HTTP(name="target")
    39
    40    def config(self) -> Generator[Union[str, Tuple[Node, str]], None, None]:
    41        yield self, self.format(
    42            """
    43---
    44apiVersion: getambassador.io/v3alpha1
    45kind: Module
    46name: ambassador
    47ambassador_id: [{self.ambassador_id}]
    48config:
    49  headers_with_underscores_action: REJECT_REQUEST
    50"""
    51        )
    52        yield self, self.format(
    53            """
    54---
    55apiVersion: getambassador.io/v3alpha1
    56kind: Mapping
    57name:  config__dump
    58ambassador_id: [{self.ambassador_id}]
    59hostname: "*"
    60prefix: /target/
    61service: http://{self.target.path.fqdn}
    62"""
    63        )
    64
    65    def queries(self):
    66        yield Query(self.url("target/"), expected=400, headers={"t_underscore": "foo"})
    67
    68    def check(self):
    69        assert self.results[0].status == 400

View as plain text