Added tests for multi-container
This commit is contained in:
parent
82b4445359
commit
50af051a33
5 changed files with 49 additions and 2 deletions
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
|
@ -27,7 +27,7 @@ jobs:
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- run: pip install -r requirements.txt
|
- run: pip install -r requirements.txt
|
||||||
- run: pytest -s tests/
|
- run: pytest -s tests/ -vv
|
||||||
|
|
||||||
Build:
|
Build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ services:
|
||||||
#image: nginx
|
#image: nginx
|
||||||
image: stenote/nginx-hostname
|
image: stenote/nginx-hostname
|
||||||
deploy:
|
deploy:
|
||||||
replicas: 2
|
replicas: 2
|
||||||
labels:
|
labels:
|
||||||
easyhaproxy.definitions: "http"
|
easyhaproxy.definitions: "http"
|
||||||
|
|
||||||
|
|
|
||||||
29
tests/expected/services-multi-containers.txt
Normal file
29
tests/expected/services-multi-containers.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
global
|
||||||
|
log stdout format raw local0 info
|
||||||
|
maxconn 2000
|
||||||
|
tune.ssl.default-dh-param 2048
|
||||||
|
|
||||||
|
defaults
|
||||||
|
log global
|
||||||
|
|
||||||
|
timeout connect 3s
|
||||||
|
timeout client 10s
|
||||||
|
timeout server 10m
|
||||||
|
|
||||||
|
|
||||||
|
frontend http_in_19901_1
|
||||||
|
bind *:19901
|
||||||
|
mode http
|
||||||
|
|
||||||
|
acl is_rule_www_helloworld_com_19901_1_1 hdr(host) -i www.helloworld.com
|
||||||
|
acl is_rule_www_helloworld_com_19901_1_2 hdr(host) -i www.helloworld.com:19901
|
||||||
|
use_backend srv_www_helloworld_com_19901_1 if is_rule_www_helloworld_com_19901_1_1 OR is_rule_www_helloworld_com_19901_1_2
|
||||||
|
|
||||||
|
backend srv_www_helloworld_com_19901_1
|
||||||
|
balance roundrobin
|
||||||
|
mode http
|
||||||
|
option forwardfor
|
||||||
|
http-request set-header X-Forwarded-Port %[dst_port]
|
||||||
|
http-request add-header X-Forwarded-Proto https if { ssl_fc }
|
||||||
|
server srv-0 test_nginx.2.t5r94mjlced7m3t5orfjbowmm:80 check weight 1
|
||||||
|
server srv-1 test_nginx.1.p552hqxkdx88narjrp5kouwb2:80 check weight 1
|
||||||
2
tests/fixtures/services-multi-containers
vendored
Normal file
2
tests/fixtures/services-multi-containers
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
test_nginx.2.t5r94mjlced7m3t5orfjbowmm={"easyhaproxy.definitions":"http","easyhaproxy.host.http":"www.helloworld.com","easyhaproxy.localport.http":"80","easyhaproxy.port.http":"19901","com.docker.stack.image":"stenote/nginx-hostname","com.docker.stack.namespace":"test"}
|
||||||
|
test_nginx.1.p552hqxkdx88narjrp5kouwb2={"easyhaproxy.definitions":"http","easyhaproxy.host.http":"www.helloworld.com","easyhaproxy.localport.http":"80","easyhaproxy.port.http":"19901","com.docker.stack.image":"stenote/nginx-hostname","com.docker.stack.namespace":"test"}
|
||||||
|
|
@ -79,3 +79,19 @@ def test_parser_tcp():
|
||||||
path = os.path.dirname(os.path.realpath(__file__))
|
path = os.path.dirname(os.path.realpath(__file__))
|
||||||
with open(path + "/expected/services-tcp.txt", 'r') as expected_file:
|
with open(path + "/expected/services-tcp.txt", 'r') as expected_file:
|
||||||
assert expected_file.read() == haproxy_config
|
assert expected_file.read() == haproxy_config
|
||||||
|
|
||||||
|
def test_parser_multi_containers():
|
||||||
|
lineList = load_fixture("services-multi-containers")
|
||||||
|
|
||||||
|
result = {
|
||||||
|
"customerrors": False
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg = easymapping.HaproxyConfigGenerator(result, "/tmp")
|
||||||
|
haproxy_config = cfg.generate(lineList)
|
||||||
|
|
||||||
|
assert len(haproxy_config) > 0
|
||||||
|
path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
with open(path + "/expected/services-multi-containers.txt", 'r') as expected_file:
|
||||||
|
assert expected_file.read() == haproxy_config
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue